summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [MemDep] NFC walk invariant.group graph only downPiotr Padlewski2017-01-083-26/+120
| | | | | | | | | | | | | | Summary: By using stripPointerCasts we can get to the root value and then walk down the bitcast graph Reviewers: reames Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D28181 llvm-svn: 291405
* [LCSSA] Fix some typos. NFCI.Davide Italiano2017-01-081-3/+3
| | | | llvm-svn: 291404
* PR30305: Implement proposed DR resolution to prevent slicing via inherited ↵Richard Smith2017-01-085-7/+70
| | | | | | | | | | | | constructor. The rule we use is that a construction of a class type T from an argument of type U cannot use an inherited constructor if U is the same as T or is derived from T (or if the initialization would first convert it to such a type). This (approximately) matches the rule in use by GCC, and matches the current proposed DR resolution. llvm-svn: 291403
* [AVX-512] If avx512dq is available use vpmovm2d/vpmovm2q instead of vselect ↵Craig Topper2017-01-082-37/+101
| | | | | | of zeroes/ones when handling sign extends of i1 without VLX. llvm-svn: 291402
* [X86] Add avx512bw and avx512dq command lines to the vector compare results ↵Craig Topper2017-01-081-1498/+4602
| | | | | | | | test. This is preparation for improving a case with avx512dq. llvm-svn: 291401
* [SCCP] Unknown instructions are sent to overdefined anyway. NFCI.Davide Italiano2017-01-081-18/+0
| | | | llvm-svn: 291400
* [Orc][RPC] Lock the pending results data structure when installing new resultLang Hames2017-01-081-22/+51
| | | | | | | | | | | | | handlers, make abandonPendingResults public API. This should make installing asynchronous result handlers thread safe. The abandonPendingResults method is made public so that clients can disconnect from a remote even if they have asynchronous handlers awaing results from that remote. The asynchronous handlers will all receive "abandoned result" errors as their argument. llvm-svn: 291399
* llvm-objdump: speed up -objc-meta-dataSaleem Abdulrasool2017-01-082-26/+13
| | | | | | | | | | | | | | | | | | Running a Debug build of objdump -objc-meta-data with a large Mach-O file is currently unnecessarily slow. With some local test input, this change reduces the run time from 75-85s down to 15-20s. The two changes are: Assert on pointer equality not array equality Replace vector<pair<address, symbol>> with DenseMap<address, symbol> Additionally, use a std::unique_ptr rather than handling the memory manually. Patch by Dave Lee! llvm-svn: 291398
* [cxx1z-constexpr-lambda] Make conversion function constexpr, and teach the ↵Faisal Vali2017-01-083-7/+78
| | | | | | | | | | | | expression-evaluator to evaluate the static-invoker. This patch has been sitting in review hell since july 2016 and our lack of constexpr lambda support is getting embarrassing (given that I've had a branch that implements the feature (modulo *this capture) for over a year. While in Issaquah I was enjoying shamelessly trying to convince folks of the lie that this was Richard's fault ;) I won't be able to do so in Kona since I won't be attending - so I'm going to aim to have this feature be implemented by then. I'm quite confident of the approach in this patch, which simply maps the static-invoker 'thunk' back to the corresponding call-operator (specialization). Thanks! llvm-svn: 291397
* [Builtins] [ARM] Adding Thumb1 support for fcmpWeiming Zhao2017-01-082-9/+121
| | | | | | | | | | | | Summary: Mainly translate IT block into cmp/branch for functions in comparesf2.S Reviewers: rengolin, compnerd Subscribers: aemerson, llvm-commits Differential Revision: https://reviews.llvm.org/D28016 llvm-svn: 291396
* Strip trailing whitespace.Simon Pilgrim2017-01-081-1/+1
| | | | llvm-svn: 291395
* unittest: remove extraneous ';'Saleem Abdulrasool2017-01-081-1/+1
| | | | | | Silences a warning from gcc:6. NFC llvm-svn: 291394
* Fix line endings and strip trailing whitespace.Simon Pilgrim2017-01-081-71/+71
| | | | llvm-svn: 291393
* [x86] fix usage of stale operands when lowering selectSanjay Patel2017-01-082-7/+10
| | | | | | | | | | | | | | | | | | | | | I noticed this problem as part of the ongoing attempt to canonicalize min/max ops in IR. The debug output shows nodes like this: t4: i32 = xor t2, Constant:i32<-1> t21: i8 = setcc t4, Constant:i32<0>, setlt:ch t14: i32 = select t21, t4, Constant:i32<-1> And because the select is holding onto the t4 (xor) node while EmitTest creates a new x86-specific xor node, the lowering results in: t4: i32 = xor t2, Constant:i32<-1> t25: i32,i32 = X86ISD::XOR t2, Constant:i32<-1> t28: i32,glue = X86ISD::CMOV Constant:i32<-1>, t4, Constant:i8<15>, t25:1 Differential Revision: https://reviews.llvm.org/D28374 llvm-svn: 291392
* [CostModel][X86] Fixed vXi8 uniform shift costs.Simon Pilgrim2017-01-086-45/+61
| | | | | | | | | | The 'fast' costs should only work for shifts by uniform constants (uniform non-constant are lowered using the slow default implementation). Logical shifts were not taking into account that we must mask the psrlw result, so the costs needed to be doubled. Added missing AVX2/AVX512BW costs as well. llvm-svn: 291391
* [CostModel][X86] Moved legal uniform shift costs earlier.Simon Pilgrim2017-01-083-32/+44
| | | | | | XOP was prematurely matching, doubling the cost of ashr/lshr uniform shifts. llvm-svn: 291390
* Fix tests with CLANG_DEFAULT_LINKERJonas Hahnfeld2017-01-0812-93/+93
| | | | | | | | | I originally requested this to be tested in D25263 but in the end forgot to make sure that it was done. Differential Revision: https://reviews.llvm.org/D28289 llvm-svn: 291389
* www: Add dates RSS newsTobias Grosser2017-01-082-16/+12
| | | | llvm-svn: 291388
* www: add rss feeds from pollylabs.org and polyhedral.infoTobias Grosser2017-01-082-11/+39
| | | | llvm-svn: 291387
* www: add Polly Labs named linkTobias Grosser2017-01-081-1/+0
| | | | llvm-svn: 291386
* www: Add pollylabs news to navigationTobias Grosser2017-01-081-0/+27
| | | | llvm-svn: 291385
* www: Add news for HiPEAC 2017Tobias Grosser2017-01-081-0/+8
| | | | llvm-svn: 291384
* [AVX-512] Remove redundant patterns that select unaligned moves with zero ↵Craig Topper2017-01-081-1/+1
| | | | | | masking for patterns that already use the aligned form. NFC llvm-svn: 291383
* PR18402: work around bug in libstdc++4.8's detection of whether ::gets exists.Richard Smith2017-01-082-0/+38
| | | | | | | This should allow clang to successfully compile libstdc++4.8's headers in C++14 mode. llvm-svn: 291382
* [Orc][RPC] Fix typo.Lang Hames2017-01-081-1/+1
| | | | llvm-svn: 291381
* [Orc][RPC] Add an APICalls utility for grouping RPC funtions for registration.Lang Hames2017-01-082-32/+150
| | | | | | | | | | | | | APICalls allows groups of functions to be composed into an API that can be registered as a unit with an RPC endpoint. Doing registration on a-whole API basis (rather than per-function) allows missing API functions to be detected early. APICalls also allows Function membership to be tested at compile-time. This allows clients to write static assertions that functions to be called are members of registered APIs. llvm-svn: 291380
* [ThinLTO] Fix lazy-loading of Metadata attachment, which left some Fwd ref ↵Mehdi Amini2017-01-081-1/+2
| | | | | | | | | | | behind The change in r291362 was too agressive. We still need to flush at the end of the block because function local metadata can introduce fwd ref as well. (Bootstrap with ThinLTO was broken) llvm-svn: 291379
* [libcxxabi] Enable tests by default in standalone.Bryant Wong2017-01-081-0/+4
| | | | | | | | | Tests targets will now be enabled by default when building libcxxabi out of tree (unless turned off with LIBCXXABI_INCLUDE_TESTS=OFF). Differential Revision: https://reviews.llvm.org/D28450 llvm-svn: 291378
* [ThinLTO] Expected<> return values need to be handled to avoid an assertionMehdi Amini2017-01-081-1/+8
| | | | llvm-svn: 291377
* [Orc][RPC] Add a class-method version of addHandler to MultiThreadedRPCEndpoint.Lang Hames2017-01-081-0/+9
| | | | | | | | | This brings MultiThreadedRPCEndpoint's addHandler API in-line with SingleThreadedRPCEndpoint's. This will be tested in an up-coming unit-test for MultiThreadedRPCEndpoint. llvm-svn: 291376
* [AVR] Implement TargetLoweing::getRegisterByNameDylan McKay2017-01-073-0/+61
| | | | | | | This allows the use of the 'read_register' intrinsics used by clang's named register globals features. llvm-svn: 291375
* [Orc][RPC] Rename Single/MultiThreadedRPC to Single/MultithreadedRPCEndpoint.Lang Hames2017-01-073-21/+22
| | | | llvm-svn: 291374
* [Orc][RPC] Remove a redundant 'if' statement.Lang Hames2017-01-071-3/+1
| | | | llvm-svn: 291373
* [CostModel][X86] Update SSE41/AVX1 vXi32 SHL costsSimon Pilgrim2017-01-072-12/+14
| | | | | | SSE41 provides pmulld which allows the simpler pslld/paddd/cvttps2dq/pmulld pattern than SSE2's use of pmuludq. llvm-svn: 291372
* [AVX-512] Remove patterns from the other VBLENDM instructions. They are all ↵Craig Topper2017-01-0713-184/+305
| | | | | | | | redundant with masked move instructions. We should probably teach the two address instruction pass to turn masked moves into BLENDM when its beneficial to the register allocator. llvm-svn: 291371
* [X86] Regenerate a test to remove tab characters.Craig Topper2017-01-071-4/+4
| | | | llvm-svn: 291370
* [AVX-512] Remove patterns from masked broadcast versions of BLENDM instructions.Craig Topper2017-01-071-6/+3
| | | | | | | | All but (v2f64 broadcast f64) are handled with VBROADCAST instructions. The v2f64 version can be handled with VMOVDDUP. We may want to consider converting to BLENDM instructions in the two address instruction pass if its beneficial to register allocation. llvm-svn: 291369
* [AVX-512] Add masked forms of the alternate MOVDDUP patterns.Craig Topper2017-01-072-0/+52
| | | | | | I'm not too sure how to get isel to select even all of the unmasked forms, but at least we have a consistent set now. llvm-svn: 291368
* [libcxxabi] Add flag to conditionally enable testsBryant Wong2017-01-071-1/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D28449 llvm-svn: 291367
* [CostModel][X86] Fix AVX2 v16i16 shift 'splat' costs.Simon Pilgrim2017-01-073-14/+31
| | | | llvm-svn: 291366
* [CostModel][X86] Match 256-bit vector shift 'splat' costs for AVX2 and aboveSimon Pilgrim2017-01-074-65/+64
| | | | | | We were matching against general vector shift costs before the uniform splat costs llvm-svn: 291365
* [CostModel][X86] Generalized cost calculation of SHL by constant -> MUL ↵Simon Pilgrim2017-01-071-21/+10
| | | | | | conversion. llvm-svn: 291364
* [X86][AVX2] Regenerate arithmetic testsSimon Pilgrim2017-01-071-5/+96
| | | | | | Fixed missing checks for tests that used a '-' in the name, which was messing with update_llc_test_checks.py llvm-svn: 291363
* [ThinLTO] Fix assertions on lazy-loading of Metadata TBAA attachmentsMehdi Amini2017-01-073-4/+53
| | | | | | | | | | | | | | | | | | | | | Summary: The issue happens with: %0 = ....., !tbaa !0 %1 = ....., !tbaa !1 With !0 that references !1. In this case when loading !0 we generates a temporary for the operand !1. We now flush it immediately and trigger the load of !1 before moving on. If we don't we get the temporary when attaching to %1. This is usually not an issue except that we eagerly try to update TBAA MDNodes, which is obviously not possible if we only have a temporary. Differential Revision: https://reviews.llvm.org/D28423 llvm-svn: 291362
* [llvm-opt-report] Fix context-sensitive lines where nothing happenedHal Finkel2017-01-074-3/+145
| | | | | | | | | | | | | | | | | Don't print a line multiple times, each for different inlining contexts, if nothing happened in any context. This prevents situations like this: [[ > main: 65 | if ((i * ni + j) % 20 == 0) fprintf > print_array: 65 | if ((i * ni + j) % 20 == 0) fprintf ]] which could happen if different optimizations were missed in different inlining contexts. llvm-svn: 291361
* Fix buildbots.Richard Smith2017-01-071-1/+1
| | | | llvm-svn: 291360
* SimplifyLibCalls: Remove incorrect optimization of fabsMatt Arsenault2017-01-073-21/+39
| | | | | | | | fabs(x * x) is not generally safe to assume x is positive if x is a NaN. This is also less general than it could be, so this will be replaced with a transformation on the intrinsic. llvm-svn: 291359
* Consistently use a ConstantEvaluated context for expressions in attributes,Richard Smith2017-01-073-4/+14
| | | | | | except for those with the "attributes are unevaluated contexts" flag. llvm-svn: 291358
* Update update_test_checks to work properly with phi nodes and other fun things.Daniel Berlin2017-01-071-23/+26
| | | | | | | | | | | | | | | | | | | | | | Summary: Prior to this change, phi nodes were never considered defs, and so we ended up with undefined variables for any loop. Now, instead of trying to find just defs, we iterate over each actual IR value in the line, and replace them one by one with either a definition or a use. We also don't try to match anything in the comment portions of the line. I've tested it even on things like function pointer calls, etc, and against existing test cases uses update_test_checks With this change, we are able to use update_tests on the cyclic cases in newgvn. The only case i'm aware of that will misfire is if you have a string with which contains a valid token. However, this is the same as it is now, with a slightly larger set of strings that may misfire. Prior to this change, a test with the string " %a =" would be replaced. Reviewers: spatel, chandlerc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D28384 llvm-svn: 291357
* [Bitcode] Remove unused PlaceHolder parameter to lazyLoadModuleMetadataBlock()Mehdi Amini2017-01-071-4/+4
| | | | llvm-svn: 291356
OpenPOWER on IntegriCloud