- Dec 31, 2006
-
-
Reid Spencer authored
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
-
- Dec 23, 2006
-
-
Reid Spencer authored
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
-
- Dec 19, 2006
-
-
Chris Lattner authored
converted, we lose a static initializer. This also allows GCC to emit warnings about unused statistics. llvm-svn: 32690
-
- Dec 13, 2006
-
-
Reid Spencer authored
so the decision of which opcode to use is pushed upward to the caller. Adjust the callers to pass the expected opcode. llvm-svn: 32535
-
- Dec 12, 2006
-
-
Reid Spencer authored
llvm-svn: 32469
-
- Dec 07, 2006
-
-
Bill Wendling authored
now cerr, cout, and NullStream resp. llvm-svn: 32298
-
- Dec 06, 2006
-
-
Chris Lattner authored
is 'unsigned'. llvm-svn: 32279
-
- Nov 27, 2006
-
-
Reid Spencer authored
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
-
- Nov 26, 2006
-
-
Bill Wendling authored
llvm-svn: 31923
-
- Nov 17, 2006
-
-
Chris Lattner authored
and handle it like constant stride vars. This fixes some bad codegen in variable stride cases. For example, it compiles this: void foo(int k, int i) { for (k=i+i; k <= 8192; k+=i) flags2[k] = 0; } to: LBB1_1: #bb.preheader movl %eax, %ecx addl %ecx, %ecx movl L_flags2$non_lazy_ptr, %edx LBB1_2: #bb movb $0, (%edx,%ecx) addl %eax, %ecx cmpl $8192, %ecx jle LBB1_2 #bb LBB1_5: #return ret or (if the array is local and we are in dynamic-nonpic or static mode): LBB3_2: #bb movb $0, _flags2(%ecx) addl %eax, %ecx cmpl $8192, %ecx jle LBB3_2 #bb and: lis r2, ha16(L_flags2$non_lazy_ptr) lwz r2, lo16(L_flags2$non_lazy_ptr)(r2) slwi r3, r4, 1 LBB1_2: ;bb li r5, 0 add r6, r4, r3 stbx r5, r2, r3 cmpwi cr0, r6, 8192 bgt cr0, LBB1_5 ;return instead of: leal (%eax,%eax,2), %ecx movl %eax, %edx addl %edx, %edx addl L_flags2$non_lazy_ptr, %edx xorl %esi, %esi LBB1_2: #bb movb $0, (%edx,%esi) movl %eax, %edi addl %esi, %edi addl %ecx, %esi cmpl $8192, %esi jg LBB1_5 #return and: lis r2, ha16(L_flags2$non_lazy_ptr) lwz r2, lo16(L_flags2$non_lazy_ptr)(r2) mulli r3, r4, 3 slwi r5, r4, 1 li r6, 0 add r2, r2, r5 LBB1_2: ;bb li r5, 0 add r7, r3, r6 stbx r5, r2, r6 add r6, r4, r6 cmpwi cr0, r7, 8192 ble cr0, LBB1_2 ;bb This speeds up Benchmarks/Shootout/sieve from 8.533s to 6.464s and implements LoopStrengthReduce/var_stride_used_by_compare.ll llvm-svn: 31809
-
- Nov 02, 2006
-
-
Reid Spencer authored
Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. llvm-svn: 31380
-
- Oct 28, 2006
-
-
Chris Lattner authored
llvm-svn: 31257
-
Chris Lattner authored
llvm-svn: 31248
-
- Oct 20, 2006
-
-
Reid Spencer authored
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
-
- Aug 28, 2006
-
-
Chris Lattner authored
llvm-svn: 29925
-
- Aug 27, 2006
-
-
Chris Lattner authored
llvm-svn: 29911
-
- Aug 03, 2006
-
-
Chris Lattner authored
Changes: 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
-
- Jul 18, 2006
-
-
Evan Cheng authored
llvm-svn: 29186
-
- Jun 29, 2006
-
-
Chris Lattner authored
dropped. This shrinks libllvmgcc.dylib another 67K llvm-svn: 28975
-
- Jun 09, 2006
-
-
Evan Cheng authored
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
-
- Apr 12, 2006
-
-
Reid Spencer authored
llvm-svn: 27625
-
- Mar 24, 2006
-
-
Chris Lattner authored
llvm-svn: 27052
-
- Mar 22, 2006
-
-
Chris Lattner authored
llvm-svn: 26953
-
- Mar 18, 2006
-
-
Evan Cheng authored
- Added more debugging info. - Allow reuse of IV of negative stride. e.g. -4 stride == 2 * iv of -2 stride. llvm-svn: 26841
-
Evan Cheng authored
for more IV reuses. llvm-svn: 26837
-
- Mar 17, 2006
-
-
Evan Cheng authored
of a smaller stride even if they have a common loop invariant expression part. llvm-svn: 26828
-
- Mar 16, 2006
-
-
Evan Cheng authored
stride. For a set of uses of the IV of a stride which is a multiple of another stride, do not insert a new IV expression. Rather, reuse the previous IV and rewrite the uses as uses of IV expression multiplied by the factor. e.g. x = 0 ...; x ++ y = 0 ...; y += 4 then use of y can be rewritten as use of 4*x for x86. llvm-svn: 26803
-
- Mar 14, 2006
-
-
Evan Cheng authored
transformation decisions. llvm-svn: 26738
-
- Feb 04, 2006
-
-
Chris Lattner authored
#LLVM LOC, and auto-cse's cast instructions. llvm-svn: 25974
-
Chris Lattner authored
1. When rewriting code in outer loops, sometimes we would insert code into inner loops that is invariant in that loop. 2. Notice that 4*(2+x) is 8+4*x and use that to simplify expressions. This is a performance neutral change. llvm-svn: 25964
-
- Jan 23, 2006
-
-
Chris Lattner authored
llvm-svn: 25514
-
- Jan 11, 2006
-
-
Chris Lattner authored
Patch written by Daniel Berlin! llvm-svn: 25202
-
- Dec 05, 2005
-
-
Chris Lattner authored
know that small negative values fit into the immediate field of addressing modes. llvm-svn: 24608
-
- Oct 21, 2005
-
-
Chris Lattner authored
allow pointer types. llvm-svn: 23859
-
- Oct 20, 2005
-
-
Chris Lattner authored
inner loop like this: LBB_RateConvertMono8AltiVec_2: ; no_exit lis r2, ha16(.CPI_RateConvertMono8AltiVec_0) lfs f3, lo16(.CPI_RateConvertMono8AltiVec_0)(r2) fmr f3, f3 fadd f0, f2, f0 fadd f3, f0, f3 fcmpu cr0, f3, f1 bge cr0, LBB_RateConvertMono8AltiVec_2 ; no_exit to an inner loop like this: LBB_RateConvertMono8AltiVec_1: ; no_exit fsub f2, f2, f1 fcmpu cr0, f2, f1 fmr f0, f2 bge cr0, LBB_RateConvertMono8AltiVec_1 ; no_exit Doh! good catch! llvm-svn: 23838
-
- Oct 11, 2005
-
-
Chris Lattner authored
out CSE's of base expressions it could build a result whose order was nondet. llvm-svn: 23698
-
Chris Lattner authored
from the end of a vector instead of the beginning llvm-svn: 23697
-
Chris Lattner authored
llvm-svn: 23695
-
- Oct 09, 2005
-
-
Chris Lattner authored
llvm-svn: 23673
-
Chris Lattner authored
IV strides dependend on the pointer order of the strides in memory. Non-determinism is bad. llvm-svn: 23672
-