summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix task dependency performance problemJonathan Peyton2016-01-282-10/+22
| | | | | | | | | | | | | | | | | | In: http://lists.llvm.org/pipermail/openmp-dev/2015-August/000858.html, a performance issue was found with libomp's task dependencies. The task dependencies hash table has an issue with collisions. The current table size is a power of two. This combined with the current hash function causes a large number of collisions to occurr. Also, the current size (64) is too small for larger applications so the table size is increased. This patch creates a two level hash table approach for task dependencies. The implicit task is considered the "master" or "top-level" task which has a large static sized hash table (997), and nested tasks will have smaller hash tables (97). Prime numbers were chosen to help reduce collisions. Differential Revision: http://reviews.llvm.org/D16640 llvm-svn: 259113
* [PlaceSafepoints] Misc. minor cleanups; NFCSanjoy Das2016-01-281-111/+89
| | | | | | | | | | | | These changes are aimed at bringing PlaceSafepoints up to code with the LLVM coding guidelines: - Fix variable naming - Use DenseSet instead of std::set - Remove dead code - Minor local code simplifications llvm-svn: 259112
* [PlaceSafepoints] Remvoe unused headers, and sort #includes; NFCSanjoy Das2016-01-281-19/+4
| | | | llvm-svn: 259111
* [PlaceSafepoints] Eliminate dead code; NFCSanjoy Das2016-01-281-238/+0
| | | | | | | Now that NoStatepoints is a constant `true`, we can get rid of a bunch of dead code. llvm-svn: 259110
* Update for llvm change.Rafael Espindola2016-01-281-1/+1
| | | | llvm-svn: 259108
* ELF: Report more than one undefined symbols if exist.Rui Ueyama2016-01-282-5/+14
| | | | | | http://reviews.llvm.org/D16643 llvm-svn: 259107
* Don't mention a command line option in an error.Rafael Espindola2016-01-281-2/+1
| | | | | | | | The program using this code may not have it. Patch by Wilfred Hughes. llvm-svn: 259106
* [RuntimeDyld][MachO] Fix handling of empty eh-frame sections.Lang Hames2016-01-282-2/+9
| | | | | | | | | | This patch switches from an unguarded to a guarded loop for eh-frame record fixups. In the unguarded version we would always make at least one call to processFDE, which would then crash trying to fix up a frame that didn't exist. Fixes <rdar://problem/24301582> llvm-svn: 259103
* add back an Xcode-specific Makefile for header installationTodd Fiala2016-01-281-0/+23
| | | | llvm-svn: 259102
* [X86][AVX] Added more thorough 256-bit vector consecutive load tests.Simon Pilgrim2016-01-281-0/+419
| | | | llvm-svn: 259100
* [analyzer] Suppress nullability warnings in copy, mutableCopy, and init ↵Devin Coughlin2016-01-282-13/+62
| | | | | | | | | | | | | | families. There are multiple, common idioms of defensive nil-checks in copy, mutableCopy, and init methods in ObjC. The analyzer doesn't currently have the capability to distinguish these idioms from true positives, so suppress all warnings about returns in those families. This is a pretty blunt suppression that we should improve later. rdar://problem/24395811 llvm-svn: 259099
* Remove autoconf support from source directories.Eugene Zelenko2016-01-28104-2252/+0
| | | | | | Differential revision: http://reviews.llvm.org/D16662 llvm-svn: 259098
* [RS4GC] Change opt %s to opt < %s; NFCSanjoy Das2016-01-2820-20/+20
| | | | | | | | This is as per http://llvm.org/docs/TestingGuide.html#fragile-tests. I didn't touch the tests outside deopt-bundles/ since they'll be gone soon. llvm-svn: 259097
* [PlaceSafepoints] Clamp NoStatepoints to trueSanjoy Das2016-01-2815-119/+81
| | | | | | | | | This change permanently clamps -spp-no-statepoints to true (the code deletion will come later). Tests that specifically tested PlaceSafepoint's ability to wrap calls in gc.statepoint have been moved to RS4GC's test suite. llvm-svn: 259096
* Implementation of PS4 ABI, Round 1Sunil Srivastava2016-01-281-1/+10
| | | | | | | | Added a test to safeguard linux ABI. Differential Revision: http://reviews.llvm.org/D16607 llvm-svn: 259095
* Bring back the test-suite export in test-release without bringing back the ↵Daniel Sanders2016-01-281-7/+19
| | | | | | | | | | | | | | | | | build failures. Summary: r257791 disabled the test-suite export since the addition of CMakeLists.txt was causing build failures. This patch exports the test-suite again but does so outside the source tree so that it isn't included in the Phase[123] builds. Reviewers: hans Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16679 llvm-svn: 259094
* Remove autoconf support.Eugene Zelenko2016-01-281-56/+0
| | | | | | Differential revision: http://reviews.llvm.org/D16651 llvm-svn: 259091
* AMDGPU: Match fmed3 patterns with legacy fmin/fmaxMatt Arsenault2016-01-283-28/+62
| | | | llvm-svn: 259090
* AMDGPU: Match some med3 patternsMatt Arsenault2016-01-2812-13/+494
| | | | llvm-svn: 259089
* AMDGPU: Set DX10Clamp bitMatt Arsenault2016-01-282-3/+12
| | | | llvm-svn: 259088
* Fixed compilation issue.Elena Demikhovsky2016-01-281-1/+1
| | | | llvm-svn: 259087
* Fix build after rL259070.Chaoren Lin2016-01-281-1/+1
| | | | llvm-svn: 259086
* [cfi] Simplify the code in CfiSlowPathCommon.Evgeniy Stepanov2016-01-281-7/+2
| | | | llvm-svn: 259085
* Update lldb for API change in clang r259070.Manman Ren2016-01-281-1/+1
| | | | llvm-svn: 259084
* add masked intrinsic tests to show missed opportunitiesSanjay Patel2016-01-281-0/+41
| | | | llvm-svn: 259083
* [cfi] Get rid of a fixed size buffer for the library path in test.Evgeniy Stepanov2016-01-281-3/+4
| | | | llvm-svn: 259082
* Include RecordDecls from anonymous unions in the AST.Nico Weber2016-01-288-34/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For void f() { union { int i; }; } clang used to omit the RecordDecl from the anonymous union from the AST. That's because the code creating it only called PushOnScopeChains(), which adds it to the current DeclContext, which here is the function's DeclContext. But RecursiveASTVisitor doesn't descent into all decls in a FunctionDecl. Instead, for DeclContexts that contain statements, return the RecordDecl so that it can be included in the DeclStmt containing the VarDecl for the union. Interesting bits from the AST before this change: |-FunctionDecl | `-CompoundStmt | |-DeclStmt | | `-VarDecl 0x589cd60 <col:3> col:3 implicit used 'union (anonymous at test.cc:3:3)' callinit After this change: -FunctionDecl | `-CompoundStmt | |-DeclStmt | | |-CXXRecordDecl 0x4612e48 <col:3, col:18> col:3 union definition | | | |-FieldDecl 0x4612f70 <col:11, col:15> col:15 referenced i 'int' | | `-VarDecl 0x4613010 <col:3> col:3 implicit used 'union (anonymous at test.cc:3:3)' callinit This is now closer to how anonymous struct and unions are represented as members of structs. It also enabled deleting some one-off code in the template instantiation code. Finally, it fixes a crash with ASTMatchers, see the included test case (this fixes http://crbug.com/580749). llvm-svn: 259079
* Fix an issue where the type <formatter> list command would not accept a ↵Enrico Granata2016-01-282-1/+27
| | | | | | | | valid argument and instead error out complaining about a malformed regex rdar://problem/24380025 llvm-svn: 259078
* Remove unused parameter.Nico Weber2016-01-281-9/+6
| | | | llvm-svn: 259077
* [SplitModule] In split module utility we should never separate alias with ↵Sergei Larin2016-01-283-0/+92
| | | | | | | | | | | | its aliasee. Summary: When splitting module with preserving locals, we currently do not handle case of global alias being separated with its aliasee. Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16585 llvm-svn: 259075
* Address buildbot fallout from r259065David Majnemer2016-01-283-10/+13
| | | | llvm-svn: 259074
* Class Property: class property and instance property can have the same name.Manman Ren2016-01-2816-61/+154
| | | | | | | | | | | | | | | | | | | Add "enum ObjCPropertyQueryKind" to a few APIs that used to only take the name of the property: ObjCPropertyDecl::findPropertyDecl, ObjCContainerDecl::FindPropertyDeclaration, ObjCInterfaceDecl::FindPropertyVisibleInPrimaryClass, ObjCImplDecl::FindPropertyImplDecl, and Sema::ActOnPropertyImplDecl. ObjCPropertyQueryKind currently has 3 values: OBJC_PR_query_unknown, OBJC_PR_query_instance, OBJC_PR_query_class This extra parameter specifies that we are looking for an instance property with the given name, or a class property with the given name, or any property with the given name (if both exist, the instance property will be returned). rdar://23891898 llvm-svn: 259070
* ELF: Rename error -> fatal and redefine error as a non-noreturn function.Rui Ueyama2016-01-2814-115/+142
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In many situations, we don't want to exit at the first error even in the process model. For example, it is better to report all undefined symbols rather than reporting the first one that the linker picked up randomly. In order to handle such errors, we don't need to wrap everything with ErrorOr (thanks for David Blaikie for pointing this out!) Instead, we can set a flag to record the fact that we found an error and keep it going until it reaches a reasonable checkpoint. This idea should be applicable to other places. For example, we can ignore broken relocations and check for errors after visiting all relocs. In this patch, I rename error to fatal, and introduce another version of error which doesn't call exit. That function instead sets HasError to true. Once HasError becomes true, it stays true, so that we know that there was an error if it is true. I think introducing a non-noreturn error reporting function is by itself a good idea, and it looks to me that this also provides a gradual path towards lld-as-a-library (or at least embed-lld-to-your-program) without sacrificing code readability with lots of ErrorOr's. http://reviews.llvm.org/D16641 llvm-svn: 259069
* Minor cleanup /NFCXinliang David Li2016-01-282-4/+1
| | | | llvm-svn: 259068
* [PGO] test case cleanupsXinliang David Li2016-01-284-15/+21
| | | | | | | 1. Make test case more focused and robust by focusing on what to be tested (linkage, icall) -- make it easier to validate 2. Testing linkages of data and counter variables instead of names. Counters and data are more relavant to be tested. llvm-svn: 259067
* [X86] Don't transform X << 1 to X + X during type legalizationDavid Majnemer2016-01-283-13/+22
| | | | | | | | | | | | | | | | | | | | While legalizing a 64-bit shift left by 1, the following occurs: We split the shift operand in half: a high half and a low half. We then create an ADDC with the low half and a ADDE with the high half + the carry bit from the ADDC. This is problematic if X is any_ext'd because the high half computation is now undef + undef + carry bit and there is no way to ensure that the two undef values had the same bitwise representation. This results in the lowest bit in the high half turning into garbage. Instead, do not try to turn shifts into arithmetic during type legalization. This fixes PR26350. llvm-svn: 259065
* Fix strange indent.Nico Weber2016-01-281-2/+2
| | | | llvm-svn: 259063
* [PlaceSafepoints] Clean up tests; NFCSanjoy Das2016-01-2810-11/+11
| | | | | | | Use `opt < %s` instead of `opt %s` as specified in http://llvm.org/docs/TestingGuide.html#fragile-tests. llvm-svn: 259062
* [Coverage] Use a set to track visited FileIDs (NFC)Vedant Kumar2016-01-281-3/+3
| | | | llvm-svn: 259061
* Make header self-contained.Benjamin Kramer2016-01-281-0/+1
| | | | llvm-svn: 259060
* AMDGPU: waitcnt operand fixesTom Stellard2016-01-284-13/+16
| | | | | | | | | | | | | | | | Summary: Allow lgkmcnt up to 0xF (hardware allows that). Fix mask for ExpCnt in AMDGPUInstPrinter. Reviewers: tstellarAMD, arsenm Subscribers: arsenm Differential Revision: http://reviews.llvm.org/D16314 Patch by: Nikolay Haustov llvm-svn: 259059
* [X86] Test commit, fixed typos in comments. NFC.Mitch Bodart2016-01-281-2/+2
| | | | llvm-svn: 259057
* [Renderscript] Clang-format the renderscript plugin.Aidan Dodds2016-01-282-754/+819
| | | | | | Run clang-format over the renderscript plugin and fix common formatting deviations. llvm-svn: 259056
* [PlaceSafepoints] Minor test cleanup; NFCSanjoy Das2016-01-281-10/+10
| | | | | | | There is no need to place quotes around some_call and personality_function. llvm-svn: 259055
* AMDGPU: Move subtarget specific code out of AMDGPUInstrInfo.cppTom Stellard2016-01-286-322/+81
| | | | | | | | | | | | | | Summary: Also delete all the stub functions that are identical to the implementations in TargetInstrInfo.cpp. Reviewers: arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D16609 llvm-svn: 259054
* [LICM] Keep metadata on control equivalent hoistsSanjoy Das2016-01-282-7/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: If the instruction we're hoisting out of a loop into its preheader is guaranteed to have executed in the loop, then the metadata associated with the instruction (e.g. !range or !dereferenceable) is valid in the preheader. This is because once we're in the preheader, we know we're eventually going to reach the location the metadata was valid at. This change makes LICM smarter around this, and helps it recognize cases like these: ``` do { int a = *ptr; !range !0 ... } while (i++ < N); ``` to ``` int a = *ptr; !range !0 do { ... } while (i++ < N); ``` Earlier we'd drop the `!range` metadata after hoisting the load from `ptr`. Reviewers: igor-laevsky Subscribers: mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D16669 llvm-svn: 259053
* [AArch64] Set MMOs on pre- and post-index instructions.Chad Rosier2016-01-281-2/+4
| | | | | | | Without the MMOs the MI scheduler is unable to reason about the dependencies of these instructions. llvm-svn: 259052
* [x86] Merge multiple calls to DAG.getTargetLoweringInfo(). NFC.Simon Pilgrim2016-01-281-4/+4
| | | | llvm-svn: 259050
* Improve efficiency of handling unmapped subprogram metadataTeresa Johnson2016-01-281-25/+28
| | | | | | | | | | | | | | | | The stripNullSubprograms function is very inefficient because it walks all subprograms in all compile units in the dest module any time a new module is linked in. For LTO in particular this will get increasingly expensive as more modules are linked. This patch improves the efficiency in several ways. The first is that no scanning is necessary when there were no unneeded subprograms identified in the first place. The second is that only the newly-linked module's compile unit metadata should be examined. Fixes PR26346. llvm-svn: 259049
* [libcxx] Work around for clang calling GAS after having already failed.Daniel Sanders2016-01-281-1/+1
| | | | | | | | | | | | | | | | | | | | | Summary: This is a workaround to a clang bug which causes libcxx tests to fail in the 3.8 release. The clang bug is currently being investigated. It seems that clang does not stop after frontend errors when using -verify and -fno-integrated-as (or when this is the default). This patch adds -fsyntax-only to prevent GAS from being called, fixing the libcxx failures. PR26277 Patch by Eric Fiselier Reviewers: mclow.lists, hans, EricWF Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D16584 llvm-svn: 259046
OpenPOWER on IntegriCloud