- Aug 24, 2005
-
-
Chris Lattner authored
llvm-svn: 22994
-
Chris Lattner authored
llvm-svn: 22992
-
Chris Lattner authored
llvm-svn: 22989
-
Chris Lattner authored
Use this information to avoid doing expensive interval intersections for registers that could not possible be interesting. This speeds up linscan on ia64 compiling kc++ in release mode from taking 7.82s to 4.8s(!), total itanium llc time on this program is 27.3s now. This marginally speeds up PPC and X86, but they appear to be limited by other parts of linscan, not this code. On this program, on itanium, live intervals now takes 41% of llc time. llvm-svn: 22986
-
- Aug 23, 2005
-
-
Nate Begeman authored
either seteq X, 0 or srl (ctlz X), size(X-1), depending on what's legal for the target. llvm-svn: 22978
-
Nate Begeman authored
llvm-svn: 22977
-
- Aug 22, 2005
-
-
Chris Lattner authored
number of regs (e.g. most riscs), many functions won't need to use callee clobbered registers. Do a speculative check to see if we can get a free register without processing the fixed list (which has all of these). This saves a lot of time on machines with lots of callee clobbered regs (e.g. ppc and itanium, also x86). This reduces ppc llc compile time from 184s -> 172s on kc++. This is probably worth FAR FAR more on itanium though. llvm-svn: 22972
-
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
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
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
llvm-svn: 22957
-
- Aug 21, 2005
-
-
Chris Lattner authored
llvm-svn: 22956
-
Chris Lattner authored
llvm-svn: 22955
-
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
-
- Aug 20, 2005
-
-
Chris Lattner authored
llvm-svn: 22943
-
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: 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
-
Jeff Cohen authored
llvm-svn: 22907
-
Jeff Cohen authored
llvm-svn: 22902
-
Chris Lattner authored
llvm-svn: 22896
-
- Aug 18, 2005
-
-
Chris Lattner authored
llvm-svn: 22878
-
Chris Lattner authored
codegen: _empty: .LBB_empty_0: ; blr but can't do anything more (yet). :) llvm-svn: 22876
-
Chris Lattner authored
llvm-svn: 22868
-
Chris Lattner authored
llvm-svn: 22863
-
Nate Begeman authored
rlwinm. llvm-svn: 22856
-
Chris Lattner authored
llvm-svn: 22853
-
- Aug 17, 2005
-
-
Jim Laskey authored
Added some class dividers in SelectionDAG.cpp. llvm-svn: 22841
-
Jim Laskey authored
llvm-svn: 22838
-
Chris Lattner authored
argument is not specified. Implement ReplaceAllUsesWith. llvm-svn: 22834
-
Jim Laskey authored
llvm-svn: 22831
-
Jim Laskey authored
llvm-svn: 22828
-
Chris Lattner authored
Nate noticed in yacr2 (and I know occurs in other places as well). This is still rough, as the critical edge blocks are not intelligently placed but is added to get some idea to see if this improves performance. llvm-svn: 22825
-