- Oct 23, 2010
-
-
Andrew Trick authored
framework. It's purpose is not to improve register allocation per se, but to make it easier to develop powerful live range splitting. I call it the basic allocator because it is as simple as a global allocator can be but provides the building blocks for sophisticated register allocation with live range splitting. A minimal implementation is provided that trivially spills whenever it runs out of registers. I'm checking in now to get high-level design and style feedback. I've only done minimal testing. The next step is implementing a "greedy" allocation algorithm that does some register reassignment and makes better splitting decisions. llvm-svn: 117174
-
Jakob Stoklund Olesen authored
llvm-svn: 117170
-
Jakob Stoklund Olesen authored
When a block has exactly two uses and the register is both live-in and live-out, don't isolate the block. We would be inserting two copies, so we haven't really made any progress. If the live-in and live-out values separate into disconnected components after splitting, we would be making progress. We can't detect that for now. llvm-svn: 117169
-
Jim Grosbach authored
llvm-svn: 117165
-
- Oct 22, 2010
-
-
Evan Cheng authored
llvm-svn: 117155
-
Bob Wilson authored
llvm-svn: 117154
-
Evan Cheng authored
llvm-svn: 117151
-
Jakob Stoklund Olesen authored
An exit block with a critical edge must only have predecessors in the loop, or just before the loop. This guarantees that the inserted copies in the loop predecessors dominate the exit block. llvm-svn: 117144
-
Jakob Stoklund Olesen authored
llvm-svn: 117143
-
Owen Anderson authored
llvm-svn: 117134
-
Jim Grosbach authored
llvm-svn: 117133
-
Owen Anderson authored
llvm-svn: 117131
-
Evan Cheng authored
llvm-svn: 117128
-
Owen Anderson authored
llvm-svn: 117126
-
Jim Grosbach authored
llvm-svn: 117121
-
Evan Cheng authored
llvm-svn: 117119
-
Jim Grosbach authored
definitions. llvm-svn: 117114
-
Benjamin Kramer authored
llvm-svn: 117111
-
Jim Grosbach authored
llvm-svn: 117108
-
Wesley Peck authored
llvm-svn: 117099
-
Andrew Trick authored
It doesn't look like anything is wrong with the checkin, but the new test cases expose a mem bug in AsmParser. llvm-svn: 117087
-
Eric Christopher authored
llvm-svn: 117085
-
Sean Callanan authored
weren't properly reflecting the OperandSize attribute of the instruction leading to improper decoding of certain instructions with the 66H prefix. Also added a test case for this. llvm-svn: 117084
-
NAKAMURA Takumi authored
It choked BugPoint on Mingw. llvm-svn: 117083
-
Jim Grosbach authored
llvm-svn: 117080
-
Jim Grosbach authored
llvm-svn: 117076
-
Jim Grosbach authored
llvm-svn: 117073
-
Jim Grosbach authored
llvm-svn: 117072
-
- Oct 21, 2010
-
-
Dan Gohman authored
llvm-svn: 117070
-
Eric Christopher authored
llvm-svn: 117068
-
Michael J. Spencer authored
llvm-svn: 117062
-
Michael J. Spencer authored
X86: Base _fltused on the FunctionType of the called value instead of the potentially null "CalledFunction". Thanks Duncan! This is needed for indirect calls. llvm-svn: 117061
-
Owen Anderson authored
llvm-svn: 117060
-
Mikhail Glushenkov authored
llvm-svn: 117058
-
Owen Anderson authored
half of the Q register), rather than with just regno. This allows us to unify the encodings for a lot of different NEON instrucitons that differ only in whether they have Q or D register operands. llvm-svn: 117056
-
Eric Christopher authored
llvm-svn: 117055
-
Wesley Peck authored
mostly based on the ARM AsmParser at this time and is not particularly functional. Changed the MBlaze data layout from: "E-p:32:32-i8:8:8-i16:16:16-i64:32:32-f64:32:32-v64:32:32-v128:32:32-n32" to: "E-p:32:32:32-i8:8:8-i16:16:16" because the MicroBlaze doesn't have i64, f64, v64, or v128 data types. Cleaned up the MBlaze source code: 1. The floating point register class has been removed. The MicroBlaze does not have floating point registers. Floating point values are simply stored in integer registers. 2. Renaming the CPURegs register class to GPR to reflect the standard naming. 3. Removing a lot of stale code from AsmPrinter after the conversion to InstPrinter. 4. Simplified sign extended loads by marking them as expanded in ISelLowering. llvm-svn: 117054
-
Dan Gohman authored
llvm-svn: 117053
-
Eric Christopher authored
the emitter to handle the addresses. Only simplify the offset if we need to - also fix bug where in addrmode 5 we weren't dividing the offset by 4, which showed up due to not always lowering. llvm-svn: 117051
-
Jim Grosbach authored
llvm-svn: 117050
-