summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar
Commit message (Collapse)AuthorAgeFilesLines
...
* Add an assertion to check that we're really preserving LCSSA.Owen Anderson2006-08-251-0/+2
| | | | llvm-svn: 29886
* Reapply the indvars patch, since nothing blew up last night.Owen Anderson2006-08-251-0/+1
| | | | llvm-svn: 29874
* Revert my previous patch. Since there are some major changes that went in ↵Owen Anderson2006-08-251-3/+0
| | | | | | | | | today, I'm going to wait to put this in HEAD until tomorrow, so as not to clutter the nightly tester. llvm-svn: 29868
* Specify that indvars actually preserve LCSSA. This has been done for a ↵Owen Anderson2006-08-251-0/+3
| | | | | | | | while, but I forgot to put in the analysis usage. llvm-svn: 29867
* Implement unrolling of multiblock loops. This significantly improves theOwen Anderson2006-08-241-127/+125
| | | | | | | | utility of the LoopUnroll pass. Also, add a testcase for multiblock-loop unrolling. llvm-svn: 29859
* Fix a grammaro in a comment.Reid Spencer2006-08-181-1/+1
| | | | llvm-svn: 29765
* Handle single-entry PHI nodes correctly. This fixes PR877 andChris Lattner2006-08-141-1/+11
| | | | | | Transforms/CondProp/2006-08-14-SingleEntryPhiCrash.ll llvm-svn: 29673
* Changes:Chris Lattner2006-08-031-17/+46
| | | | | | | | | | | | | | | 1. Update an obsolete comment. 2. Make the sorting by base an explicit (though still N^2) step, so that the code is more clear on what it is doing. 3. Partition uses so that uses inside the loop are handled before uses outside the loop. Note that none of these changes currently changes the code inserted by LSR, but they are a stepping stone to getting there. This code is the result of some crazy pair programming with Nate. :) llvm-svn: 29493
* Add some adviceChris Lattner2006-07-275-1230/+0
| | | | llvm-svn: 29324
* Minor comment tweaksChris Lattner2006-07-201-6/+5
| | | | llvm-svn: 29226
* Add an assertion.Owen Anderson2006-07-191-0/+2
| | | | llvm-svn: 29199
* Make LoopUnroll not die on LCSSA Phis. This makes lencod work again.Owen Anderson2006-07-191-0/+6
| | | | llvm-svn: 29198
* Fix a error that hadn't yet cause any problems, but I'm sure it would haveOwen Anderson2006-07-191-1/+1
| | | | | | somewhere down the road. llvm-svn: 29197
* Only reuse a previous IV if it would not require a type conversion.Evan Cheng2006-07-181-14/+17
| | | | llvm-svn: 29186
* Hopefully the final attempt at making IndVars preserve LCSSA.Owen Anderson2006-07-141-2/+30
| | | | | | This should fix PR 831. llvm-svn: 29141
* Revert this patch temporarily until PR831 is fixed.Chris Lattner2006-07-131-31/+15
| | | | llvm-svn: 29134
* IndVars now (correctly) preserves LCSSA form.Owen Anderson2006-07-121-15/+31
| | | | llvm-svn: 29126
* Silence a warning produced in assertions-disabled modeChris Lattner2006-07-111-1/+1
| | | | llvm-svn: 29108
* Revert my indvars changes because they were breaking things. Unfortunately thisOwen Anderson2006-07-111-29/+15
| | | | | | didn't start showing up until after the recent instcombine fixes. llvm-svn: 29102
* Add a comment, and fix a typo that broke the build.Owen Anderson2006-07-101-1/+2
| | | | llvm-svn: 29094
* Don't indent the entire function.Owen Anderson2006-07-101-50/+49
| | | | llvm-svn: 29093
* Recognize 16-bit bswaps by relaxing overconstrained pattern.Chris Lattner2006-07-101-2/+5
| | | | | | This implements Transforms/InstCombine/bswap.ll:test[34]. llvm-svn: 29087
* Make instcombine not remove Phi nodes when LCSSA is live.Owen Anderson2006-07-101-47/+51
| | | | llvm-svn: 29083
* Use hidden visibility to make symbols in an anonymous namespace getChris Lattner2006-06-283-4/+7
| | | | | | dropped. This shrinks libllvmgcc.dylib another 67K llvm-svn: 28975
* Shrink libllvmgcc.dylib by another 23KChris Lattner2006-06-285-6/+12
| | | | llvm-svn: 28972
* Switch to a very conservative heuristic for determining when loop-unswitchingOwen Anderson2006-06-281-5/+5
| | | | | | | | | | will be profitable. This is mainly to remove some cases where excessive unswitching would result in long compile times and/or huge generated code. Once someone comes up with a better heuristic that avoids these cases, this should be switched out. llvm-svn: 28962
* Fix Transforms/InstCombine/2006-06-28-infloop.llChris Lattner2006-06-281-0/+6
| | | | llvm-svn: 28961
* Don't unswitch really large loops even if they are mostly filled with emptyChris Lattner2006-06-281-0/+6
| | | | | | blocks. llvm-svn: 28959
* Catch more function pointer casting problemsAndrew Lenharth2006-06-281-1/+9
| | | | | | | | | Remove the Function pointer cast in these calls, converting it to a cast of argument. %tmp60 = tail call int cast (int (ulong)* %str to int (int)*)( int 10 ) %tmp60 = tail call int cast (int (ulong)* %str to int (int)*)( uint %tmp51 ) llvm-svn: 28953
* Fix for 2006-06-27-DeadSwitchCase.llOwen Anderson2006-06-271-5/+6
| | | | | | | Be more careful when updating Phi nodes after eliminating dead switch cases. Fix proposed by Chris. llvm-svn: 28947
* De-pessimize the handling of LCSSA Phi nodes in IndVarSimplify. Hopefully thisOwen Anderson2006-06-271-15/+29
| | | | | | will make Shootout-C/nestedloop faster. llvm-svn: 28924
* random code cleanups, no functionality changeChris Lattner2006-06-261-9/+8
| | | | llvm-svn: 28914
* Make LoopUnswitch able to unswitch loops with live-out values by taking ↵Owen Anderson2006-06-261-53/+63
| | | | | | | | | advantage of LCSSA. This results several times the number of unswitchings occurring on tests such and timberwolfmc, unix-tbl, and ldecod. llvm-svn: 28912
* Fix IndVarsSimplify/2006-06-16-Indvar-LCSSA-Crash.ll, a case where aChris Lattner2006-06-171-4/+19
| | | | | | | | "LCSSA" phi node causes indvars to break dominance properties. This fixes causes indvars to avoid inserting aggressive code in this case, instead indvars should be fixed to be more aggressive in the face of lcssa phi's. llvm-svn: 28850
* Implement Transforms/InstCombine/bswap.ll, turning common shift/and/or bswapChris Lattner2006-06-151-1/+131
| | | | | | idioms into bswap intrinsics. llvm-svn: 28803
* Fix Transforms/LoopUnswitch/2006-06-13-SingleEntryPHI.ll, a loop unswitchChris Lattner2006-06-141-1/+13
| | | | | | bug exposed by the recent lcssa work. llvm-svn: 28779
* Reapply my 6/9 changes. The bug Evan saw no longer occurs.Owen Anderson2006-06-121-1/+7
| | | | llvm-svn: 28759
* Back out Owen's 6/9 changes. They broke ↵Evan Cheng2006-06-111-4/+0
| | | | | | MultiSource/Benchmarks/Prolangs-C/bison (and perhaps others). llvm-svn: 28747
* Add LCSSA as a requirement for LoopUnswitch, and assert that LoopUnswitch ↵Owen Anderson2006-06-091-0/+4
| | | | | | | | preserves LCSSA. llvm-svn: 28739
* RewriteExpr, either the new PHI node of induction variable or theEvan Cheng2006-06-091-0/+3
| | | | | | | | post-increment value, should be first cast to the appropriated type (to the type of the common expr). Otherwise, the rewrite of a use based on (common + iv) may end up with an incorrect type. llvm-svn: 28735
* Fix a spello in a comment.Reid Spencer2006-06-071-1/+1
| | | | llvm-svn: 28714
* Fix a bug in a recent patch. This fixes UnitTests/Vector/Altivec/casts.c onChris Lattner2006-06-061-1/+1
| | | | | | PPC/altivec llvm-svn: 28698
* Remove unneeded hook. Patch by Anton K. Thanks!Chris Lattner2006-06-021-2/+0
| | | | llvm-svn: 28664
* Silence a -pedantic warning.Chris Lattner2006-06-011-1/+1
| | | | llvm-svn: 28632
* Swap the order of operands created here. For +&|^, the order doesn't matter,Chris Lattner2006-05-311-2/+3
| | | | | | | but for sub, it really does! Fix fixes a miscompilation of fibheap_cut in llvmgcc4. llvm-svn: 28600
* Implement Transforms/InstCombine/store.ll:test2.Chris Lattner2006-05-261-1/+15
| | | | llvm-svn: 28503
* Transform things like (splat(splat)) -> splatChris Lattner2006-05-261-4/+50
| | | | llvm-svn: 28490
* Introduce a helper function that simplifies interpretation of shuffle masks.Chris Lattner2006-05-251-91/+64
| | | | | | No functionality change. llvm-svn: 28489
* Turn (cast (shuffle (cast)) -> shuffle (cast) if it reduces the # casts inChris Lattner2006-05-251-2/+31
| | | | | | | the program. This exposes more opportunities for the instcombiner, and implements vec_shuffle.ll:test6 llvm-svn: 28487
* extract element from a shuffle vector can be trivially turned into anChris Lattner2006-05-251-12/+41
| | | | | | extractelement from the SV's source. This implement vec_shuffle.ll:test[45] llvm-svn: 28485
OpenPOWER on IntegriCloud