summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* revert r297155 because there's a clang test that depends on InstCombine:Sanjay Patel2017-03-072-24/+6
| | | | | | tools/clang/test/CodeGen/zvector.c llvm-svn: 297166
* Revert "Strip debug info when inlining into a nodebug function."Adrian Prantl2017-03-073-70/+15
| | | | | | | | | | This reverts commit r296488. As noted by David Blaikie on llvm-commits, I overlooked the case of a debug function being inlined into a nodebug function being inlined into a debug function. llvm-svn: 297163
* Revert "Document that code inlined into a nodebug function also won't get any"Adrian Prantl2017-03-071-2/+1
| | | | | | | This reverts commit r296776. This statement is no longer true. llvm-svn: 297162
* Relax the conflicting function arg verifier to allow for inlined debugAdrian Prantl2017-03-072-0/+80
| | | | | | info in nodebug functions. llvm-svn: 297161
* Verfier: Move the reset of DebugFnArgs closer to other similar operations.Adrian Prantl2017-03-071-2/+1
| | | | | | NFC llvm-svn: 297160
* Revert r297132, it caused PR32171Nico Weber2017-03-072-124/+3
| | | | llvm-svn: 297159
* [tests] Make sure tests do not end in 'unreachable' - Part IIITobias Grosser2017-03-074-6/+6
| | | | | | | | | | There is no point in optimizing unreachable code, hence our test cases should always return. This commit is part of a series that makes Polly more robust on the presence of unreachables. llvm-svn: 297158
* [tests] Update bounds-check elimination test casesTobias Grosser2017-03-072-8/+8
| | | | | | | | | These test cases should work in combination with https://reviews.llvm.org/D12676, but became outdated over time. Update them in preparation of discussions with Daniel Berlin on how to represent unreachable in the post-dominator tree. llvm-svn: 297157
* [ScopInfo] Avoid infinite loop during schedule constructionTobias Grosser2017-03-071-3/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | Our current scop modeling enters an infinite loop when trying to model code that has unreachable instructions (e.g., test/ScopInfo/BoundChecks/single-loop.ll), as the number of basic blocks returned by the LLVM Loop* does not include unreachable basic blocks that branch off from the core loop body. This arises for example in the following piece of code: for (i = 0; i < N; i++) { if (i > 1024) abort(); <- this abort might be translated to an unreachable A[i] = ... } This patch adds these unreachable basic blocks in our per loop basic block count to ensure that the schedule construction does not assume a loop has been processed completely, despite certain unreachable basic blocks still remaining. The infinite loop is only observable in combination with https://reviews.llvm.org/D12676 or a similar patch. llvm-svn: 297156
* [InstCombine] shrink truncated splat shuffleSanjay Patel2017-03-072-6/+24
| | | | | | | | | | | | | This is one part of solving a recent bug report: http://lists.llvm.org/pipermail/llvm-dev/2017-February/110293.html This keeps with our general approach: changing arbitrary shuffles is off-limts, but changing splat is ok. The transform is very similar to the existing shrinkBitwiseLogic() canonicalization. Differential Revision: https://reviews.llvm.org/D30123 llvm-svn: 297155
* [Support] Add the option to not follow symlinks on stat.Zachary Turner2017-03-074-25/+19
| | | | llvm-svn: 297154
* [analyzer] Improve valist checks and move it out from alpha state.Gabor Horvath2017-03-075-100/+202
| | | | | | | | | This patch makes the valist check more robust to the different AST variants on different platforms and also fixes a FIXME. Differential Revision: https://reviews.llvm.org/D30157 llvm-svn: 297153
* Use 32 bits for alignment.Rafael Espindola2017-03-073-4/+4
| | | | | | This is consistent with what we do for input sections. llvm-svn: 297152
* [ScopDetection] Do not detect scops that exit to an unreachableTobias Grosser2017-03-074-1/+82
| | | | | | | | | | | | | | | Scops that exit with an unreachable are today still permitted, but make little sense to optimize. We therefore can already skip them during scop detection. This speeds up scop detection in certain cases and also ensures that bugpoint does not introduce unreachables when reducing test cases. In practice this change should have little impact, as the performance of unreachable code is unlikely to matter. This commit is part of a series that makes Polly more robust in the presence of unreachables. llvm-svn: 297151
* [tests] Make sure tests do not end in 'unreachable' - Part IITobias Grosser2017-03-0710-14/+14
| | | | | | | | | | There is no point in optimizing unreachable code, hence our test cases should always return. This commit is part of a series that makes Polly more robust on the presence of unreachables. llvm-svn: 297150
* Let arm_section_length store the number of bytes.Ed Schouten2017-03-072-9/+5
| | | | | | | | | | | | | | | | Exception section data that we extract for DWARF gets stored as the offset and the number of bytes. For ARM exception info, we seem to deviate from this by storing the number of entries. Attempt to make this more consistent. By storing the number of bytes, we can get rid of the EHTEntry structure declared in AddressSpace.hpp. In UnwindCursor.hpp we already have another structure declared for the same purpose. Reviewed by: Keith Walker Differential Revision: https://reviews.llvm.org/D30681 llvm-svn: 297149
* [clang-format] Followup of D30646 - unbreak the buildAndi-Bogdan Postelnicu2017-03-071-2/+2
| | | | llvm-svn: 297148
* [tests] Make sure tests do not end in 'unreachable'Tobias Grosser2017-03-075-5/+5
| | | | | | | | | | There is no point in optimizing unreachable code, hence our test cases should always return. This commit is part of a series that makes Polly more robust on the presence of unreachables. llvm-svn: 297147
* Rename remaining uses of Addralign to Alignment.Rafael Espindola2017-03-073-9/+9
| | | | llvm-svn: 297146
* Android.rules: add support for clang compilerPavel Labath2017-03-072-16/+45
| | | | | | | | | | | | | | Summary: building executables with the NDK clang requires -target and -gcc-toolchain arguments. Reviewers: eugene, danalbert Subscribers: srhines, lldb-commits Differential Revision: https://reviews.llvm.org/D30574 llvm-svn: 297145
* Rename Addralign to Alignment.Rafael Espindola2017-03-075-12/+12
| | | | | | It now matches the name used in InputSectionBase. llvm-svn: 297144
* [clang-format] Fixed indent issue when adding a comment at the end of a ↵Andi-Bogdan Postelnicu2017-03-072-2/+7
| | | | | | | | return type in named function declaration. Differential Revision: https://reviews.llvm.org/D30646 llvm-svn: 297143
* [ARM] Correct handling of LSL #0 in an IT blockJohn Brawn2017-03-072-1/+15
| | | | | | | | | | | The check for LSL #0 in an IT block was checking if operand 4 was zero, but operand 4 is the condition code operand so it was actually checking for LSLEQ. Fix this by checking operand 3, which really is the immediate operand, and add some tests. Differential Revision: https://reviews.llvm.org/D30692 llvm-svn: 297142
* [Hexagon] Do not insert instructions before PHI nodesKrzysztof Parzyszek2017-03-072-1/+4
| | | | llvm-svn: 297141
* [clang-format] Support namespaces ending in semicolonKrasimir Georgiev2017-03-072-8/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch adds support for namespaces ending in semicolon to the namespace comment fixer. source: ``` namespace A { int i; int j; }; ``` clang-format before: ``` namespace A { int i; int j; } // namespace A; ``` clang-format after: ``` namespace A { int i; int j; }; // namespace A ``` Reviewers: djasper Reviewed By: djasper Subscribers: cfe-commits, klimek Differential Revision: https://reviews.llvm.org/D30688 llvm-svn: 297140
* Revert "Use LLVM for all stat-related functionality."Pavel Labath2017-03-0738-261/+289
| | | | | | | | | | | | | | | this reverts r297116 because it breaks the unittests and TestCompDirSymlink. The ModuleCache unit test is trivially fixable, but the CompDirSymlink failure is a symptom of a deeper problem: llvm's stat functionality is not a drop-in replacement for lldb's. The former is based on stat(2) (which does symlink resolution), while the latter is based on lstat(2) (which does not). This also reverts subsequent build fixes (r297128, r297120, 297117) and r297119 (Remove FileSpec dependency on FileSystem) which builds on top of this. llvm-svn: 297139
* [ARM] Reapply r296865 "[ARM] fpscr read/write intrinsics not aware of each ↵Ranjeet Singh2017-03-073-4/+49
| | | | | | | | | | | | | | | | | | | | other"" The original patch r296865 was reverted as it broke the chromium builds for Android https://bugs.llvm.org/show_bug.cgi?id=32134, this patch reapplies r296865 with a fix to make sure it doesn't cause the build regression. The problem was that intrinsic selection on int_arm_get_fpscr was failing in ISel this was because the code to manually select this intrinsic still thought it was the version with no side-effects (INTRINSIC_WO_CHAIN) which is wrong as it doesn't semantically match the definition in the tablegen code which says it does have side-effects, I've fixed this by updating the intrinsic type to INTRINSIC_W_CHAIN (has side-effects). I've also added a test for this based on Hans original reproducer. Differential Revision: https://reviews.llvm.org/D30645 llvm-svn: 297137
* [SystemZ] Add check VT.isSimple() in canTreateAsByteVector()Jonas Paulsson2017-03-072-1/+11
| | | | | | | | Since BB-vectorizer can produce vectors of for example 3 elements, this check is needed. Review: Ulrich Weigand llvm-svn: 297136
* Fix Mips LA25 Thunks where Caller and Callee in different OSPeter Smith2017-03-072-1/+139
| | | | | | | | | This change fixes a bug in which the Mips LA25 Thunks are always assigned to the same Output section as the caller and not the callee as expected. Differential Revision: https://reviews.llvm.org/D30637 llvm-svn: 297135
* In Thumb1, materialize a move between low registers as a `movs`, if CPSR ↵Artyom Skrobov2017-03-076-49/+45
| | | | | | | | | | | | | | | | isn't live. Summary: Previously, it had always been materialized as a push/pop sequence. Reviewers: labrinea, jroelofs Reviewed By: jroelofs Subscribers: llvm-commits, rengolin Differential Revision: https://reviews.llvm.org/D30648 llvm-svn: 297134
* [index] Mark categories of test classes with the 'UnitTest' symbol property ↵Argyrios Kyrtzidis2017-03-072-3/+11
| | | | | | as well. llvm-svn: 297133
* [LoopRotate] Update dbg.value intrinsicsSam Parker2017-03-072-3/+124
| | | | | | | | Propagate debug info through the newly inserted PHI nodes. Differential Revision: https://reviews.llvm.org/D30190 llvm-svn: 297132
* [AST/ObjC] Make ObjCCategoryImplDecl consistent with ObjCCategoryDecl and ↵Argyrios Kyrtzidis2017-03-0710-49/+28
| | | | | | | | use the category name as its DeclName This also addresses the badness in ObjCCategoryImplDecl's API, which was hiding NamedDecl's APIs with different meaning. llvm-svn: 297131
* [X86] Quick fix for build bot failure (r297127) due to unused variable.Ayman Musa2017-03-072-4/+2
| | | | llvm-svn: 297130
* [analyzer] Fix crash when building CFG with variable of incomplete typeMartin Bohme2017-03-072-2/+14
| | | | | | | | | | | | | | | | | | Summary: I've included a unit test with a function template containing a variable of incomplete type. Clang compiles this without errors (the standard does not require a diagnostic in this case). Without the fix, this case triggers the crash. Reviewers: klimek Reviewed By: klimek Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D30636 llvm-svn: 297129
* Fixed a missing brace.Sean Callanan2017-03-071-1/+1
| | | | llvm-svn: 297128
* [X86][AVX512] Adding new LLVM TableGen backend which generates the EVEX2VEX ↵Ayman Musa2017-03-079-1194/+369
| | | | | | | | | | | | compressing tables. X86EvexToVex machine instruction pass compresses EVEX encoded instructions by replacing them with their identical VEX encoded instructions when possible. It uses manually supported 2 large tables that map the EVEX instructions to their VEX ideticals. This TableGen backend replaces the tables by automatically generating them. Differential Revision: https://reviews.llvm.org/D30451 llvm-svn: 297127
* [X86][AVX512] Add missing entries to EVEX2VEX tablesAyman Musa2017-03-0713-185/+317
| | | | | | | | evex2vex pass defines 2 tables which maps EVEX instructions to their VEX identical when possible. Adding all missing entries. Differential Revision: https://reviews.llvm.org/D30501 llvm-svn: 297126
* Revert "[PowerPC][ELFv2ABI] Allocate parameter area on-demand to reduce ↵Tim Shen2017-03-072-129/+5
| | | | | | | | | | | stack frame size" This reverts commit r296771. We found some wide spread test failures internally. I'm working on a testcase. Politely revert the patch in the mean time. :) llvm-svn: 297124
* [LoopUnrolling] Fix loop size check for peelingSanjoy Das2017-03-072-2/+32
| | | | | | | | | | | | | | | | | | Summary: We should check if loop size allows us to peel at least one iteration before we do so. Patch by Max Kazantsev! Reviewers: sanjoy, mkuper, efriedma Reviewed By: mkuper Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D30632 llvm-svn: 297122
* [APInt] Add rvalue reference support to and, or, xor operations to allow ↵Craig Topper2017-03-073-71/+155
| | | | | | | | | | | | | | | | their memory allocation to be reused when possible This extends an earlier change that did similar for add and sub operations. With this first patch we lose the fastpath for the single word case as operator&= and friends don't support it. This can be added there if we think that's important. I had to change some functions in the APInt class since the operator overloads were moved out of the class and can't be used inside the class now. The getBitsSet change collides with another outstanding patch to implement it with setBits. But I didn't want to make this patch dependent on that series. I've also removed the Or, And, Xor functions which were rarely or never used. I already commited two changes to remove the only uses of Or that existed. Differential Revision: https://reviews.llvm.org/D30612 llvm-svn: 297121
* Fix FreeBSD build.Zachary Turner2017-03-071-2/+3
| | | | llvm-svn: 297120
* Remove FileSpec dependency on FileSystem.Zachary Turner2017-03-071-29/+23
| | | | llvm-svn: 297119
* Revert "AMDGPU: Set MCAsmInfo::PointerSize"Konstantin Zhuravlyov2017-03-072-27/+0
| | | | | | | | It breaks line tables because the patch is not complete, working on a complete one at the moment This reverts commit r294031. llvm-svn: 297118
* Fix linux build.Zachary Turner2017-03-071-2/+2
| | | | llvm-svn: 297117
* Use LLVM for all stat-related functionality.Zachary Turner2017-03-0740-259/+249
| | | | | | | | | | This deletes LLDB's FileType enumeration and replaces all users, and all calls to functions that check whether a file exists etc with corresponding calls to LLVM. Differential Revision: https://reviews.llvm.org/D30624 llvm-svn: 297116
* [APInt] Fix test names in unittest to match functions being tested. NFCCraig Topper2017-03-071-2/+2
| | | | llvm-svn: 297115
* [APInt] Add getBitsSetFrom and setBitsFrom to set upper bits starting at a bitCraig Topper2017-03-072-0/+43
| | | | | | | | | | | | We currently have methods to set a specified number of low bits, a specified number of high bits, or a range of bits. But looking at some existing code it seems sometimes we want to set the high bits starting from a certain bit. Currently we do this with something like getHighBits(BitWidth, BitWidth - StartBit). Or once we start switching to setHighBits, setHighBits(BitWidth - StartBit) or setHighBits(getBitWidth() - StartBit). Particularly for the latter case it would be better to have a convenience method like setBitsFrom(StartBit) so we don't need to mention the bit width that's already known to the APInt object. I considered just making setBits have a default value of UINT_MAX for the hiBit argument and we would internally MIN it with the bit width. So if it wasn't specified it would be treated as bit width. This would require removing the assertion we currently have on the value of hiBit and may not be as readable. Differential Revision: https://reviews.llvm.org/D30602 llvm-svn: 297114
* Add a testcase for r297072.Adrian Prantl2017-03-071-0/+56
| | | | | | | Check that missing debug locations on inlinable calls are a recoverable error. llvm-svn: 297113
* [APInt] Implement getLowBitsSet/getHighBitsSet/getBitsSet using ↵Craig Topper2017-03-072-24/+33
| | | | | | | | | | | | setLowBits/setHighBits/setBits This patch implements getLowBitsSet/getHighBitsSet/getBitsSet in terms of the new setLowBits/setHighBits/setBits methods by making an all 0s APInt and then calling the appropriate set method. This also adds support to setBits to allow loBits/hiBits to be in the other order to match with getBitsSet behavior. Differential Revision: https://reviews.llvm.org/D30563 llvm-svn: 297112
OpenPOWER on IntegriCloud