summaryrefslogtreecommitdiffstats
path: root/llvm/test
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Remove now-redundant llvm-as invocations.Dan Gohman2009-12-0520-21/+21
| | | | llvm-svn: 90626
* Add testcase for PR4262.Bill Wendling2009-12-041-0/+17
| | | | llvm-svn: 90623
* Temporarily revert r72620 because r72619 was reverted.Bill Wendling2009-12-042-6/+8
| | | | llvm-svn: 90619
* Fix PR5551 by not ignoring the top level constantexpr whenChris Lattner2009-12-041-0/+9
| | | | | | folding a load from constant. llvm-svn: 90545
* Small and carefully crafted testcase showing a miscompilation by GVNChris Lattner2009-12-041-0/+33
| | | | | | | that I'm working on. This is manifesting as a miscompile of 255.vortex on some targets. No check lines yet because it fails. llvm-svn: 90520
* Also attempt trivial coalescing for live intervals that end in a copy.Jakob Stoklund Olesen2009-12-042-2/+2
| | | | | | | | | | | | | The coalescer is supposed to clean these up, but when setting up parameters for a function call, there may be copies to physregs. If the defining instruction has been LICM'ed far away, the coalescer won't touch it. The register allocation hint does not always work - when the register allocator is backtracking, it clears the hints. This patch takes care of a few more cases that r90163 missed. llvm-svn: 90502
* Don't pull vector sext through both hands of a logical operation, since ↵Nate Begeman2009-12-031-0/+29
| | | | | | | | | doing so prevents the fusion of vector sext and setcc into vsetcc. Add a testcase for the above transformation. Fix a bogus use of APInt noticed while tracking this down. llvm-svn: 90423
* Recognize canonical forms of vector shuffles where the same vector is used forBob Wilson2009-12-031-0/+19
| | | | | | | | both source operands. In the canonical form, the 2nd operand is changed to an undef and the shuffle mask is adjusted to only reference elements from the 1st operand. Radar 7434842. llvm-svn: 90417
* Fix this crasher, and add a FIXME for a missed optimization.Owen Anderson2009-12-031-1/+0
| | | | llvm-svn: 90408
* add a failing testcase.Chris Lattner2009-12-031-0/+44
| | | | llvm-svn: 90380
* fix PR5673 by being more careful about pointers to functions.Chris Lattner2009-12-031-0/+11
| | | | llvm-svn: 90369
* Remove unnecessary check.Bill Wendling2009-12-021-1/+0
| | | | llvm-svn: 90352
* Cleanup/remove some parts of the lifetime region handling code in memdep and ↵Owen Anderson2009-12-022-20/+2
| | | | | | | | GVN, per Chris' comments. Adjust testcases to match. llvm-svn: 90304
* merge sext-2 into sext.llChris Lattner2009-12-022-14/+12
| | | | llvm-svn: 90293
* rename testChris Lattner2009-12-021-0/+0
| | | | llvm-svn: 90292
* filecheckizeChris Lattner2009-12-021-15/+54
| | | | llvm-svn: 90291
* Fixed an assertion failure for tracking sext of a vector of integersMon P Wang2009-12-021-0/+14
| | | | llvm-svn: 90290
* Fix PR5391: support early clobber physical register def tied with a use (ewwww)Evan Cheng2009-12-011-0/+38
| | | | | | | | - A valno should be set HasRedefByEC if there is an early clobber def in the middle of its live ranges. It should not be set if the def of the valno is defined by an early clobber. - If a physical register def is tied to an use and it's an early clobber, it just means the HasRedefByEC is set since it's still one continuous live range. - Add a couple of missing checks for HasRedefByEC in the coalescer. In general, it should not coalesce a vr with a physical register if the physical register has a early clobber def somewhere. This is overly conservative but that's the price for using such a nasty inline asm "feature". llvm-svn: 90269
* test case for IV-Users simplification loop improvementJim Grosbach2009-12-011-0/+128
| | | | llvm-svn: 90260
* Clear function specific containers while processing end of a function, even ↵Devang Patel2009-12-011-0/+17
| | | | | | if DW_TAG_subprogram for current function is not found. llvm-svn: 90247
* minimize this a bit more.Chris Lattner2009-12-011-2/+1
| | | | llvm-svn: 90216
* merge 2009-11-29-ReverseMap.ll into crash.llChris Lattner2009-12-012-33/+34
| | | | llvm-svn: 90212
* fix PR5640 by tracking whether a block is the header of a loop moreChris Lattner2009-12-011-0/+20
| | | | | | precisely, which prevents us from infinitely peeling the loop. llvm-svn: 90211
* Use CFG connectedness as a secondary sort key when deciding the order of ↵Jakob Stoklund Olesen2009-12-011-0/+1
| | | | | | | | | copy coalescing. This means that well connected blocks are copy coalesced before the less connected blocks. Connected blocks are more difficult to coalesce because intervals are more complicated, so handling them first gives a greater chance of success. llvm-svn: 90194
* Add a comment about A[i+(j+1)].Dan Gohman2009-12-011-1/+1
| | | | llvm-svn: 90185
* Fix PR5614: parts of a physical register def may be killed the rest.Evan Cheng2009-12-011-0/+41
| | | | llvm-svn: 90180
* Test case for r90175.Devang Patel2009-12-011-0/+14
| | | | llvm-svn: 90176
* New virtual registers created for spill intervals should inherit allocation ↵Jakob Stoklund Olesen2009-11-301-1/+1
| | | | | | | | | | | | | | | | | | | hints from the original register. This helps us avoid silly copies when rematting values that are copied to a physical register: leaq _.str44(%rip), %rcx movq %rcx, %rsi call _strcmp becomes: leaq _.str44(%rip), %rsi call _strcmp The coalescer will not touch the movq because that would tie down the physical register. llvm-svn: 90163
* Debug info is disabled on PPC Darwin.Bill Wendling2009-11-303-1/+10
| | | | llvm-svn: 90160
* Add a testcase for the current llvm-gcc build failure.Nick Lewycky2009-11-301-0/+33
| | | | llvm-svn: 90112
* Add test case for r90108Mon P Wang2009-11-301-0/+154
| | | | llvm-svn: 90109
* Fix this test on 64-bit systems which seem to use i64 for gep indices sometimesNick Lewycky2009-11-301-3/+3
| | | | | | while 32-bit gcc uses i32. llvm-svn: 90106
* Commit r90099 made LLVM simplify one of these constant expressions a littleNick Lewycky2009-11-301-6/+5
| | | | | | | | | more. Update the syntax we're checking for and filecheckize it too. This will fix the selfhost buildbots but will 'break' the others (sigh) because they're still linked against older LLVM which is emitting less optimized IR. llvm-svn: 90104
* Teach ConstantFolding to do a better job when folding gep(bitcast).Nick Lewycky2009-11-291-1/+1
| | | | | | This permits the devirtualization of llvm.org/PR3100#c9 when compiled by clang. llvm-svn: 90099
* add testcases for the foo_with_overflow op xforms added recently andChris Lattner2009-11-291-3/+70
| | | | | | fix bugs exposed by the tests. Testcases from Alastair Lynn! llvm-svn: 90056
* add PR#Chris Lattner2009-11-291-0/+1
| | | | llvm-svn: 90049
* Add a testcase for:Chris Lattner2009-11-291-0/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | void test(int N, double* G) { long j; for (j = 1; j < N - 1; j++) G[j] = G[j] + G[j+1] + G[j-1]; } which we now compile to one load in the loop: LBB1_2: ## %bb movsd 16(%rsi,%rax,8), %xmm2 incq %rdx addsd %xmm2, %xmm1 addsd %xmm1, %xmm0 movapd %xmm2, %xmm1 movsd %xmm0, 8(%rsi,%rax,8) incq %rax cmpq %rcx, %rax jne LBB1_2 instead of: LBB1_2: ## %bb movsd 8(%rsi,%rax,8), %xmm0 addsd 16(%rsi,%rax,8), %xmm0 addsd (%rsi,%rax,8), %xmm0 movsd %xmm0, 8(%rsi,%rax,8) incq %rax cmpq %rcx, %rax jne LBB1_2 llvm-svn: 90048
* add a testcase forChris Lattner2009-11-291-0/+45
| | | | | | | | | | void test9(int N, double* G) { long j; for (j = 1; j < N - 1; j++) G[j+1] = G[j] + G[j+1]; } llvm-svn: 90047
* Implement PR5634.Chris Lattner2009-11-291-1/+43
| | | | llvm-svn: 90046
* Teach memdep to look for memory use intrinsics during dependency queries. FixesNick Lewycky2009-11-281-1/+19
| | | | | | PR5574. llvm-svn: 90045
OpenPOWER on IntegriCloud