- Nov 14, 2004
-
-
Reid Spencer authored
Implement the MoreHelp utility that calls a function to printmore help information if the MoreHelp global is not null. llvm-svn: 17774
-
Reid Spencer authored
llvm-svn: 17773
-
Reid Spencer authored
llvm-svn: 17772
-
Reid Spencer authored
llvm-svn: 17771
-
Reid Spencer authored
llvm-svn: 17770
-
Reid Spencer authored
llvm-svn: 17769
-
Reid Spencer authored
llvm-svn: 17768
-
Reid Spencer authored
Completely rewritten to allow reading of archives and symbol table lookup in a more efficient manner. llvm-svn: 17767
-
Reid Spencer authored
llvm-svn: 17766
-
Reid Spencer authored
llvm-svn: 17765
-
Reid Spencer authored
llvm-svn: 17764
-
Reid Spencer authored
llvm-svn: 17763
-
Misha Brukman authored
llvm-svn: 17751
-
Misha Brukman authored
llvm-svn: 17750
-
Misha Brukman authored
llvm-svn: 17749
-
Misha Brukman authored
llvm-svn: 17748
-
Chris Lattner authored
value. This allows us to turn more globals into constants and eliminate them. This patch implements GlobalOpt/load-store-global.llx. Note that this patch speeds up 255.vortex from: Output/255.vortex.out-cbe.time:program 7.640000 Output/255.vortex.out-llc.time:program 9.810000 to: Output/255.vortex.out-cbe.time:program 7.250000 Output/255.vortex.out-llc.time:program 9.490000 Which isn't bad at all! llvm-svn: 17746
-
Misha Brukman authored
llvm-svn: 17744
-
Reid Spencer authored
llvm-svn: 17742
-
Chris Lattner authored
If this happens, detect it early instead of relying on instcombine to notice it later. This can be a big speedup, because PHI nodes can have many incoming values. llvm-svn: 17741
-
Chris Lattner authored
This exposes subsequent optimization possiblities and reduces code size. This triggers 1423 times in spec. llvm-svn: 17740
-
Chris Lattner authored
%X = alloca ... %Y = alloca ... X == Y into false. This allows us to simplify some stuff in eon (and probably many other C++ programs) where operator= was checking for self assignment. Folding this allows us to SROA several additional structs. llvm-svn: 17735
-
Chris Lattner authored
llvm-svn: 17734
-
Brian Gaeke authored
llvm-svn: 17733
-
Brian Gaeke authored
Exclude bigfib, so that we effectively exclude all C++ benchmarks. Update to-do list: mention va_start. llvm-svn: 17732
-
Chris Lattner authored
constant value. This makes the return value dead and allows for simplification in the caller. This implements IPConstantProp/return-constant.ll This triggers several dozen times throughout SPEC. llvm-svn: 17730
-
Brian Gaeke authored
not zero. llvm-svn: 17728
-
Chris Lattner authored
of the array is just two. This occurs 8 times in gcc, 6 times in crafty, and 12 times in 099.go. This implements ScalarRepl/sroa_two.ll llvm-svn: 17727
-
Brian Gaeke authored
llvm-svn: 17725
-
Chris Lattner authored
llvm-svn: 17724
-
Brian Gaeke authored
llvm-svn: 17723
-
Brian Gaeke authored
llvm-svn: 17722
-
Brian Gaeke authored
llvm-svn: 17721
-
Chris Lattner authored
llvm-svn: 17719
-
Chris Lattner authored
argument pointers. This is only valid to do if the function already unconditionally loaded an argument or if the pointer passed in is known to be valid. Make sure to do the required checks. This fixed ArgumentPromotion/control-flow.ll and the Burg program. llvm-svn: 17718
-
Chris Lattner authored
llvm-svn: 17714
-
- Nov 13, 2004
-
-
Chris Lattner authored
CBackend/2004-11-13-FunctionPointerCast.llx llvm-svn: 17710
-
Chris Lattner authored
shld is a very high latency operation. Instead of emitting it for shifts of two or three, open code the equivalent operation which is faster on athlon and P4 (by a substantial margin). For example, instead of compiling this: long long X2(long long Y) { return Y << 2; } to: X3_2: movl 4(%esp), %eax movl 8(%esp), %edx shldl $2, %eax, %edx shll $2, %eax ret Compile it to: X2: movl 4(%esp), %eax movl 8(%esp), %ecx movl %eax, %edx shrl $30, %edx leal (%edx,%ecx,4), %edx shll $2, %eax ret Likewise, for << 3, compile to: X3: movl 4(%esp), %eax movl 8(%esp), %ecx movl %eax, %edx shrl $29, %edx leal (%edx,%ecx,8), %edx shll $3, %eax ret This matches icc, except that icc open codes the shifts as adds on the P4. llvm-svn: 17707
-
Chris Lattner authored
llvm-svn: 17706
-
Chris Lattner authored
long long X3_2(long long Y) { return Y+Y; } int X(int Y) { return Y+Y; } into: X3_2: movl 4(%esp), %eax movl 8(%esp), %edx addl %eax, %eax adcl %edx, %edx ret X: movl 4(%esp), %eax addl %eax, %eax ret instead of: X3_2: movl 4(%esp), %eax movl 8(%esp), %edx shldl $1, %eax, %edx shll $1, %eax ret X: movl 4(%esp), %eax shll $1, %eax ret llvm-svn: 17705
-