- Nov 16, 2009
-
-
Dan Gohman authored
uninitialized memory. llvm-svn: 88985
-
Jeffrey Yasskin authored
The large code model is documented at http://www.x86-64.org/documentation/abi.pdf and says that calls should assume their target doesn't live within the 32-bit pc-relative offset that fits in the call instruction. To do this, we turn off the global-address->target-global-address conversion in X86TargetLowering::LowerCall(). The first attempt at this broke the lazy JIT because it can separate the movabs(imm->reg) from the actual call instruction. The lazy JIT receives the address of the movabs as a relocation and needs to record the return address from the call; and then when that call happens, it needs to patch the movabs with the newly-compiled target. We could thread the call instruction into the relocation and record the movabs<->call mapping explicitly, but that seems to require at least as much new complication in the code generator as this change. To fix this, we make lazy functions _always_ go through a call stub. You'd think we'd only have to force lazy calls through a stub on difficult platforms, but that turns out to break indirect calls through a function pointer. The right fix for that is to distinguish between calls and address-of operations on uncompiled functions, but that's complex enough to leave for someone else to do. Another attempt at this defined a new CALL64i pseudo-instruction, which expanded to a 2-instruction sequence in the assembly output and was special-cased in the X86CodeEmitter's emitInstruction() function. That broke indirect calls in the same way as above. This patch also removes a hack forcing Darwin to the small code model. Without far-call-stubs, the small code model requires things of the JITMemoryManager that the DefaultJITMemoryManager can't provide. Thanks to echristo for lots of testing! llvm-svn: 88984
-
Daniel Dunbar authored
Don't build examples by default, use BUILD_EXAMPLES=1 to build them. The only utility of this is testing that we keep the examples up to date, I will just make the buildbots run with this flag. llvm-svn: 88979
-
Daniel Dunbar authored
disk space, and increasing battery lifetime. :) llvm-svn: 88978
-
Eric Christopher authored
llvm-svn: 88977
-
Evan Cheng authored
- Check memoperand alignment instead of checking stack alignment. Most load / store folding instructions are not referencing spill stack slots. - Mark MOVUPSrm re-materializable. llvm-svn: 88974
-
Devang Patel authored
llvm-svn: 88973
-
David Greene authored
Fix an expensive-checks error. The Mask and LHSMask may not be of the same size, so don't do the transformation if they're different. llvm-svn: 88972
-
Jim Grosbach authored
llvm-svn: 88964
-
Jim Grosbach authored
llvm-svn: 88961
-
Dan Gohman authored
llvm-svn: 88959
-
Dan Gohman authored
llvm-svn: 88957
-
Dan Gohman authored
llvm-svn: 88956
-
Dan Gohman authored
FixedStackPseudoSourceValueVal, to respect this isa relationship. llvm-svn: 88954
-
Dan Gohman authored
llvm-svn: 88953
-
Jim Grosbach authored
llvm-svn: 88947
-
Lang Hames authored
llvm-svn: 88946
-
Rafael Espindola authored
llvm-svn: 88943
-
Jim Grosbach authored
llvm-svn: 88942
-
Bob Wilson authored
llvm-svn: 88940
-
Devang Patel authored
llvm-svn: 88939
-
Jim Grosbach authored
usage of block sizes and offsets. llvm-svn: 88935
-
Jim Grosbach authored
llvm-svn: 88933
-
Bob Wilson authored
llvm-svn: 88932
-
Bob Wilson authored
llvm-svn: 88929
-
Bob Wilson authored
llvm-svn: 88927
-
Jim Grosbach authored
llvm-svn: 88921
-
Jim Grosbach authored
llvm-svn: 88919
-
Jim Grosbach authored
Analyze has to be before checking the condition, obviously. Properly construct an iterator for prior. llvm-svn: 88917
-
Douglas Gregor authored
llvm-svn: 88916
-
Duncan Sands authored
parameter of CreateIntCast then they get an error from the compiler (or from the linker with a non-gcc compiler). Another possibility is to flip the order of the DestTy and isSigned parameters, since you should then get a compiler warning if you try to use a char* for a Type*. llvm-svn: 88913
-
David Greene authored
Support spill comments. Have the asm printer emit a comment if an instruction is a spill or reload and have the spiller mark copies it introdues so the asm printer can also annotate those. llvm-svn: 88911
-
Duncan Sands authored
llvm-svn: 88910
-
Duncan Sands authored
a name. llvm-svn: 88908
-
Evan Cheng authored
Special case FixedStackPseudoSourceValueVal as well. Do we really need to differentiate PseudoSourceValueVal from FixedStackPseudoSourceValueVal at this level? llvm-svn: 88902
-
Evan Cheng authored
llvm-svn: 88899
-
Evan Cheng authored
llvm-svn: 88895
-
Evan Cheng authored
llvm-svn: 88892
-
Bruno Cardoso Lopes authored
llvm-svn: 88887
-
Bruno Cardoso Lopes authored
- Add a smarter constant pool loading, instead of: lui $2, %hi($CPI1_0) addiu $2, $2, %lo($CPI1_0) lwc1 $f0, 0($2) Generate: lui $2, %hi($CPI1_0) lwc1 $f0, %lo($CPI1_0)($2) llvm-svn: 88886
-