summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [ValueTracking] computeOverflowForSignedAdd and isKnownNonNegativeJingyue Wu2015-08-203-36/+100
| | | | | | | | | | | | | | | | Summary: Refactor, NFC Extracts computeOverflowForSignedAdd and isKnownNonNegative from NaryReassociate to ValueTracking in case others need it. Reviewers: reames Subscribers: majnemer, llvm-commits Differential Revision: http://reviews.llvm.org/D11313 llvm-svn: 245591
* [LVI] Avoid iterator invalidation in LazyValueInfoCache::threadEdgeBruno Cardoso Lopes2015-08-201-1/+1
| | | | | | | Do that by copying out the elements to another SmallPtrSet. Follow up from r245309. llvm-svn: 245590
* Fix a bug that caused SimplifyCFG to drop DebugLocs.Adrian Prantl2015-08-208-5/+20
| | | | | | | | | | | Instruction::dropUnknownMetadata(KnownSet) is supposed to preserve all metadata in KnownSet, but the condition for DebugLocs was inverted. Most users of dropUnknownMetadata() actually worked around this by not adding LLVMContext::MD_dbg to their list of KnowIDs. This is now made explicit. llvm-svn: 245589
* Fix a debug location handling bug in GVN.Adrian Prantl2015-08-202-1/+137
| | | | | | | | | | | | | | Caught by the famous "DebugLoc describes the currect SubProgram" assertion. When GVN is removing a nonlocal load it updates the debug location of the SSA value it replaced the load with with the one of the load. In the testcase this actually overwrites a valid debug location with an empty one. In reality GVN has to make an arbitrary choice between two equally valid debug locations. This patch changes to behavior to only update the location if the value doesn't already have a debug location. llvm-svn: 245588
* [clang-tidy] Mention check_clang_tidy.py instead of check_clang_tidy.sh in ↵Alexander Kornienko2015-08-201-4/+3
| | | | | | the docs. llvm-svn: 245587
* [clang-tidy] Use check_clang_tidy.py instead of check_clang_tidy.sh by default.Alexander Kornienko2015-08-201-1/+1
| | | | llvm-svn: 245586
* Check feasibility for the runtime check context wrt. the domain.Johannes Doerfert2015-08-209-33/+39
| | | | | | | | If nothing is executed we can bail out early. Otherwise we can use the constraints that ensure at least one statement is executed for simplification. llvm-svn: 245585
* Link ScopArrayInfo objectsJohannes Doerfert2015-08-205-0/+124
| | | | | | | | We will record if a SAI is the base of another SAI or derived from it. This will allow to reason about indirect base pointers later on and allows a clearer picture of indirection also in the SCoP dump. llvm-svn: 245584
* [clang-tidy] Use a python script instead of a shell script to run clang-tidy ↵Alexander Kornienko2015-08-2053-104/+165
| | | | | | | | | | | | | | | | | | | tests. Summary: Add check_clang_tidy.py script that is functionally identical to the check_clang_tidy.py, but should also be functional on windows. I've verified that the script works on linux. Would be nice if folks using Windows could test the patch before I break windows bots ;) Reviewers: chapuni, aaron.ballman Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D12180 llvm-svn: 245583
* [CMake] Fixing r245581 based on feedback from Filcab.Chris Bieneman2015-08-203-5/+2
| | | | llvm-svn: 245582
* [CMake] [OS X] Don't require command line tools installations for running ↵Chris Bieneman2015-08-201-1/+18
| | | | | | | | compiler-rt tests. If you're on an Apple platform and /usr/include doesn't exist, we should set a sysroot flag when calling clang. llvm-svn: 245581
* [CMake] Fix building unit tests on DarwinChris Bieneman2015-08-206-6/+55
| | | | | | | | | | | | | | | | Summary: There are a number of issues with unit tests on Darwin. These patches address the following: * Unit tests should be passed -arch (-m32/-m64 isn't sufficient) * Unit tests should be passed ${DARWIN_osx_CFLAGS} because they're being built for OS X * Test architectures should be filtered based on base system capabilities (i.e. don't try running x86_64h tests on pre-haswell hardware). Reviewers: bogner, filcab, kubabrecka Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D12174 llvm-svn: 245580
* [LVer] Fix FIXME: hide addPHINodes, NFCAdam Nemet2015-08-203-11/+19
| | | | | | | | | | | | | | Since Ashutosh made findDefsUsedOutsideOfLoop public, we can clean this up. Now clients that don't compute DefsUsedOutsideOfLoop can just call versionLoop() and computing DefsUsedOutsideOfLoop will happen implicitly. With that there is no reason to expose addPHINodes anymore. Ashutosh, you can now drop the calls to findDefsUsedOutsideOfLoop and addPHINodes in LVerLICM and things should just work. llvm-svn: 245579
* [ARM] Don't try and custom lower a vNi64 SETCC.James Molloy2015-08-201-0/+6
| | | | | | | | It won't go well. We've already marked 64-bit SETCCs as non-Custom, but it's just possible that a SETCC has a legal result type but an illegal operand type. If this happens, bail out before we create unselectable nodes. Fixes PR24292. I tried to create a testcase but in 99% of cases we can't trigger this - not surprising that this bug has been latent since 2009. llvm-svn: 245577
* Fix symbol value computation when part of the expression is weak.Rafael Espindola2015-08-202-2/+7
| | | | | | | This matches the behaviour of the gnu assembler and is part of fixing pr24486. llvm-svn: 245576
* [Sparc]: correct the 'set' synthetic instructionDouglas Katzman2015-08-203-7/+115
| | | | | | Differential Revision: http://reviews.llvm.org/D12194 llvm-svn: 245575
* Add a new clang-tidy check (misc-move-constructor-init) that diagnoses move ↵Aaron Ballman2015-08-205-0/+191
| | | | | | constructor initializations that call copy constructors instead of move constructors. llvm-svn: 245571
* Optimize bitwise even/odd test (-x&1 -> x&1) to not use negation.Balaram Makam2015-08-202-0/+29
| | | | | | | | | | | | Summary: We know that -x & 1 is equivalent to x & 1, avoid using negation for testing if a negative integer is even or odd. Reviewers: majnemer Subscribers: junbuml, mssimpso, gberry, mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D12156 llvm-svn: 245569
* Tweak clang-tidy-diff.py to pass JSON argument correctly to clang-tidy on ↵NAKAMURA Takumi2015-08-202-5/+8
| | | | | | | | | | | win32 arg parser. - Single quotation is not recognized. - Use """ to pass a double quotation. It also reverts r211831. llvm-svn: 245567
* Tweak clang-tools-extra/test/clang-tidy/file-filter.cpp to pass on win32.NAKAMURA Takumi2015-08-201-4/+4
| | | | | | | | | | | | | | | | | | | | | | | FIXME: "-I %S/Inputs/file-filter/system/.." must be redundant. On Win32, file-filter/system\system-header1.h precedes file-filter\header*.h due to code order between '/' and '\\'. We should remove such a tweak to introduce the *right* path canonicalization. Posix: file-filter/header*.h file-filter/system/system-header1.h Win32: file-filter/system\system-header1.h file-filter\header*.h Win32, tweaked: file-filter/system/..\header*.h file-filter/system\system-header1.h It had been disabled since r220837. llvm-svn: 245566
* clang-tools-extra/test/lit.cfg: Prune an obsolete feature, python27. Now we ↵NAKAMURA Takumi2015-08-202-6/+0
| | | | | | | | requires python>=2.7. clang-tools-extra/test/clang-tidy/clang-tidy-diff.cpp was the only user. llvm-svn: 245565
* Add experimental support for trivial register tilingTobias Grosser2015-08-202-0/+51
| | | | | | | | | | Register tiling in Polly is for now just an additional level of tiling which is fully unrolled. It is disabled by default. To make this useful for more than experiments, we still need a cost function as well as possibly further optimizations that teach LLVM to actually put some of the values we got into scalar registers. llvm-svn: 245564
* Add support for two-level tilingTobias Grosser2015-08-202-14/+50
| | | | | | | | | | By default we only use one level of tiling for loops, but in general tiling for multiple levels is trivial for us. Hence, we add a set of options that allow people to play with a second level of tiling. If this is profitable for some cases we can work on heuristics that allow us to identify these cases and use two-level tiling for them. llvm-svn: 245563
* Silence a "not all control paths return a value" warning; NFC.Aaron Ballman2015-08-201-1/+1
| | | | llvm-svn: 245562
* [clang-tidy] Fix bug in modernize-loop-convert check.Alexander Kornienko2015-08-203-2/+35
| | | | | | | | http://reviews.llvm.org/D12186 Patch by Angel Garcia! llvm-svn: 245561
* Fix crash with two typos in the arguments of a functionOlivier Goffart2015-08-202-0/+7
| | | | | | | | The problem is that the arguments are of TheCall are reset later to the ones in Args, making TypoExpr put back. Some TypoExpr that have already been diagnosed and will assert later in Sema::getTypoExprState llvm-svn: 245560
* Factor out check for tileable band node.Tobias Grosser2015-08-201-7/+27
| | | | llvm-svn: 245559
* Introduce tileBand function to simplify codeTobias Grosser2015-08-201-19/+31
| | | | llvm-svn: 245558
* Add some forgotten isl memory annotationsTobias Grosser2015-08-201-2/+3
| | | | llvm-svn: 245557
* [OPENMP 4.1] Allow to use 'uval' and 'ref' modifiers for reference types only.Alexey Bataev2015-08-204-8/+17
| | | | | | Standard allows to use 'uval' and 'ref' modifiers in 'linear' clause for variables with reference types only. Added check for it and modified test. llvm-svn: 245556
* Increase timeout in TestCallWithTimeout to reduce flakynessPavel Labath2015-08-201-3/+3
| | | | | | | The test was flaky on the android buildbot, because the 10ms test completed before we got a chance to interrupt it. I increase the duration to 50ms to hopefully get more consistent results. llvm-svn: 245555
* [mips][microMIPS] Add microMIPS32r6 and microMIPS64r6 tests for existing ↵Zoran Jovanovic2015-08-206-0/+68
| | | | | | | | 16-bit ADDIUR1SP, ADDIUR2, ADDIUS5 and ADDIUSP instructions Differential Revision: http://reviews.llvm.org/D10955 llvm-svn: 245554
* [X86] Fix FBLD and FBSTPMarina Yatsina2015-08-202-2/+7
| | | | | | | | | | FBLD and FBSTP should receive TBYTE because it is defined as FBLD m80 FBSTP m80 Differential Revision: http://reviews.llvm.org/D11748 llvm-svn: 245553
* Skip TestCreateDuringInstructionStep on android aarch64Pavel Labath2015-08-202-19/+23
| | | | | | we are unable to step through _M_start_thread due to atomic instruction sequences. llvm-svn: 245552
* [X86] Fix bug in COMISD and COMISS definition in td filesMarina Yatsina2015-08-204-6/+24
| | | | | | | | | | | | COMISD should receive QWORD because it is defined as (V)COMISD xmm1, xmm2/m64 COMISS should receive DWORD because it is defined as (V)COMISS xmm1, xmm2/m32 Differential Revision: http://reviews.llvm.org/D11712 llvm-svn: 245551
* [OPENMP 4.1] Initial support for modifiers in 'linear' clause.Alexey Bataev2015-08-2015-40/+176
| | | | | | | | | | | | | | | | | | | | | | OpenMP 4.1 adds 3 optional modifiers to 'linear' clause. Format of 'linear' clause has changed to: ``` linear(linear-list[ : linear-step]) ``` where linear-list is one of the following ``` list modifier(list) ``` where modifier is one of the following: ``` ref (C++) val (C/C++) uval (C++) ``` Patch adds parsing and sema analysis for these modifiers. llvm-svn: 245550
* Make helper functions static. NFC.Benjamin Kramer2015-08-202-2/+2
| | | | llvm-svn: 245549
* [clang-tidy] Fold the meat of the UseNullPtrCheck into an anonymous namespace.Benjamin Kramer2015-08-201-0/+2
| | | | | | | | While convenient, RecursiveASTVisitor generates a ridiculous amount of dead template code. Making it not visible from the outside lets the compiler eliminate some of it, shrinking clang-tidy by ~140k. llvm-svn: 245548
* [LLDB] Use llvm::APInt and llvm::APFloat in Scalar and RegisterValueSagar Thakur2015-08-207-1394/+1936
| | | | | | | | | Eliminated ENABLE_128_BIT_SUPPORT and union ValueData from Scalar.cpp and use llvm::APInt and llvm::APFloat for all integer and floating point types. Also used Scalar in RegisterValue.cpp Reviewers: tberghammer, ovyalov, clayborg, labath Subscribers: lldb-commits, nitesh.jain, jaydeep Differential: http://reviews.llvm.org/D12100 llvm-svn: 245547
* Improve instruction emulation based stack unwindingTamas Berghammer2015-08-203-10/+24
| | | | | | | | | | | On ARM there is no difference petween a pop and a load instruction so a register can be loaded multiple times during the function. Add check to threat the load as a restore only if it do the restore from the same location where the register was saved. Differential revision: http://reviews.llvm.org/D11947 llvm-svn: 245546
* [NativeProcessLinux] Fix a bug in instruction-stepping over thread creationPavel Labath2015-08-207-257/+236
| | | | | | | | | | | | | | | | | | | | | | | Summary: There was a bug in NativeProcessLinux, where doing an instruction-level single-step over the thread-creation syscall resulted in loss of control over the inferior. This happened because after the inferior entered the thread-creation maintenance stop, we unconditionally performed a PTRACE_CONT, even though the original intention was to do a PTRACE_SINGLESTEP. This is fixed by storing the original state of the thread before the stop (stepping or running) and then performing the appropriate action when resuming. I also get rid of the callback in the ThreadContext structure, which stored the lambda used to resume the thread, but which was not used consistently. A test verifying the correctness of the new behavior is included. Reviewers: ovyalov, tberghammer Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D12104 llvm-svn: 245545
* [X86] Fix the (shl (and (setcc_c), c1), c2) -> (and setcc_c, (c1 << c2)) foldDavid Majnemer2015-08-202-12/+48
| | | | | | | | | We didn't check for the necessary preconditions before folding a mask/shift into a single mask. This fixes PR24516. llvm-svn: 245544
* Revert "[DSE] Enable removal of lifetime intrinsics in terminating blocks"Bjorn Steinbrink2015-08-202-81/+5
| | | | llvm-svn: 245543
* [DSE] Enable removal of lifetime intrinsics in terminating blocksBjorn Steinbrink2015-08-202-5/+81
| | | | | | | | | | | | | | | | Usually DSE is not supposed to remove lifetime intrinsics, but it's actually ok to remove them for dead objects in terminating blocks, because they convey no extra information there. Until we hit a lifetime start that cannot be removed, that is. Because from that point on the lifetime intrinsics become interesting again, e.g. for stack coloring. Reviewers: reames Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11710 llvm-svn: 245542
* [ARC] Pull the ObjC ARC components that really serve the role ofChandler Carruth2015-08-2013-262/+335
| | | | | | | | | | | | | | analyses into LLVM's Analysis library rather than having them in a Transforms library. This is motivated by the need to have the core AliasAnalysis infrastructure be aware of the ObjCARCAliasAnalysis. However, it also seems like a nice and clean separation. Everything was very easy to move and this doesn't create much clutter in the analysis library IMO. Differential Revision: http://reviews.llvm.org/D12133 llvm-svn: 245541
* Check for feasible runtime check context earlyJohannes Doerfert2015-08-204-6/+46
| | | | | | | | | | Instead of generating code for an empty assumed context we bail out early. As the number of assumptions we generate increases this becomes more and more important. Additionally, this change will allow us to hide internal contexts that are only used in runtime checks e.g., a boundary context with constraints not suited for simplifications. llvm-svn: 245540
* Fix a typo: overidden -> overridden - Patch from Kai ZhaoEric Fiselier2015-08-201-1/+1
| | | | llvm-svn: 245539
* Fix a typo: abreviated -> abbreviated - Patch from Kai ZhaoEric Fiselier2015-08-202-2/+2
| | | | llvm-svn: 245538
* If the filename specified by plugin.process.gdb-remote.target-definition-file,Jason Molenda2015-08-201-0/+5
| | | | | | doesn't exist, see if it needs tilde expansion before we ignore it completely. llvm-svn: 245537
* When the target definition is unparseable, print an error messageJason Molenda2015-08-201-0/+7
| | | | | | | | | to the user. e.g. specified via the plugin.process.gdb-remote.target-definition-file setting. Currently we silently ignore the target definition if there is a parse error. llvm-svn: 245536
OpenPOWER on IntegriCloud