summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/IndVarsSimplify
Commit message (Collapse)AuthorAgeFilesLines
* Rename IndVarsSimplify to IndVarSimplify, to be consistent withDan Gohman2009-02-1645-1767/+0
| | | | | | the name used in the code that these tests are for. llvm-svn: 64624
* Extend the IndVarSimplify support for promoting induction variables:Dan Gohman2009-02-141-0/+38
| | | | | | | | | - Test for signed and unsigned wrapping conditions, instead of just testing for non-negative induction ranges. - Handle loops with GT comparisons, in addition to LT comparisons. - Support more cases of induction variables that don't start at 0. llvm-svn: 64532
* Teach IndVarSimplify to optimize code using the C "int" type forDan Gohman2009-02-121-0/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | loop induction on LP64 targets. When the induction variable is used in addressing, IndVars now is usually able to inserst a 64-bit induction variable and eliminates the sign-extending cast. This is also useful for code using C "short" types for induction variables on targets with 32-bit addressing. Inserting a wider induction variable is easy; the tricky part is determining when trunc(sext(i)) expressions are no-ops. This requires range analysis of the loop trip count. A common case is when the original loop iteration starts at 0 and exits when the induction variable is signed-less-than a fixed value; this case is now handled. This replaces IndVarSimplify's OptimizeCanonicalIVType. It was doing the same optimization, but it was limited to loops with constant trip counts, because it was running after the loop rewrite, and the information about the original induction variable is lost by that point. Rename ScalarEvolution's executesAtLeastOnce to isLoopGuardedByCond, generalize it to be able to test for ICMP_NE conditions, and move it to be a public function so that IndVars can use it. llvm-svn: 64407
* convertToSignExtendedInteger should return opInvalidOp instead of asserting ↵Evan Cheng2008-11-251-0/+11
| | | | | | if sematics of float does not allow arithmetics. llvm-svn: 60042
* Give SIToFPInst preference over UIToFPInst because it is faster on platforms ↵Devang Patel2008-11-181-0/+35
| | | | | | that are widely used. llvm-svn: 59476
* While handling floating point IVs lift restrictions on initial value and ↵Devang Patel2008-11-171-1/+49
| | | | | | increment value. llvm-svn: 59471
* Turn floating point IVs into integer IVs where possible.Devang Patel2008-11-031-0/+17
| | | | | | | | This allows SCEV users to effectively calculate trip count. LSR later on transforms back integer IVs to floating point IVs later on to avoid int-to-float casts inside the loop. llvm-svn: 58625
* Allow the construction of SCEVs with SCEVCouldNotCompute operands, byNick Lewycky2008-10-041-0/+32
| | | | | | implementing folding. Fixes PR2857. llvm-svn: 57049
* if loop induction variable is always sign or zero extended then Devang Patel2008-09-091-0/+58
| | | | | | extend the type of induction variable. llvm-svn: 56017
* Fix PR2434. When scanning for exising binary operator to reuse don't Wojciech Matyjewicz2008-06-151-0/+17
| | | | | | | | | | | take into account the instrucion pointed by InsertPt. Thanks to it, returning the new value of InsertPt to the InsertBinop() caller can be avoided. The bug was, actually, in visitAddRecExpr() method which wasn't correctly handling changes of InsertPt. There shouldn't be any performance regression, as -gvn pass (run after -indvars) removes any redundant binops. llvm-svn: 52291
* Remove lingering references to .llx and .tr in the tests.Dan Gohman2008-05-231-1/+1
| | | | llvm-svn: 51500
* 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
* Use loop deletion instead of ADCE for removing loops.Owen Anderson2008-05-164-4/+4
| | | | llvm-svn: 51178
* Update old-style syntax in some "not grep" tests.Dan Gohman2008-05-011-1/+1
| | | | llvm-svn: 50560
* rename *.llx -> *.ll, last batch.Chris Lattner2008-04-198-0/+0
| | | | llvm-svn: 49971
* Remove llvm-upgrade and update tests.Tanya Lattner2008-03-091-0/+1
| | | | llvm-svn: 48103
* Remove llvm-upgrade and update test cases.Tanya Lattner2008-03-0129-695/+729
| | | | llvm-svn: 47793
* Add new SCEV, SCEVSMax. This allows LLVM to analyze do-while loops.Nick Lewycky2007-11-251-2/+2
| | | | llvm-svn: 44319
* Fix a bug where we'd try to find a scev value for a bitcast operand,Chris Lattner2007-11-231-0/+20
| | | | | | | even though the bitcast operand did not have integer type. This fixes PR1814. llvm-svn: 44286
* Convert tests using "| wc -l | grep ..." to use the count script.Dan Gohman2007-08-151-1/+1
| | | | llvm-svn: 41097
* For PR1553:Reid Spencer2007-07-191-1/+1
| | | | | | | | Change the keywords for the zext and sext parameter attributes to be zeroext and signext so they don't conflict with the keywords for the instructions of the same name. This gets around the ambiguity. llvm-svn: 40069
* Test case for recent patch for IndVarSimplify.cppZhou Sheng2007-07-021-0/+25
| | | | llvm-svn: 37838
* Convert .cvsignore filesJohn Criswell2007-06-291-3/+0
| | | | llvm-svn: 37801
* new testcase for PR1487Nick Lewycky2007-06-061-0/+117
| | | | llvm-svn: 37458
* For PR1319:Reid Spencer2007-04-161-1/+1
| | | | | | | | Remove && from the end of the lines to prevent tests from throwing run lines into the background. Also, clean up places where the same command is run multiple times by using a temporary file. llvm-svn: 36142
* For PR1319:Reid Spencer2007-04-161-1/+2
| | | | | | Fix syntax of tests to ensure grep pattern is properly quoted. llvm-svn: 36134
* For PR1336:Reid Spencer2007-04-161-1/+0
| | | | | | Un-XFAIL this now that its working. llvm-svn: 36100
* For PR1336:Reid Spencer2007-04-151-0/+1
| | | | | | XFAIL tests covered by the PR. These will be un-XFAILed as they are fixed. llvm-svn: 36093
* For PR1319:Reid Spencer2007-04-159-13/+17
| | | | | | 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
* Remove use of implementation keyword.Reid Spencer2007-03-281-1/+0
| | | | llvm-svn: 35412
* New testcases for PR1179/PR1232.Chris Lattner2007-03-043-0/+67
| | | | llvm-svn: 34895
* For PR411:Reid Spencer2007-01-301-3/+3
| | | | | | | | Update these tests to not use the same name even though the type of the value differs. After PR411 hits, type planes will be gone and it will be illegal for a name to be used twice, regardless of type. llvm-svn: 33660
* For PR761:Reid Spencer2007-01-262-7/+5
| | | | | | | | | | | | | | Remove "target endian/pointersize" or add "target datalayout" to make the test parse properly or set the datalayout because defaults changes. For PR645: Make global names use the @ prefix. For llvm-upgrade changes: Fix test cases or completely remove use of llvm-upgrade for test cases that cannot survive the new renaming or upgrade capabilities. llvm-svn: 33533
* Regression is gone, don't try to find it on clean target.Reid Spencer2007-01-1733-0/+1186
llvm-svn: 33296
OpenPOWER on IntegriCloud