summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms
Commit message (Collapse)AuthorAgeFilesLines
* Fix test.Evan Cheng2008-05-161-1/+1
| | | | llvm-svn: 51191
* Move this test from ADCE to loop deletion, where it is more appropriate.Owen Anderson2008-05-161-1/+1
| | | | llvm-svn: 51181
* Use loop deletion instead of ADCE in these tests.Owen Anderson2008-05-162-2/+2
| | | | llvm-svn: 51180
* Use loop deletion instead of ADCE for removing loops.Owen Anderson2008-05-164-4/+4
| | | | llvm-svn: 51178
* implement PR2328.Chris Lattner2008-05-161-2/+12
| | | | llvm-svn: 51176
* Situations can arise when you have a function called that returns a 'void', butBill Wendling2008-05-142-2/+28
| | | | | | | | | | is bitcast to return a floating point value. The result of the instruction may not be used by the program afterwards, and LLVM will happily remove all instructions except the call. But, on some platforms, if a value is returned as a floating point, it may need to be removed from the stack (like x87). Thus, we can't get rid of the bitcast even if there isn't a use of the value. llvm-svn: 51134
* Simplify internalize pass. Add test case.Devang Patel2008-05-143-0/+32
| | | | | | Patch by Matthijs Kooijman! llvm-svn: 51114
* Fix for PR 2323, infinite loop in tail dup.Dale Johannesen2008-05-131-0/+26
| | | | llvm-svn: 51063
* Add a testcase for non-local CSE of read-only calls.Owen Anderson2008-05-131-0/+49
| | | | llvm-svn: 51025
* Testcase for PR2303.Duncan Sands2008-05-101-0/+33
| | | | llvm-svn: 50951
* Implement PR2298. This transforms:Chris Lattner2008-05-092-0/+20
| | | | | | | ~x < ~y --> y < x -x == -y --> x == y llvm-svn: 50882
* More than just loads can read from memory: readonly calls like strlenChris Lattner2008-05-081-0/+28
| | | | | | | also need to be checked for memory modifying instructions before we can sink them. THis fixes the second half of PR2297. llvm-svn: 50860
* Make instcombine's DSE respect loads as well as stores. It is not safe toChris Lattner2008-05-081-0/+25
| | | | | | | | | | | | delete the first store in: store x -> p load p store y -> p This is for PR2297. llvm-svn: 50859
* Fix a bug in the ComputeMaskedBits logic for multiply.Dan Gohman2008-05-071-0/+10
| | | | llvm-svn: 50793
* Testcase for r50770.Owen Anderson2008-05-061-0/+109
| | | | llvm-svn: 50771
* Correct the value of LowBits in srem and urem handling inDan Gohman2008-05-061-0/+9
| | | | | | ComputeMaskedBits. llvm-svn: 50692
* Fix a crash when threading a block that includes a MRV call result.Chris Lattner2008-05-051-0/+25
| | | | | | | | | DemoteRegToStack doesn't work with MRVs yet, because it relies on the ability to load/store things. This fixes PR2285. llvm-svn: 50667
* Fix a mistake in the computation of leading zeros for udiv.Dan Gohman2008-05-022-0/+39
| | | | llvm-svn: 50591
* strength reduce exp2 into ldexp, rdar://5852514Chris Lattner2008-05-021-0/+38
| | | | llvm-svn: 50586
* Update old-style syntax in some "not grep" tests.Dan Gohman2008-05-0114-14/+14
| | | | llvm-svn: 50560
* New test for bug fixed in 50545.Dale Johannesen2008-05-011-0/+26
| | | | llvm-svn: 50548
* Fix an overaggressive SimplifyDemandedBits optimization on urem. ThisDan Gohman2008-05-011-0/+32
| | | | | | fixes the 254.gap regression on x86 and the 403.gcc regression on x86-64. llvm-svn: 50537
* fix typoChris Lattner2008-05-011-1/+1
| | | | llvm-svn: 50519
* instcombine does memset optzns.Chris Lattner2008-05-011-18/+0
| | | | llvm-svn: 50518
* simplifylibcalls doesn't optimize llvm.memmove, instcombine does.Chris Lattner2008-05-011-22/+0
| | | | llvm-svn: 50517
* move some tests from libcall optimizer suite.Chris Lattner2008-05-011-0/+17
| | | | llvm-svn: 50516
* Move this test to LoopDeletion, where it now passes.Owen Anderson2008-04-302-2/+4
| | | | llvm-svn: 50474
* move lowering of llvm.memset -> store from simplify libcalls Chris Lattner2008-04-301-0/+15
| | | | | | to instcombine. llvm-svn: 50472
* no reason for simplifylibcalls to simplify intrinsics, instcombine doesChris Lattner2008-04-301-3/+1
| | | | | | a fine job. llvm-svn: 50470
* remove redundant check.Chris Lattner2008-04-301-3/+1
| | | | llvm-svn: 50469
* Fix a bug in memcpyopt where the memcpy-memcpy transform was never being ↵Owen Anderson2008-04-291-0/+17
| | | | | | | | | applied because we were checking for it in the wrong order. This caused a miscompilation because the return slot optimization assumes that the call it is dealing with is NOT a memcpy. llvm-svn: 50444
* don't eliminate load from volatile value on paths where the load is dead.Chris Lattner2008-04-291-0/+25
| | | | | | This fixes the second half of PR2262 llvm-svn: 50430
* make this test reduced and *valid*Chris Lattner2008-04-291-15/+6
| | | | llvm-svn: 50429
* fix a subtle volatile handling bug.Chris Lattner2008-04-291-0/+30
| | | | llvm-svn: 50428
* don't delete the last store to an alloca if the store is volatile.Chris Lattner2008-04-291-0/+8
| | | | llvm-svn: 50390
* Fix DSE to not eliminate volatile loads with no uses.Dan Gohman2008-04-281-0/+8
| | | | llvm-svn: 50370
* Teach InstCombine's ComputeMaskedBits what SelectionDAG'sDan Gohman2008-04-281-0/+45
| | | | | | | | | | | ComputeMaskedBits knows about cttz, ctlz, and ctpop. Teach SelectionDAG's ComputeMaskedBits what InstCombine's knows about SRem. And teach them both some things about high bits in Mul, UDiv, URem, and Sub. This allows instcombine and dagcombine to eliminate sign-extension operations in several new cases. llvm-svn: 50358
* Fix PR2256, yet another miscompilation in simplifycfg of iChris Lattner2008-04-281-0/+30
| | | | | | | | multiple return values. Bill, please pull this into Tak. llvm-svn: 50332
* When SRoA'ing a global variable, make sure the new globals get the Chris Lattner2008-04-261-0/+32
| | | | | | | | | appropriate alignment. This fixes a miscompilation of 252.eon on x86-64 (rdar://5891920). Bill, please pull this into Tak. llvm-svn: 50308
* Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989Nick Lewycky2008-04-253-89/+0
| | | | | | r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123. llvm-svn: 50265
* Don't infininitely thread branches when a threaded edgeChris Lattner2008-04-251-0/+142
| | | | | | | | | | | | | goes back to the block, e.g.: Threading edge through bool from 'bb37.us.thread3829' to 'bb37.us' with cost: 1, across block: bb37.us: ; preds = %bb37.us.thread3829, %bb37.us, %bb33 %D1361.1.us = phi i32 [ %tmp36, %bb33 ], [ %D1361.1.us, %bb37.us ], [ 0, %bb37.us.thread3829 ] ; <i32> [#uses=2] %tmp39.us = icmp eq i32 %D1361.1.us, 0 ; <i1> [#uses=1] br i1 %tmp39.us, label %bb37.us, label %bb42.us llvm-svn: 50251
* Split some code out of the main SimplifyCFG loop into its own function.Chris Lattner2008-04-241-0/+43
| | | | | | | Fix said code to handle merging return instructions together correctly when handling multiple return values. llvm-svn: 50199
* Rewrite multiple return value handling in SCCP. Before, the -sccp passChris Lattner2008-04-231-0/+11
| | | | | | | would turn every getresult instruction into undef. This helps with rdar://5778210 llvm-svn: 50140
* remove this testcase. It isn't testing loop rotate, it is testing allChris Lattner2008-04-231-127/+0
| | | | | | | | of -std-compile-opts and is now failing because other passes are generating IR that looks different to input of loop rotate. Devang, please introduce a testcase that only runs loop rotate. llvm-svn: 50136
* make this test more interesting.Chris Lattner2008-04-231-4/+6
| | | | llvm-svn: 50128
* distill down the essense of this test.Chris Lattner2008-04-231-7/+1
| | | | llvm-svn: 50125
* new testDale Johannesen2008-04-231-0/+21
| | | | llvm-svn: 50123
* Don't do: "(X & 4) >> 1 == 2 --> (X & 4) == 4" if there are more than one ↵Evan Cheng2008-04-231-0/+29
| | | | | | uses of the shift result. llvm-svn: 50118
* Start doing the significantly useful part of jump threading: handle casesChris Lattner2008-04-221-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | where a comparison has a phi input and that phi is a constant. For example, stuff like: Threading edge through bool from 'bb2149' to 'bb2231' with cost: 1, across block: bb2237: ; preds = %bb2231, %bb2149 %tmp2328.rle = phi i32 [ %tmp2232, %bb2231 ], [ %tmp2232439, %bb2149 ] ; <i32> [#uses=2] %done.0 = phi i32 [ %done.2, %bb2231 ], [ 0, %bb2149 ] ; <i32> [#uses=1] %tmp2239 = icmp eq i32 %done.0, 0 ; <i1> [#uses=1] br i1 %tmp2239, label %bb2231, label %bb2327 or bb38.i298: ; preds = %bb33.i295, %bb1693 %tmp39.i296.rle = phi %struct.ibox* [ null, %bb1693 ], [ %tmp39.i296.rle1109, %bb33.i295 ] ; <%struct.ibox*> [#uses=2] %minspan.1.i291.reg2mem.1 = phi i32 [ 32000, %bb1693 ], [ %minspan.0.i288, %bb33.i295 ] ; <i32> [#uses=1] %tmp40.i297 = icmp eq %struct.ibox* %tmp39.i296.rle, null ; <i1> [#uses=1] br i1 %tmp40.i297, label %implfeeds.exit311, label %bb43.i301 This triggers thousands of times in spec. llvm-svn: 50110
* Dig through multiple levels of AND to thread jumps if needed.Chris Lattner2008-04-221-0/+33
| | | | llvm-svn: 50106
OpenPOWER on IntegriCloud