summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Move the SCEV object factors from being static members of the individualDan Gohman2007-10-221-3/+3
| | | | | | | SCEV subclasses to being non-static member functions of the ScalarEvolution class. llvm-svn: 43224
* Require SCEV before LCSSA.Devang Patel2007-09-101-1/+1
| | | | llvm-svn: 41798
* Update GEP constructors to use an iterator interface to fixDavid Greene2007-09-041-1/+4
| | | | | | GLIBCXX_DEBUG issues. llvm-svn: 41697
* Use SmallVector instead of std::vector.Devang Patel2007-08-211-2/+2
| | | | llvm-svn: 41207
* Fix a bug.Zhou Sheng2007-06-271-1/+4
| | | | llvm-svn: 37751
* Rename ScalarEvolution::deleteInstructionFromRecords toDan Gohman2007-06-191-3/+3
| | | | | | | | | deleteValueFromRecords and loosen the types to all it to accept Value* instead of just Instruction*, since this is what ScalarEvolution uses internally anyway. This allows more flexibility for future uses. llvm-svn: 37657
* Use SCEVConstant::get instead of SCEVUnknown::get to create anDan Gohman2007-06-151-2/+2
| | | | | | integer constant SCEV. llvm-svn: 37596
* Add a SCEV class and supporting code for sign-extend expressions.Dan Gohman2007-06-151-6/+7
| | | | | | | | | | This created an ambiguity for expandInTy to decide when to use sign-extension or zero-extension, but it turns out that most of its callers don't actually need a type conversion, now that LLVM types don't have explicit signedness. Drop expandInTy in favor of plain expand, and change the few places that actually need a type conversion to do it themselves. llvm-svn: 37591
* Inform ScalarEvolutions that we're deleting Values.Nick Lewycky2007-06-061-0/+2
| | | | | | This is the obviously correct part of the fix for PR1487. llvm-svn: 37457
* Fix typo in comment.Nick Lewycky2007-05-061-1/+1
| | | | llvm-svn: 36873
* Drop 'const'Devang Patel2007-05-031-2/+2
| | | | llvm-svn: 36662
* Use 'static const char' instead of 'static const int'.Devang Patel2007-05-021-2/+2
| | | | | | | Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. llvm-svn: 36652
* Do not use typeinfo to identify pass in pass manager.Devang Patel2007-05-011-1/+6
| | | | llvm-svn: 36632
* Now IndVarSimplify is a LoopPass.Devang Patel2007-03-071-27/+32
| | | | llvm-svn: 35003
* make better use of LCSSA information in RewriteLoopExitValues. Before, weChris Lattner2007-03-041-67/+76
| | | | | | | | | | | would scan the entire loop body, then scan all users of instructions in the loop, looking for users outside the loop. Now, since we know that the loop is in LCSSA form, we know that any users outside the loop will be LCSSA phi nodes. Just scan them. This speeds up indvars significantly. llvm-svn: 34898
* Implement PR1179/PR1232 and ↵Chris Lattner2007-03-041-46/+26
| | | | | | | | test/Transforms/IndVarsSimplify/loop_evaluate_[234].ll This makes -indvars require and use LCSSA, updating it as appropriate. llvm-svn: 34896
* Make RewriteLoopExitValues far less nested by using continue in the loopChris Lattner2007-03-031-91/+94
| | | | llvm-svn: 34891
* Prefer non-virtual calls to ConstantInt::isZero over virtual calls toReid Spencer2007-03-021-3/+3
| | | | | | Constant::isNullValue() in situations where it is possible. llvm-svn: 34821
* Simplify code by using value::takenameChris Lattner2007-02-111-10/+5
| | | | llvm-svn: 34176
* Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes inReid Spencer2007-02-051-1/+2
| | | | | | | the Transforms library. This reduces debug library size by 132 KB, debug binary size by 376 KB, and reduces link time for llvm tools slightly. llvm-svn: 33939
* remove temporary vectors.Chris Lattner2007-01-311-2/+1
| | | | llvm-svn: 33715
* eliminate temporary vectorsChris Lattner2007-01-311-2/+3
| | | | llvm-svn: 33693
* rename Type::isIntegral to Type::isInteger, eliminating the old Type::isInteger.Chris Lattner2007-01-151-3/+3
| | | | | | | | | rename Type::getIntegralTypeMask to Type::getIntegerTypeMask. This makes naming much more consistent. For example, there are now no longer any instances of IntegerType that are not considered isInteger! :) llvm-svn: 33225
* Eliminate calls to isInteger, generalizing code and tightening checks as needed.Chris Lattner2007-01-151-3/+3
| | | | llvm-svn: 33218
* simplify some codeChris Lattner2007-01-121-8/+2
| | | | llvm-svn: 33150
* For PR1064:Reid Spencer2007-01-121-5/+15
| | | | | | | | | | | | | | | | | | | | | | | Implement the arbitrary bit-width integer feature. The feature allows integers of any bitwidth (up to 64) to be defined instead of just 1, 8, 16, 32, and 64 bit integers. This change does several things: 1. Introduces a new Derived Type, IntegerType, to represent the number of bits in an integer. The Type classes SubclassData field is used to store the number of bits. This allows 2^23 bits in an integer type. 2. Removes the five integer Type::TypeID values for the 1, 8, 16, 32 and 64-bit integers. These are replaced with just IntegerType which is not a primitive any more. 3. Adjust the rest of LLVM to account for this change. Note that while this incremental change lays the foundation for arbitrary bit-width integers, LLVM has not yet been converted to actually deal with them in any significant way. Most optimization passes, for example, will still only deal with the byte-width integer types. Future increments will rectify this situation. llvm-svn: 33113
* Comparison of primitive type sizes should now be done in bits, not bytes.Reid Spencer2007-01-081-2/+3
| | | | | | | This patch converts getPrimitiveSize to getPrimitiveSizeInBits where it is appropriate to do so (comparison of integer primitive types). llvm-svn: 33012
* add -debug output for -indvars.Chris Lattner2007-01-071-6/+19
| | | | llvm-svn: 32971
* For PR950:Reid Spencer2006-12-311-3/+2
| | | | | | | | | | | | | This patch replaces signed integer types with signless ones: 1. [US]Byte -> Int8 2. [U]Short -> Int16 3. [U]Int -> Int32 4. [U]Long -> Int64. 5. Removal of isSigned, isUnsigned, getSignedVersion, getUnsignedVersion and other methods related to signedness. In a few places this warranted identifying the signedness information from other sources. llvm-svn: 32785
* For PR950:Reid Spencer2006-12-231-5/+5
| | | | | | | | This patch removes the SetCC instructions and replaces them with the ICmp and FCmp instructions. The SetCondInst instruction has been removed and been replaced with ICmpInst and FCmpInst. llvm-svn: 32751
* Switch over Transforms/Scalar to use the STATISTIC macro. For each statisticChris Lattner2006-12-191-6/+7
| | | | | | | converted, we lose a static initializer. This also allows GCC to emit warnings about unused statistics. llvm-svn: 32690
* Detemplatize the Statistic class. The only type it is instantiated withChris Lattner2006-12-061-5/+5
| | | | | | is 'unsigned'. llvm-svn: 32279
* For PR950:Reid Spencer2006-11-271-3/+2
| | | | | | | | | | The long awaited CAST patch. This introduces 12 new instructions into LLVM to replace the cast instruction. Corresponding changes throughout LLVM are provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the exception of 175.vpr which fails only on a slight floating point output difference. llvm-svn: 31931
* Fix Transforms/IndVarsSimplify/2006-09-20-LFTR-Crash.llChris Lattner2006-09-211-15/+22
| | | | llvm-svn: 30555
* eliminate RegisterOpt. It does the same thing as RegisterPass.Chris Lattner2006-08-271-1/+1
| | | | llvm-svn: 29925
* 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
* Fix a grammaro in a comment.Reid Spencer2006-08-181-1/+1
| | | | llvm-svn: 29765
* 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
* 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
* 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
* 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
* Fix a crash building 176.gcc due to my recent patch, which only fixedChris Lattner2005-11-181-1/+1
| | | | | | half the problem. llvm-svn: 24414
* This was checking the wrong GEP expression. Fixing this fixes a gccas crashChris Lattner2005-11-171-1/+1
| | | | | | compiling mysql reported by Ted Kremenek. llvm-svn: 24402
* Allow indvar simplify to canonicalize ANY affine IV, not just affine IVs withChris Lattner2005-08-101-8/+8
| | | | | | constant stride. This implements Transforms/IndVarsSimplify/variable-stride-ivs.ll llvm-svn: 22744
OpenPOWER on IntegriCloud