summaryrefslogtreecommitdiffstats
path: root/llvm/test
Commit message (Collapse)AuthorAgeFilesLines
* Fold (zext (and x, cst)) -> (and (zext x), cst).Evan Cheng2009-12-151-4/+4
| | | | llvm-svn: 91380
* Propagate zest through logical shift.Evan Cheng2009-12-152-0/+51
| | | | llvm-svn: 91378
* Fix integer cast code to handle vector types.Dan Gohman2009-12-141-0/+13
| | | | llvm-svn: 91362
* Add radar fixed in comment.Eric Christopher2009-12-141-5/+6
| | | | llvm-svn: 91312
* Remove empty file completelyShantonu Sen2009-12-141-0/+0
| | | | llvm-svn: 91277
* revert r91184, because it causes a crash on a .bc file I justChris Lattner2009-12-141-68/+0
| | | | | | sent to Bob. llvm-svn: 91268
* Add a test for the 'init' option property.Mikhail Glushenkov2009-12-141-0/+22
| | | | llvm-svn: 91259
* Disable r91104 for x86. It causes partial register stall which pessimize ↵Evan Cheng2009-12-121-1/+3
| | | | | | code in 32-bit. llvm-svn: 91223
* Fix some CHECK lines which were ignored by accident.Benjamin Kramer2009-12-122-8/+8
| | | | llvm-svn: 91214
* Revise scalar replacement to be more flexible about handle bitcasts and GEPs.Bob Wilson2009-12-111-0/+68
| | | | | | | | | | | | | | | While scanning through the uses of an alloca, keep track of the current offset relative to the start of the alloca, and check memory references to see if the offset & size correspond to a component within the alloca. This has the nice benefit of unifying much of the code from isSafeUseOfAllocation, isSafeElementUse, and isSafeUseOfBitCastedAllocation. The code to rewrite the uses of a promoted alloca, after it is determined to be safe, is reorganized in the same way. Also, when rewriting GEP instructions, mark them as "in-bounds" since all the indices are known to be safe. llvm-svn: 91184
* Lower setcc branchless, if this is profitable.Anton Korobeynikov2009-12-111-0/+116
| | | | | | Based on the patch by Brian Lucas! llvm-svn: 91175
* Implement vector widening, splitting, and scalarizing for SIGN_EXTEND_INREG.Dan Gohman2009-12-111-0/+37
| | | | llvm-svn: 91158
* Change this to the correct PR number.Dan Gohman2009-12-111-1/+1
| | | | llvm-svn: 91148
* Make getUniqueExitBlocks's precondition assert more precise, toDan Gohman2009-12-111-0/+22
| | | | | | avoid spurious failures. This fixes PR5758. llvm-svn: 91147
* Fix the result type of SELECT nodes lowered from Select instructions withDan Gohman2009-12-111-0/+15
| | | | | | aggregate return values. This fixes PR5754. llvm-svn: 91145
* Honour setHasCalls() set from isel.Anton Korobeynikov2009-12-111-0/+63
| | | | | | | This is used in some weird cases like general dynamic TLS model. This fixes PR5723 llvm-svn: 91144
* Tests for 91103 and 91104.Evan Cheng2009-12-111-0/+93
| | | | llvm-svn: 91105
* Add a test for the fix in revision 91009.Eric Christopher2009-12-101-0/+20
| | | | llvm-svn: 91062
* It's not safe to coalesce a move where src and dst registers have different ↵Evan Cheng2009-12-101-0/+40
| | | | | | | | subregister indices. e.g.: %reg16404:1<def> = MOV8rr %reg16412:2<kill> llvm-svn: 91061
* Fix PR5744, a case where we were getting the pointer size instead of theChris Lattner2009-12-101-0/+16
| | | | | | | | value size. This only manifested when memdep inprecisely returns clobber, which is do to a caching issue in the PR5744 testcase. We can 'efficiently emulate' this by using '-no-aa' llvm-svn: 91004
* Fix test.Evan Cheng2009-12-091-1/+1
| | | | llvm-svn: 90988
* Optimize splat of a scalar load into a shuffle of a vector load when it's ↵Evan Cheng2009-12-091-0/+43
| | | | | | | | | | | | legal. e.g. vector_shuffle (scalar_to_vector (i32 load (ptr + 4))), undef, <0, 0, 0, 0> => vector_shuffle (v4i32 load ptr), undef, <1, 1, 1, 1> iff ptr is 16-byte aligned (or can be made into 16-byte aligned). llvm-svn: 90984
* fix hte last remaining known (by me) phi translation bug. When we reanalyzeChris Lattner2009-12-091-4/+16
| | | | | | | clobbers to forward pieces of large stores to small loads, we need to consider the properly phi translated pointer in the store block. llvm-svn: 90978
* Add a minor optimization: if we haven't changed the operands of anChris Lattner2009-12-091-66/+0
| | | | | | | | | | add, there is no need to scan the world to find the same add again. This invalidates the previous testcase, which wasn't wonderful anyway, because it needed a run of instcombine to permute the use-lists in just the right way to before GVN was run (so it was really fragile). Not a big loss. llvm-svn: 90973
* fix PR5733, a case where we'd replace an add with a lexically identical Chris Lattner2009-12-091-0/+66
| | | | | | binary operator that wasn't an add. In this case, a xor. Whoops. llvm-svn: 90971
* merge crash-2.ll into crash.llChris Lattner2009-12-092-43/+43
| | | | llvm-svn: 90969
* the code in GVN that tries to forward large loads to small Chris Lattner2009-12-091-0/+54
| | | | | | | | stores is not phi translating, thus it miscompiles really crazy testcases. This is from inspection, I haven't seen this in the wild. llvm-svn: 90930
* Switch GVN and memdep to use PHITransAddr, which correctly handlesChris Lattner2009-12-091-1/+50
| | | | | | | | | | | | | | | | | | | | | | | phi translation of complex expressions like &A[i+1]. This has the following benefits: 1. The phi translation logic is all contained in its own class with a strong interface and verification that it is self consistent. 2. The logic is more correct than before. Previously, if intermediate expressions got PHI translated, we'd miss the update and scan for the wrong pointers in predecessor blocks. @phi_trans2 is a testcase for this. 3. We have a lot less code in memdep. We can handle phi translation across blocks of things like @phi_trans3, which is pretty insane :). This patch should fix the miscompiles of 255.vortex, and I tested it with a bootstrap of llvm-gcc, llvm-test and dejagnu of course. llvm-svn: 90926
* Teach InferPtrAlignment to infer GV+cst alignment and use it to simplify x86 ↵Evan Cheng2009-12-091-3/+3
| | | | | | isl lowering code. llvm-svn: 90925
* Remove tests that are not suitable anymore. Plus they are not testing the ↵Devang Patel2009-12-098-1035/+0
| | | | | | original bugfixes anymore. These tests were inserted to check bug fixes in code that handled debug info intrinsics. These intrinsics are no longer used and now llvm parser simply ignores old .dbg intrinsics from these dead tests. llvm-svn: 90923
* Revert 90858 90875 and 90805 for now.Devang Patel2009-12-081-18/+0
| | | | llvm-svn: 90898
* - Support inline asm 'w' constraint for 128-bit vector types.Evan Cheng2009-12-081-0/+13
| | | | | | - Also support the 'q' NEON registers asm code. llvm-svn: 90894
* CMake/lit: Add llvm_{unit_,}site_config parameters, and always pass them ↵Daniel Dunbar2009-12-083-0/+14
| | | | | | when running tests from the project files. llvm-svn: 90869
* Do not try to push dead variable's debug info into namespace info.Devang Patel2009-12-081-0/+18
| | | | llvm-svn: 90857
* Teach GlobalOpt to delete aliases with internal linkage (afterDuncan Sands2009-12-081-1/+13
| | | | | | | forwarding any uses). GlobalDCE can also do this, but is only run at -O3. llvm-svn: 90850
* Reduce (cmp 0, and_su (foo, bar)) into (bit foo, bar). This saves extra ↵Anton Korobeynikov2009-12-081-0/+166
| | | | | | instruction. Patch inspired by Brian Lucas! llvm-svn: 90819
* Test case for 90787.Evan Cheng2009-12-071-0/+15
| | | | llvm-svn: 90791
* Use FileCheck and set nounwind on calls.David Greene2009-12-071-6/+7
| | | | llvm-svn: 90790
* Don't enable the post-RA scheduler on x86 except at -O3. In itsDan Gohman2009-12-078-8/+8
| | | | | | current form, it is too expensive in compile time. llvm-svn: 90781
* Implement 'forward_value' and 'forward_transformed_value'.Mikhail Glushenkov2009-12-072-0/+42
| | | | llvm-svn: 90770
* Dynamic stack realignment use of sp register as source/dest registerAnton Korobeynikov2009-12-062-2/+2
| | | | | | | | | | in "bic sp, sp, #15" leads to unpredicatble behaviour in Thumb2 mode. Emit the following code instead: mov r4, sp bic r4, r4, #15 mov sp, r4 llvm-svn: 90724
* fix PR5698Chris Lattner2009-12-061-0/+22
| | | | llvm-svn: 90708
* constant fold loads from memcpy's from global constants. This is importantChris Lattner2009-12-061-0/+16
| | | | | | | because clang lowers nontrivial automatic struct/array inits to memcpy from a global array. llvm-svn: 90698
* add support for forwarding mem intrinsic values to non-local loads.Chris Lattner2009-12-061-0/+26
| | | | llvm-svn: 90697
* gvn is optimizing this better now.Chris Lattner2009-12-061-2/+2
| | | | llvm-svn: 90696
* Handle forwarding local memsets to loads. For example, we optimize this:Chris Lattner2009-12-061-0/+37
| | | | | | | | | | | short x(short *A) { memset(A, 1, sizeof(*A)*100); return A[42]; } to 'return 257' instead of doing the load. llvm-svn: 90695
* merge two tests.Chris Lattner2009-12-062-20/+25
| | | | llvm-svn: 90691
* Temporarily revert r90502. It was causing the llvm-gcc bootstrap on PPC to fail.Bill Wendling2009-12-052-2/+2
| | | | llvm-svn: 90653
* Generalize this optimization to work on equality comparisons between any twoNick Lewycky2009-12-051-3/+33
| | | | | | integers that are constant except for a single bit (the same n-th bit in each). llvm-svn: 90646
* Fix this code to use DIScope instead of DICompileUnit, as in r90181.Dan Gohman2009-12-051-1/+1
| | | | | | | Don't print "SrcLine"; just print the filename and line number, which is obvious enough and more informative. llvm-svn: 90631
OpenPOWER on IntegriCloud