summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/LoopUnswitch
Commit message (Collapse)AuthorAgeFilesLines
...
* Second attempt at PR12573:Bill Wendling2012-04-301-0/+101
| | | | | | | | | | | Allow the "SplitCriticalEdge" function to split the edge to a landing pad. If the pass is *sure* that it thinks it knows what it's doing, then it may go ahead and specify that the landing pad can have its critical edge split. The loop unswitch pass is one of these passes. It will split the critical edges of all edges coming from a loop to a landing pad not within the loop. Doing so will retain important loop analysis information, such as loop simplify. llvm-svn: 155817
* Fix 12513: Loop unrolling breaks with indirect branches.Andrew Trick2012-04-101-8/+3
| | | | | | | | Take this opportunity to generalize the indirectbr bailout logic for loop transformations. CFG transformations will never get indirectbr right, and there's no point trying. llvm-svn: 154386
* Fast fix for PR12343:Stepan Dyatkovskiy2012-04-021-0/+46
| | | | | | | | | | http://llvm.org/bugs/show_bug.cgi?id=12343 We have not trivial way for splitting edges that are goes from indirect branch. We can do it with some tricks, but it should be additionally discussed. And it is still dangerous due to difficulty of indirect branches controlling. Fix forbids this case for unswitching. llvm-svn: 153879
* Replace all instances of dg.exp file with lit.local.cfg, since all tests are ↵Eli Bendersky2012-02-162-3/+1
| | | | | | | | run with LIT now and now Dejagnu. dg.exp is no longer needed. Patch reviewed by Daniel Dunbar. It will be followed by additional cleanup patches. llvm-svn: 150664
* Improved compile time:Stepan Dyatkovskiy2012-01-111-2/+2
| | | | | | | | | | | | 1. Size heuristics changed. Now we calculate number of unswitching branches only once per loop. 2. Some checks was moved from UnswitchIfProfitable to processCurrentLoop, since it is not changed during processCurrentLoop iteration. It allows decide to skip some loops at an early stage. Extended statistics: - Added total number of instructions analyzed. llvm-svn: 147935
* Reinstate r146578; it doesn't appear to be the cause of some recent execution-Chad Rosier2011-12-223-0/+313
| | | | | | | | | | time regressions. In general, it is beneficial to compile-time. Original commit message: Fix for bug #11429: Wrong behaviour for switches. Small improvement for code size heuristics. llvm-svn: 147175
* Speculatively revert r146578 to determine if it is the cause of a number ofChad Rosier2011-12-223-313/+0
| | | | | | | | | | | performance regressions (both execution-time and compile-time) on our nightly testers. Original commit message: Fix for bug #11429: Wrong behaviour for switches. Small improvement for code size heuristics. llvm-svn: 147131
* Fix for bug #11429: Wrong behaviour for switches. Small improvement for code ↵Stepan Dyatkovskiy2011-12-143-0/+313
| | | | | | size heuristics. llvm-svn: 146578
* Split the landing pad basic block with the correct function. Also merge theBill Wendling2011-09-271-0/+67
| | | | | | | split landingpad instructions into a PHI node. PR11016 llvm-svn: 140592
* Bail on unswitching a switch statement for a case with a critical edge. We nameNick Lewycky2011-06-031-0/+28
| | | | | | | which edge to split by pred/succ pair, which means that we can end up splitting the wrong edge (by case value) in the switch statement entirely. Fixes PR10031! llvm-svn: 132535
* Factor code for testing whether replacing one value with anotherDuncan Sands2010-11-181-0/+28
| | | | | | | | preserves LCSSA form out of ScalarEvolution and into the LoopInfo class. Use it to check that SimplifyInstruction simplifications are not breaking LCSSA form. Fixes PR8622. llvm-svn: 119727
* Fix loop unswitching's assumption that a code path which eitherDan Gohman2010-09-011-0/+53
| | | | | | infinite loops or exits will eventually exit. This fixes PR5373. llvm-svn: 112745
* Remove arm_apcscc from the test files. It is the default and doing thisRafael Espindola2010-06-171-1/+1
| | | | | | matches what llvm-gcc and clang now produce. llvm-svn: 106221
* RewriteLoopBodyWithConditionConstant can end up rewriting theChris Lattner2010-04-201-0/+19
| | | | | | | | condition we're unswitching on. In this case, don't try to simplify the second copy of the loop which may be dead or not, but is probably a constant now. This fixes PR6879 llvm-svn: 101870
* fix a crash in loop unswitch on a loop invariant vector condition.Chris Lattner2010-02-021-1/+16
| | | | llvm-svn: 95055
* remove an unreduced testcase, rename another.Chris Lattner2010-02-022-1697/+0
| | | | llvm-svn: 95054
* Reverting patch in revision 89758, initial attempt at fixing PR5373 has ↵Edward O'Callaghan2009-11-251-24/+0
| | | | | | proven to be bogus. llvm-svn: 89844
* Fix for PR5373, Credit to Jakub Staszak.Edward O'Callaghan2009-11-241-0/+24
| | | | llvm-svn: 89758
* Move the dominator verification code out of special code embedded withinDan Gohman2009-09-281-1/+1
| | | | | | | | | | | | the PassManager code into a regular verifyAnalysis method. Also, reorganize loop verification. Make the LoopPass infrastructure call verifyLoop as needed instead of having LoopInfo::verifyAnalysis check every loop in the function after each looop pass. Add a new command-line argument, -verify-loop-info, to enable the expensive full checking. llvm-svn: 82952
* Eliminate more redundant llvm-as calls.Dan Gohman2009-09-111-1/+1
| | | | llvm-svn: 81540
* Change tests from "opt %s" to "opt < %s" so that opt doesn't see theDan Gohman2009-09-1115-15/+15
| | | | | | | | input filename so that opt doesn't print the input filename in the output so that grep lines in the tests don't unintentionally match strings in the input filename. llvm-svn: 81537
* Fix SplitCriticalEdge to properly update LCSSA form when splitting aDan Gohman2009-09-091-0/+34
| | | | | | | | | | loop exit edge -- new PHIs may be needed not only for the additional splits that are made to preserve LoopSimplify form, but also for the original split. Factor out the code that inserts new PHIs so that it can be used for both. Remove LoopRotation.cpp's code for manually updating LCSSA form, as it is now redundant. This fixes PR4934. llvm-svn: 81363
* Trim unnecessary declarations.Dan Gohman2009-09-081-550/+0
| | | | llvm-svn: 81227
* Change these tests to feed the assembly files to opt directly, insteadDan Gohman2009-09-0815-15/+15
| | | | | | of using llvm-as, now that opt supports this. llvm-svn: 81226
* Re-apply r80926, with fixes: keep the domtree informed of new blocksDan Gohman2009-09-082-52/+645
| | | | | | | | | | | | | | | that get created during loop unswitching, and fix SplitBlockPredecessors' LCSSA updating code to create new PHIs instead of trying to just move existing ones. Also, optimize Loop::verifyLoop, since it gets called a lot. Use searches on a sorted list of blocks instead of calling the "contains" function, as is done in other places in the Loop class, since "contains" does a linear search. Also, don't call verifyLoop from LoopSimplify or LCSSA, as the PassManager is already calling verifyLoop as part of LoopInfo's verifyAnalysis. llvm-svn: 81221
* Revert r80926. It causes loop unswitch assertion and slow down some JIT ↵Evan Cheng2009-09-061-0/+52
| | | | | | tests significantly. llvm-svn: 81101
* Actually test something. Use PR3170 test case.Devang Patel2008-12-081-36/+25
| | | | llvm-svn: 60727
* Undo previous patch. Devang Patel2008-12-081-1/+1
| | | | llvm-svn: 60701
* Ignore conditions that are outside the loop.Devang Patel2008-11-031-0/+47
| | | | llvm-svn: 58631
* Preserve dominance frontier while trivially unswitching loop.Devang Patel2008-06-181-0/+22
| | | | llvm-svn: 52438
* Update dom tree. Fix PR 2372.Devang Patel2008-06-021-0/+26
| | | | llvm-svn: 51887
* sabre brings to my attention that the 'tr' suffix is also obsoleteGabor Greif2008-05-201-1/+1
| | | | llvm-svn: 51349
* Rename the last test with .llx extension to .ll, resolve duplicate test by ↵Gabor Greif2008-05-201-1/+1
| | | | | | renaming to isnan2. Now that no test has llx ending there is no need to search for them from dg.exp too. llvm-svn: 51328
* Upgrade tests.Tanya Lattner2008-03-196-1640/+1599
| | | | llvm-svn: 48538
* Fix bug in updating dominance frontier after loop Devang Patel2007-10-051-0/+29
| | | | | | | unswitch when frontier includes basic blocks that are not inside loop. llvm-svn: 42654
* Convert tests using "| wc -l | grep ..." to use the count script.Dan Gohman2007-08-151-1/+1
| | | | llvm-svn: 41097
* Update dominator info for the middle blocks created while splitingDevang Patel2007-08-021-0/+55
| | | | | | | | exit edge to preserve LCSSA. Fix dominance frontier update during loop unswitch. This fixes PR 1589, again llvm-svn: 40737
* Update dominator info for the middle blocks created while splitingDevang Patel2007-08-011-0/+30
| | | | | | | | exit edge to preserve LCSSA. Fix dominance frontier update during loop unswitch. This fixes PR 1589. llvm-svn: 40695
* Bunch of tests to check loop passes.Devang Patel2007-07-312-0/+72
| | | | llvm-svn: 40629
* New test.Devang Patel2007-07-181-0/+66
| | | | llvm-svn: 40023
* Convert .cvsignore filesJohn Criswell2007-06-291-3/+0
| | | | llvm-svn: 37801
* Drop ModuleID from comment.Devang Patel2007-05-112-2/+2
| | | | llvm-svn: 36982
* New test.Devang Patel2007-05-091-0/+95
| | | | llvm-svn: 36954
* New test.Devang Patel2007-05-091-0/+32
| | | | llvm-svn: 36953
* For PR1319:Reid Spencer2007-04-151-2/+2
| | | | | | Upgrade to use new Tcl exec based test harness. llvm-svn: 36062
* Make the llvm-runtest function much more amenable by eliminating all theReid Spencer2007-04-111-1/+1
| | | | | | | | global variables that needed to be passed in. This makes it possible to add new global variables with only a couple changes (Makefile and llvm-dg.exp) instead of touching every single dg.exp file. llvm-svn: 35918
* Regression is gone, don't try to find it on clean target.Reid Spencer2007-01-177-0/+1863
llvm-svn: 33296
OpenPOWER on IntegriCloud