summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/ScalarEvolution.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* For PR1205:Reid Spencer2007-02-281-16/+20
| | | | | | Make GetConstantFactor compute its result using an APInt. llvm-svn: 34765
* For PR1205:Reid Spencer2007-02-281-4/+5
| | | | | | Adjust to changes in ConstantRange interface. llvm-svn: 34762
* For PR1205:Reid Spencer2007-02-281-21/+27
| | | | | | | Remove ConstantInt from ConstantRange interface and adjust its users to compensate. llvm-svn: 34758
* For PR1205:Reid Spencer2007-02-281-6/+5
| | | | | | | First round of ConstantRange changes. This makes all CR constructors use only APInt and not use ConstantInt. Clients are adjusted accordingly. llvm-svn: 34756
* Changes to support making the shift instructions be true BinaryOperators.Reid Spencer2007-02-021-1/+1
| | | | | | | | | | | | This feature is needed in order to support shifts of more than 255 bits on large integer types. This changes the syntax for llvm assembly to make shl, ashr and lshr instructions look like a binary operator: shl i32 %X, 1 instead of shl i32 %X, i8 1 Additionally, this should help a few passes perform additional optimizations. llvm-svn: 33776
* The local "ConstantFold" method is now just a watered down version ofChris Lattner2007-01-301-37/+3
| | | | | | | ConstantFoldInstOperands. Switch to ConstantFoldInstOperands and remove ConstantFold. llvm-svn: 33683
* adjust to constant folding api changes.Chris Lattner2007-01-301-2/+2
| | | | llvm-svn: 33673
* For PR1043:Reid Spencer2007-01-191-1/+1
| | | | | | | | | | | | | | This is the final patch for this PR. It implements some minor cleanup in the use of IntegerType, to wit: 1. Type::getIntegerTypeMask -> IntegerType::getBitMask 2. Type::Int*Ty changed to IntegerType* from Type* 3. ConstantInt::getType() returns IntegerType* now, not Type* This also fixes PR1120. Patch by Sheng Zhou. llvm-svn: 33370
* Unbreak VC++ build.Jeff Cohen2007-01-151-1/+1
| | | | llvm-svn: 33242
* rename Type::isIntegral to Type::isInteger, eliminating the old Type::isInteger.Chris Lattner2007-01-151-11/+11
| | | | | | | | | 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
* Update code to eliminate calls to isInteger, calling isIntegral instead.Chris Lattner2007-01-151-16/+11
| | | | llvm-svn: 33220
* Fix PR1101 and Analysis/ScalarEvolution/trip-count.llChris Lattner2007-01-141-3/+5
| | | | llvm-svn: 33193
* don't discriminate against boolChris Lattner2007-01-121-1/+1
| | | | llvm-svn: 33128
* Implement review feedback for the ConstantBool->ConstantInt merge. ChrisReid Spencer2007-01-121-4/+4
| | | | | | | | recommended that getBoolValue be replaced with getZExtValue and that get(bool) be replaced by get(const Type*, uint64_t). This implements those changes. llvm-svn: 33110
* Rename BoolTy as Int1Ty. Patch by Sheng Zhou.Reid Spencer2007-01-111-1/+1
| | | | llvm-svn: 33076
* For PR1043:Zhou Sheng2007-01-111-13/+15
| | | | | | | Merge ConstantIntegral and ConstantBool into ConstantInt. Remove ConstantIntegral and ConstantBool from LLVM. llvm-svn: 33073
* Convert uses of getPrimitiveSize that should be getPrimitiveSizeInBits.Reid Spencer2007-01-081-6/+6
| | | | llvm-svn: 33003
* Fix PR1015 and Transforms/IndVarsSimplify/2007-01-06-TripCount.ll, aChris Lattner2007-01-071-1/+15
| | | | | | miscompilation of Qt. llvm-svn: 32974
* cast of int to bool no longer does a compare, rendering this fixmeChris Lattner2007-01-071-1/+0
| | | | | | obsolete llvm-svn: 32972
* For PR950:Reid Spencer2006-12-311-47/+9
| | | | | | | | | | | | | 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-96/+102
| | | | | | | | 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
* Add a FIXME about signedness.Reid Spencer2006-12-211-0/+2
| | | | llvm-svn: 32732
* Add some comments about things that can go away once signless types are in.Reid Spencer2006-12-211-1/+8
| | | | llvm-svn: 32727
* eliminate static ctors from StatisticsChris Lattner2006-12-191-23/+19
| | | | llvm-svn: 32697
* Fix a bug in GetConstantFactor for affine expressions, in which the existingChris Lattner2006-12-191-5/+9
| | | | | | code was wrong for things like 3+4*i. llvm-svn: 32662
* Replace inferred getCast(V,Ty) calls with more strict variants.Reid Spencer2006-12-121-9/+12
| | | | | | | Rename getZeroExtend and getSignExtend to getZExt and getSExt to match the the casting mnemonics in the rest of LLVM. llvm-svn: 32514
* Get even more accurate on the casting.Reid Spencer2006-12-121-8/+5
| | | | llvm-svn: 32478
* Change inferred getCast into specific getCast. Passes all tests.Reid Spencer2006-12-121-3/+9
| | | | llvm-svn: 32469
* teach scev to analyze X*4|1 like X*4+c. This allows us to produce:Chris Lattner2006-12-121-1/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LBB1_1: #bb movdqa (%esi), %xmm2 movaps %xmm2, %xmm3 punpcklbw %xmm0, %xmm3 movaps %xmm3, %xmm4 punpcklwd %xmm0, %xmm4 cvtdq2ps %xmm4, %xmm4 mulps %xmm1, %xmm4 movaps %xmm4, (%edi) leal 1(,%eax,4), %ebx shll $4, %ebx punpckhwd %xmm0, %xmm3 cvtdq2ps %xmm3, %xmm3 mulps %xmm1, %xmm3 movaps %xmm3, (%edx,%ebx) leal 2(,%eax,4), %ebx shll $4, %ebx punpckhbw %xmm0, %xmm2 movaps %xmm2, %xmm3 punpcklwd %xmm0, %xmm3 cvtdq2ps %xmm3, %xmm3 mulps %xmm1, %xmm3 movaps %xmm3, (%edx,%ebx) leal 3(,%eax,4), %ebx shll $4, %ebx punpckhwd %xmm0, %xmm2 cvtdq2ps %xmm2, %xmm2 mulps %xmm1, %xmm2 movaps %xmm2, (%edx,%ebx) addl $64, %edi incl %eax addl $16, %esi cmpl %ecx, %eax jne LBB1_1 #bb instead of: LBB1_1: #bb movdqa (%esi), %xmm2 movaps %xmm2, %xmm3 punpcklbw %xmm0, %xmm3 movaps %xmm3, %xmm4 punpcklwd %xmm0, %xmm4 cvtdq2ps %xmm4, %xmm4 mulps %xmm1, %xmm4 movaps %xmm4, (%edi) leal 1(,%eax,4), %ebx shll $4, %ebx punpckhwd %xmm0, %xmm3 cvtdq2ps %xmm3, %xmm3 mulps %xmm1, %xmm3 movaps %xmm3, (%edx,%ebx) leal 2(,%eax,4), %ebx shll $4, %ebx punpckhbw %xmm0, %xmm2 movaps %xmm2, %xmm3 punpcklwd %xmm0, %xmm3 cvtdq2ps %xmm3, %xmm3 mulps %xmm1, %xmm3 movaps %xmm3, (%edx,%ebx) leal 3(,%eax,4), %ebx shll $4, %ebx punpckhwd %xmm0, %xmm2 cvtdq2ps %xmm2, %xmm2 mulps %xmm1, %xmm2 movaps %xmm2, (%edx,%ebx) addl $64, %edi incl %eax addl $16, %esi cmpl %ecx, %eax jne LBB1_1 #bb for a testcase. llvm-svn: 32463
* clarify some comments, simplify some checks, fix:Chris Lattner2006-12-111-7/+7
| | | | | | Regression/Transforms/IndVarsSimplify/2006-12-10-BitCast.ll llvm-svn: 32420
* Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, areBill Wendling2006-12-071-17/+17
| | | | | | now cerr, cout, and NullStream resp. llvm-svn: 32298
* Detemplatize the Statistic class. The only type it is instantiated withChris Lattner2006-12-061-5/+5
| | | | | | is 'unsigned'. llvm-svn: 32279
* Finally get the casting right in this file. Also, remove some unnecessaryReid Spencer2006-12-051-7/+6
| | | | | | casting because sdiv doesn't require operand signs to match any more. llvm-svn: 32240
* Bail on the getInferredCast idea. Remove the function and convertReid Spencer2006-12-051-9/+10
| | | | | | remaining uses to more specific casts. llvm-svn: 32231
* Fix comment grammaroReid Spencer2006-12-041-2/+2
| | | | llvm-svn: 32198
* Fix inferred casts.Reid Spencer2006-12-041-6/+9
| | | | llvm-svn: 32180
* Unbreak VC++ build.Jeff Cohen2006-12-021-0/+1
| | | | llvm-svn: 32113
* Removed some of the iostream #includes. Moved towards converting to usingBill Wendling2006-11-281-13/+14
| | | | | | llvm streams llvm-svn: 31983
* For PR950:Reid Spencer2006-11-271-37/+18
| | | | | | | | | | 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
* Remove redundant <cmath>.Jim Laskey2006-11-081-1/+0
| | | | llvm-svn: 31561
* For PR950:Reid Spencer2006-11-021-1/+1
| | | | | | Replace the REM instruction with UREM, SREM and FREM. llvm-svn: 31369
* Make ScalarEvolution actually use a ZeroExtend expression instead ofReid Spencer2006-11-011-2/+2
| | | | | | having SCZeroExtendExpr be equivalent to SCTruncate llvm-svn: 31355
* For PR950:Reid Spencer2006-10-261-15/+14
| | | | | | | | Make necessary changes to support DIV -> [SUF]Div. This changes llvm to have three division instructions: signed, unsigned, floating point. The bytecode and assembler are bacwards compatible, however. llvm-svn: 31195
* For PR950:Reid Spencer2006-10-201-14/+14
| | | | | | | | This patch implements the first increment for the Signless Types feature. All changes pertain to removing the ConstantSInt and ConstantUInt classes in favor of just using ConstantInt. llvm-svn: 31063
* Fix some more static dtor issues.Chris Lattner2006-10-041-33/+36
| | | | llvm-svn: 30724
* Eliminate ConstantBool::True and ConstantBool::False. Instead, provideChris Lattner2006-09-281-4/+4
| | | | | | ConstantBool::getTrue() and ConstantBool::getFalse(). llvm-svn: 30666
* Eliminate RegisterAnalysis. RegisterPass now does all that is necessary.Chris Lattner2006-08-271-1/+1
| | | | llvm-svn: 29921
* s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|Chris Lattner2006-08-271-1/+1
| | | | llvm-svn: 29911
* Use hidden visibility to make symbols in an anonymous namespace getChris Lattner2006-06-281-3/+4
| | | | | | dropped. This shrinks libllvmgcc.dylib another 67K llvm-svn: 28975
* Implement Transforms/IndVarsSimplify/complex-scev.ll, a case where we didn'tChris Lattner2006-04-261-0/+25
| | | | | | recognize some simple affine IV's. llvm-svn: 27982
OpenPOWER on IntegriCloud