summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [X86] Simplify getOperandBias as a bit. NFCCraig Topper2016-08-251-12/+11
| | | | | | There's no reason for it to return a signed type. Just return the operand bias in each if instead of starting from 0 and adding in the 'if'. llvm-svn: 279720
* [X86] Fix indentation per coding standards. NFCCraig Topper2016-08-251-9/+9
| | | | llvm-svn: 279719
* Fixed commentVitaly Buka2016-08-251-1/+1
| | | | llvm-svn: 279718
* [asan] Disable CreateSigAltStack from Unix/Signals.inc for asan buildsVitaly Buka2016-08-251-1/+2
| | | | | | | | | | | | Summary: Asan fails to UnsetAlternateSignalStack if it set by Unix/Signals.inc Reviewers: kcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D23864 llvm-svn: 279717
* If the user has specified target.memory-module-load-level 'minimal'Jason Molenda2016-08-251-3/+5
| | | | | | | | | | | and we couldn't find a dyld binary on the debug system, override that setting and read dyld out of memory - we need to put an internal breakpoint on dyld to register binaries being loaded or unloaded; the debugger won't work right without dyld symbols. <rdar://problem/27857025> llvm-svn: 279704
* Make buildbots happy.George Burgess IV2016-08-251-1/+1
| | | | | | "warning: extra ‘;’ [-Wpedantic]" llvm-svn: 279703
* Remove a pointless LLVM_CONSTEXPR. NFC.George Burgess IV2016-08-251-1/+1
| | | | llvm-svn: 279702
* TailDuplication: Don't pass MMI separately from MF. NFCKyle Butt2016-08-253-4/+3
| | | | | | | MMI must match the function passed, and MF has a handle on MMI. Use that instead of accepting it as separate argument. No Functional Change. llvm-svn: 279701
* TailDuplication: Save MF and reduce number of parameters. NFCKyle Butt2016-08-253-32/+28
| | | | | | | | Save the function in the class, and then don't pass it around. This reduces the number of parameters and makes calls to member functions simpler. No Functional Change. llvm-svn: 279700
* Update a comment.George Burgess IV2016-08-251-3/+2
| | | | | | | r279696, which changed `LLVM_CONSTEXPR AliasAttr` to `const AliasAttr`, made this comment make less sense. llvm-svn: 279699
* MachineFunctionProperties/MIRParser: Rename AllVRegsAllocated->NoVRegs, ↵Matthias Braun2016-08-2579-132/+73
| | | | | | | | | | | | | compute it Rename AllVRegsAllocated to NoVRegs. This avoids the connotation of running after register and simply describes that no vregs are used in a machine function. With that we can simply compute the property and do not need to dump/parse it in .mir files. Differential Revision: http://reviews.llvm.org/D23850 llvm-svn: 279698
* [libFuzzer] simplify the code, NFCKostya Serebryany2016-08-252-91/+81
| | | | llvm-svn: 279697
* Make some LLVM_CONSTEXPR variables const. NFC.George Burgess IV2016-08-258-25/+22
| | | | | | | | | | This patch changes LLVM_CONSTEXPR variable declarations to const variable declarations, since LLVM_CONSTEXPR expands to nothing if the current compiler doesn't support constexpr. In all of the changed cases, it looks like the code intended the variable to be const instead of sometimes-constexpr sometimes-not. llvm-svn: 279696
* Fix some Clang-tidy modernize-use-using and Include What You Use warnings; ↵Eugene Zelenko2016-08-258-88/+242
| | | | | | | | other minor fixes. Differential revision: https://reviews.llvm.org/D23861 llvm-svn: 279695
* Lazily load the ContextDecl for a lambda's DefinitionData, to fix aRichard Smith2016-08-256-7/+39
| | | | | | | deserialization cycle caused by the ContextDecl recursively importing members of the lambda's closure type. llvm-svn: 279694
* [Profile] Propagate branch metadata properly in instcombineXinliang David Li2016-08-252-11/+150
| | | | | | Differential Revision: http://reviews.llvm.org/D23590 llvm-svn: 279693
* Strip opencl.ocl.version metadataMatt Arsenault2016-08-251-0/+7
| | | | | | | | | | This should be uniqued when linking, but right now it creates a lot of metadata spam listing the same version. This should also probably be reporting the compiled version of the user program, which may differ from the library. Currently the library IR files report 1.0 while 1.1/1.2 are the default for user programs. llvm-svn: 279692
* [Sema][Comments] Factor out function type loc logic. NFCIBruno Cardoso Lopes2016-08-251-64/+64
| | | | | | This is in prepatation for @param TypeAliasTemplate support. llvm-svn: 279691
* Test: Add REQUIRES: asserts to test that now requires stats.Kyle Butt2016-08-251-0/+1
| | | | | | Test was modified in r279670 llvm-svn: 279690
* Rewrite the GetFileInSDK methods in PlatformRemoteiOS,Jason Molenda2016-08-246-223/+57
| | | | | | | | | | | | | | | | PlatformRemoteAppleWatch, PlatformRemoteAppleTV and remove the GetFileInSDKRoot method from those classes. The rewrite uses the more modern FileSpec etc API to simplify, and handles the case where an SDK Root is given to lldb with the "/Symbols" directory name already appended. The new version will try appending "/Symbols" and "/Symbols.Internal" to the sdk root directories, and will also try appending nothing to the sdk root directory in case it's handed such an sdkroot. <rdar://problem/28000054> llvm-svn: 279688
* DebugInfo: Let -gsplit-dwarf and -gmlt compose if -fno-split-dwarf-inlining ↵David Blaikie2016-08-242-9/+40
| | | | | | | | | | | is used If the inline info is not duplicated into the skeleton CU, then there's value in using -gsplit-dwarf and -gmlt together (to keep all those extra subprograms out of the skeleton CU, while also producing smaller .dwo files) llvm-svn: 279687
* [libFuzzer] make a test more deterministic Kostya Serebryany2016-08-241-3/+3
| | | | llvm-svn: 279686
* [InstCombine] move foldICmpDivConstConst() contents to ↵Sanjay Patel2016-08-242-167/+158
| | | | | | | | | foldICmpDivConstant(); NFCI There was no logic in foldICmpDivConstant, so no need for a separate function. The code is directly copy/pasted, so further cleanups to follow. llvm-svn: 279685
* The patch improves ValueTracking on left shift with nsw flag.Evgeny Stupachenko2016-08-242-5/+78
| | | | | | | | | | | | Summary: The patch fixes PR28946. Reviewers: majnemer, sanjoy Differential Revision: http://reviews.llvm.org/D23296 From: Li Huang llvm-svn: 279684
* [WebAssembly] Change a comment lineHeejin Ahn2016-08-241-1/+2
| | | | | | Test for commit access. llvm-svn: 279683
* MIRYamlMapping cleanupMatthias Braun2016-08-241-2/+0
| | | | | | Missed two lines got lost when cherry picking old commits to master. llvm-svn: 279682
* [Hexagon] Check for block end when skipping debug instructionsKrzysztof Parzyszek2016-08-242-4/+60
| | | | llvm-svn: 279681
* MIRParser/MIRPrinter: Compute HasInlineAsm instead of printing/parsing itMatthias Braun2016-08-2422-45/+13
| | | | llvm-svn: 279680
* Missed a test in my last commitMatthias Braun2016-08-241-1/+0
| | | | llvm-svn: 279679
* [Hexagon] Change insertion of expand-condsets pass to avoid memory leaksKrzysztof Parzyszek2016-08-242-5/+10
| | | | llvm-svn: 279678
* [InstCombine] use m_APInt to allow icmp eq/ne (shr X, C2), C folds for splat ↵Sanjay Patel2016-08-245-38/+51
| | | | | | constant vectors llvm-svn: 279677
* MachineRegisterInfo/MIR: Initialize tracksSubRegLiveness early, do not ↵Matthias Braun2016-08-2426-57/+17
| | | | | | | | | | | | | print/parser it tracksSubRegLiveness only depends on the Subtarget and a cl::opt, there is not need to change it or save/parse it in a .mir file. Make the field const and move the initialization LiveIntervalAnalysis to the MachineRegisterInfo constructor. Also cleanup some code and fix some instances which better use MachineRegisterInfo::subRegLivenessEnabled() instead of TargetSubtargetInfo::enableSubRegLiveness(). llvm-svn: 279676
* [CMake] Be more consistent about naming targets and componentsChris Bieneman2016-08-243-12/+18
| | | | | | | | | | | | | | | Summary: The point of this patch is to have a consistent convention for naming build, check and install targets so that the targets can be constructed from the project name. This change renames a bunch of CMake components and targets from libcxx to cxx. For each renamed target I've added a convenience target that matches the old target name and depends on the new target. This will preserve function of the old targets so that the change doesn't break the world. We can evaluate if it is worth removing the extra targets later. Reviewers: EricWF Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D23699 llvm-svn: 279675
* [lsan] give a test a bit more stack -- it started failing after r279664 on ↵Kostya Serebryany2016-08-241-2/+3
| | | | | | the debian bot, hopefully this is a fix. llvm-svn: 279674
* [Order Files] On Darwin use DTrace's oneshot probeChris Bieneman2016-08-241-0/+5
| | | | | | The oneshot probe only gets executed the first time the probe is hit in the process. For order file generation this is really all we care about. llvm-svn: 279673
* fix darwin_log test errors on macOS < 10.12Todd Fiala2016-08-241-0/+9
| | | | | | | | The newer event-based tests I added neglected to do the macOS 10.12 check in the setup. This caused earlier macOS test suite runs to attempt to compile code that doesn't exist. llvm-svn: 279672
* CodeGen: If Convert blocks that would form a diamond when tail-merged.Kyle Butt2016-08-243-78/+356
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following function currently relies on tail-merging for if conversion to succeed. The common tail of cond_true and cond_false is extracted, and this then forms a diamond pattern that can be successfully if converted. If this block does not get extracted, either because tail-merging is disabled or the threshold is higher, we should still recognize this pattern and if-convert it. Fixed a regression in the original commit. Need to un-reverse branches after reversing them, or other conversions go awry. define i32 @t2(i32 %a, i32 %b) nounwind { entry: %tmp1434 = icmp eq i32 %a, %b ; <i1> [#uses=1] br i1 %tmp1434, label %bb17, label %bb.outer bb.outer: ; preds = %cond_false, %entry %b_addr.021.0.ph = phi i32 [ %b, %entry ], [ %tmp10, %cond_false ] %a_addr.026.0.ph = phi i32 [ %a, %entry ], [ %a_addr.026.0, %cond_false ] br label %bb bb: ; preds = %cond_true, %bb.outer %indvar = phi i32 [ 0, %bb.outer ], [ %indvar.next, %cond_true ] %tmp. = sub i32 0, %b_addr.021.0.ph %tmp.40 = mul i32 %indvar, %tmp. %a_addr.026.0 = add i32 %tmp.40, %a_addr.026.0.ph %tmp3 = icmp sgt i32 %a_addr.026.0, %b_addr.021.0.ph br i1 %tmp3, label %cond_true, label %cond_false cond_true: ; preds = %bb %tmp7 = sub i32 %a_addr.026.0, %b_addr.021.0.ph %tmp1437 = icmp eq i32 %tmp7, %b_addr.021.0.ph %indvar.next = add i32 %indvar, 1 br i1 %tmp1437, label %bb17, label %bb cond_false: ; preds = %bb %tmp10 = sub i32 %b_addr.021.0.ph, %a_addr.026.0 %tmp14 = icmp eq i32 %a_addr.026.0, %tmp10 br i1 %tmp14, label %bb17, label %bb.outer bb17: ; preds = %cond_false, %cond_true, %entry %a_addr.026.1 = phi i32 [ %a, %entry ], [ %tmp7, %cond_true ], [ %a_addr.026.0, %cond_false ] ret i32 %a_addr.026.1 } Without tail-merging or diamond-tail if conversion: LBB1_1: @ %bb @ =>This Inner Loop Header: Depth=1 cmp r0, r1 ble LBB1_3 @ BB#2: @ %cond_true @ in Loop: Header=BB1_1 Depth=1 subs r0, r0, r1 cmp r1, r0 it ne cmpne r0, r1 bgt LBB1_4 LBB1_3: @ %cond_false @ in Loop: Header=BB1_1 Depth=1 subs r1, r1, r0 cmp r1, r0 bne LBB1_1 LBB1_4: @ %bb17 bx lr With diamond-tail if conversion, but without tail-merging: @ BB#0: @ %entry cmp r0, r1 it eq bxeq lr LBB1_1: @ %bb @ =>This Inner Loop Header: Depth=1 cmp r0, r1 ite le suble r1, r1, r0 subgt r0, r0, r1 cmp r1, r0 bne LBB1_1 @ BB#2: @ %bb17 bx lr llvm-svn: 279671
* IfConversion: Rescan diamonds.Kyle Butt2016-08-243-54/+208
| | | | | | | | | | | | | | | | The cost of predicating a diamond is only the instructions that are not shared between the two branches. Additionally If a predicate clobbering instruction occurs in the shared portion of the branches (e.g. a cond move), it may still be possible to if convert the sub-cfg. This change handles these two facts by rescanning the non-shared portion of a diamond sub-cfg to recalculate both the predication cost and whether both blocks are pred-clobbering. Fixed 2 bugs before recommitting. Branch instructions must be compared and found identical before diamond conversion. Also, predicate-clobbering instructions in the shared prefix disqualifies a potential diamond conversion. Includes tests for both. llvm-svn: 279670
* [StreamExecutor] Rename Executor to DeviceJason Henline2016-08-2414-580/+575
| | | | | | | | | | | | Summary: This more clearly describes what the class is. Reviewers: jlebar Subscribers: jprice, parallel_libs-commits Differential Revision: https://reviews.llvm.org/D23851 llvm-svn: 279669
* Disable test under asan: it uses a lot of stack, and asan increases theRichard Smith2016-08-241-4/+9
| | | | | | | | per-frame stack usage enough to cause it to hit our stack limit. This is not ideal; we should find a better way of dealing with this, such as increasing our stack allocation when built with ASan. llvm-svn: 279668
* PR29097: add an update record when we instantiate the default memberRichard Smith2016-08-248-6/+68
| | | | | | initializer of an imported field. llvm-svn: 279667
* [clang-tidy misc-move-const-arg] more specific messages + suggest ↵Alexander Kornienko2016-08-242-10/+15
| | | | | | alternative solution llvm-svn: 279666
* ARM: don't diagnose cbz/cbnz to Thumb functions.Tim Northover2016-08-243-1/+17
| | | | | | | | A branch-distance to a Thumb function shouldn't be forced to be odd for CBZ/CBNZ instructions because (assuming it's within range), it's going to be a valid, even offset. llvm-svn: 279665
* [sanitizer] re-apply r279572 and r279595 reverted in r279643: change the ↵Kostya Serebryany2016-08-243-182/+144
| | | | | | 64-bit allocator to use a single array for free-d chunks instead of a lock-free linked list of tranfer batches. This change simplifies the code, makes the allocator more 'hardened', and will allow simpler code to release RAM to OS. This may also slowdown malloc stress tests due to lock contension, but I did not observe noticeable slowdown on various real multi-threaded benchmarks. llvm-svn: 279664
* [Sema][Comments] Support @param with c++ 'using' keywordBruno Cardoso Lopes2016-08-242-6/+69
| | | | | | | | | | | | | Give appropriate warnings with -Wdocumentation for @param comments that refer to function aliases defined with 'using'. Very similar to typedef's behavior. This does not add support for TypeAliasTemplateDecl yet. Differential Revision: https://reviews.llvm.org/D23783 rdar://problem/27300695 llvm-svn: 279662
* [ubsan] fix the test to me more resistent against changes in the sanitizer ↵Kostya Serebryany2016-08-241-0/+7
| | | | | | allocator llvm-svn: 279661
* AMDGCN/SI: Implement readlane/readfirstlane intrinsicsChangpeng Fang2016-08-244-4/+91
| | | | | | | | | | | | | | | Summary: This patch implements readlane/readfirstlane intrinsics. TODO: need to define a new register class to consider the case that the source could be a vector register or M0. Reviewed by: arsenm and tstellarAMD Differential Revision: http://reviews.llvm.org/D22489 llvm-svn: 279660
* Clang-tidy documentation style. Two Google checks are aliases.Eugene Zelenko2016-08-248-36/+29
| | | | | | Differential revision: https://reviews.llvm.org/D23815 llvm-svn: 279659
* [StreamExecutor] Fix allocateDeviceMemoryJason Henline2016-08-242-2/+37
| | | | | | | | | | | | | | | | | | | Summary: The return value from PlatformExecutor::allocateDeviceMemory needs to be converted from Expected<GlobalDeviceMemoryBase> to Expected<GlobalDeviceMemory<T>> in Executor::allocateDeviceMemory. A similar bug is also fixed for Executor::allocateHostMemory. Thanks to jprice for identifying this bug. Reviewers: jprice, jlebar Subscribers: parallel_libs-commits Differential Revision: https://reviews.llvm.org/D23849 llvm-svn: 279658
* Add %loadPolly to test command line.Michael Kruse2016-08-241-1/+1
| | | | | | Required for out-of-tree builds of Polly. llvm-svn: 279657
OpenPOWER on IntegriCloud