- Aug 22, 2005
-
-
Chris Lattner authored
we spill out of the fast path. The scan of active_ and the calls to updateSpillWeights don't need to happen unless a spill occurs. This reduces debug llc time of kc++ with ppc from 187.3s to 183.2s. llvm-svn: 22971
-
Chris Lattner authored
llvm-svn: 22970
-
Chris Lattner authored
promoted to the right type. This fixes: IA64/2005-08-22-LegalizerCrash.ll llvm-svn: 22969
-
Chris Lattner authored
add some comments. This loop really needs to be reevaluated! llvm-svn: 22966
-
Chris Lattner authored
llvm-svn: 22963
-
Chris Lattner authored
allowing us to compile this: float %test2(float* %P) { %Q = load float* %P %R = add float %Q, 10.1 ret float %R } to this: _test2: lfs r2, 0(r3) lis r3, ha16(.CPI_test2_0) lfs r3, lo16(.CPI_test2_0)(r3) fadds f1, r2, r3 blr llvm-svn: 22962
-
Chris Lattner authored
float %test2(float* %P) { %Q = load float* %P %R = add float %Q, %Q ret float %R } By returning the right result. llvm-svn: 22961
-
Chris Lattner authored
Make sure expressions only have one use before emitting them into a place that is conditionally executed llvm-svn: 22960
-
Chris Lattner authored
llvm-svn: 22959
-
Chris Lattner authored
llvm-svn: 22957
-
- Aug 21, 2005
-
-
Chris Lattner authored
llvm-svn: 22956
-
Chris Lattner authored
llvm-svn: 22955
-
Chris Lattner authored
llvm-svn: 22953
-
Chris Lattner authored
simplifies BRTWOWAY into BR if one of the results is a fall-through. Unless I'm missing something, there is no reason to duplicate this in the target-specific code. llvm-svn: 22952
-
Chris Lattner authored
llvm-svn: 22951
-
Chris Lattner authored
llvm-svn: 22949
-
Chris Lattner authored
llvm-svn: 22948
-
Chris Lattner authored
the old condition to a one bit value. The incoming value must have been promoted, and the top bits are undefined. This causes us to generate: _test: rlwinm r2, r3, 0, 31, 31 li r3, 17 cmpwi cr0, r2, 0 bne .LBB_test_2 ; .LBB_test_1: ; li r3, 1 .LBB_test_2: ; blr instead of: _test: rlwinm r2, r3, 0, 31, 31 li r2, 17 cmpwi cr0, r3, 0 bne .LBB_test_2 ; .LBB_test_1: ; li r2, 1 .LBB_test_2: ; or r3, r2, r2 blr for: int %test(bool %c) { %retval = select bool %c, int 17, int 1 ret int %retval } llvm-svn: 22947
-
Chris Lattner authored
it in the block. This codegens: int %test(bool %c) { %retval = select bool %c, int 17, int 1 ret int %retval } as: _test: rlwinm r2, r3, 0, 31, 31 li r2, 17 cmpwi cr0, r3, 0 bne .LBB_test_2 ; .LBB_test_1: ; li r2, 1 .LBB_test_2: ; or r3, r2, r2 blr instead of: _test: rlwinm r2, r3, 0, 31, 31 li r2, 17 li r4, 1 cmpwi cr0, r3, 0 bne .LBB_test_2 ; .LBB_test_1: ; or r2, r4, r4 .LBB_test_2: ; or r3, r2, r2 blr ... which is one fewer instruction. The savings are more significant for global address and constantfp nodes. llvm-svn: 22946
-
Duraid Madina authored
llvm-svn: 22944
-
- Aug 20, 2005
-
-
Chris Lattner authored
llvm-svn: 22943
-
Jim Laskey authored
llvm-svn: 22942
-
Chris Lattner authored
This REALLY should be lowered by the legalizer! llvm-svn: 22941
-
Chris Lattner authored
llvm-svn: 22940
-
Chris Lattner authored
llvm-svn: 22938
-
- Aug 19, 2005
-
-
Chris Lattner authored
us to compile stuff like this: double %test(double %A, double %B, double %C, double %E) { %F = mul double %A, %A %G = add double %F, %B %H = sub double -0.0, %G %I = mul double %H, %C %J = add double %I, %E ret double %J } to: _test: fnmadd f0, f1, f1, f2 fmadd f1, f0, f3, f4 blr woot! llvm-svn: 22937
-
Chris Lattner authored
llvm-svn: 22936
-
Chris Lattner authored
llvm-svn: 22935
-
Chris Lattner authored
llvm-svn: 22934
-
Chris Lattner authored
This gets us this for the previous testcase: _test: lis r2, 0 ori r3, r2, 65535 blr Note that we actually write to r3 (the return reg) correctly now :) llvm-svn: 22933
-
Chris Lattner authored
temporary registers for things that define a register. This allows dag->dag isel to compile this: int %test() { ret int 65535 } into: _test: lis r2, 0 ori r2, r2, 65535 blr Next up, getting CopyFromReg to work, allowing arguments and cross-bb values. llvm-svn: 22932
-
Chris Lattner authored
llvm-svn: 22929
-
Chris Lattner authored
llvm-svn: 22927
-
Chris Lattner authored
llvm-svn: 22926
-
Chris Lattner authored
llvm-svn: 22925
-
Chris Lattner authored
llvm-svn: 22924
-
Chris Lattner authored
namespace instead of the reg class namespace. Update getRegClassForType() to use modified names due to tblgen change. llvm-svn: 22923
-
Chris Lattner authored
llvm-svn: 22922
-
Chris Lattner authored
llvm-svn: 22921
-
Chris Lattner authored
llvm-svn: 22917
-