- Mar 20, 2007
-
-
Evan Cheng authored
llvm-svn: 35208
-
- Mar 19, 2007
-
-
Evan Cheng authored
llvm-svn: 35165
-
Evan Cheng authored
llvm-svn: 35153
-
- Mar 18, 2007
-
-
Evan Cheng authored
- Use distance to closest use to determine whether to abort coalescing. llvm-svn: 35141
-
Evan Cheng authored
llvm-svn: 35140
-
- Mar 17, 2007
-
-
Evan Cheng authored
llvm-svn: 35135
-
Evan Cheng authored
to be really bad. Once they are joined they are not broken apart. Also, physical intervals cannot be spilled! Added a heuristic as a workaround for this. Be careful coalescing with a physical register if the virtual register uses are "far". Check if there are uses in the same loop as the source (copy instruction). Check if it is in the loop preheader, etc. llvm-svn: 35134
-
Evan Cheng authored
llvm-svn: 35133
-
Evan Cheng authored
in that BB. llvm-svn: 35132
-
- Mar 16, 2007
-
-
Evan Cheng authored
llvm-svn: 35127
-
Evan Cheng authored
llvm-svn: 35126
-
Evan Cheng authored
computation used as GEP indexes and if the expression can be folded into target addressing mode of GEP load / store use types. llvm-svn: 35123
-
Evan Cheng authored
folded into target addressing mode for the given type. llvm-svn: 35121
-
- Mar 15, 2007
-
-
Evan Cheng authored
llvm-svn: 35117
-
- Mar 14, 2007
-
-
Evan Cheng authored
it as a late BURR scheduling tie-breaker. Intuitively, it's good to push down instructions whose results are liveout so their long live ranges won't conflict with other values which are needed inside the BB. Further prioritize liveout instructions by the number of operands which are calculated within the BB. llvm-svn: 35109
-
Evan Cheng authored
e.g. t1 = op t2, c1 t3 = op t4, c2 and the following instructions are both ready. t2 = op c3 t4 = op c4 Then schedule t2 = op first. i.e. t4 = op c4 t2 = op c3 t1 = op t2, c1 t3 = op t4, c2 This creates more short live intervals which work better with the register allocator. llvm-svn: 35089
-
- Mar 13, 2007
-
-
Evan Cheng authored
More flexible TargetLowering LSR hooks for testing whether an immediate is a legal target address immediate or scale. llvm-svn: 35076
-
- Mar 09, 2007
-
-
Evan Cheng authored
alive in one of the successor block. Do not add it to the kill list. llvm-svn: 35041
-
Evan Cheng authored
llvm-svn: 35040
-
Evan Cheng authored
llvm-svn: 35039
-
- Mar 08, 2007
-
-
Chris Lattner authored
llvm-svn: 35033
-
Chris Lattner authored
llvm-svn: 35025
-
- Mar 07, 2007
-
-
Anton Korobeynikov authored
zext/sext/aext stuff. llvm-svn: 35008
-
Anton Korobeynikov authored
llvm-svn: 35007
-
Evan Cheng authored
llvm-svn: 35005
-
Anton Korobeynikov authored
Mingw32/Cygwin targets. This fixes PR978 llvm-svn: 35000
-
- Mar 06, 2007
-
-
Evan Cheng authored
llvm-svn: 34985
-
Devang Patel authored
llvm-svn: 34984
-
Chris Lattner authored
the lo-reg first. This is fallout from my ppc calling conv change yesterday, it fixes test/ExecutionEngine/2003-05-06-LivenessClobber.llx llvm-svn: 34983
-
Anton Korobeynikov authored
llvm-svn: 34981
-
Evan Cheng authored
llvm-svn: 34965
-
Evan Cheng authored
Register scavenger is now capable of scavenging. It spills a register whose use of furthest away to make it available. llvm-svn: 34964
-
Anton Korobeynikov authored
enumeration. llvm-svn: 34960
-
- Mar 05, 2007
-
-
Jeff Cohen authored
llvm-svn: 34917
-
- Mar 04, 2007
-
-
Chris Lattner authored
llvm-svn: 34913
-
Chris Lattner authored
llvm-svn: 34910
-
Chris Lattner authored
addc, turn it into add. This allows us to compile: long long test(long long A, unsigned B) { return (A + ((long long)B << 32)) & 123; } into: _test: movl $123, %eax andl 4(%esp), %eax xorl %edx, %edx ret instead of: _test: xorl %edx, %edx movl %edx, %eax addl 4(%esp), %eax ;; add of zero andl $123, %eax ret llvm-svn: 34909
-
Chris Lattner authored
llvm-svn: 34908
-
Reid Spencer authored
llvm-svn: 34903
-
Chris Lattner authored
llvm-svn: 34893
-