- Nov 17, 2009
-
-
Evan Cheng authored
llvm-svn: 89129
-
Jakob Stoklund Olesen authored
The local register allocator doesn't like it when LiveVariables is run. We should also disable edge splitting under -O0, but that has to wait a bit. llvm-svn: 89125
-
Jim Grosbach authored
llvm-svn: 89123
-
Viktor Kutuzov authored
Added getArchNameForAssembler method to the Triple class for which returns OS and Vendor independent target assembler arch. llvm-svn: 89122
-
Bob Wilson authored
unnecessary. It is broken because the "isIdenticalTo" check should be negated. If that is fixed, this code causes the CodeGen/X86/tail-opts.ll test to fail, in the dont_merge_oddly function. And, I confirmed that the regression is real -- the generated code is worse. As far as I can tell, that tail-opts.ll test is checking for what this code is supposed to handle and we're doing the right thing anyway. llvm-svn: 89121
-
Evan Cheng authored
llvm-svn: 89116
-
Dan Gohman authored
llvm-svn: 89114
-
Benjamin Kramer authored
of failure. The x86 target didn't like empty cpu names and broke x86 tests on non-x86 buildbots. llvm-svn: 89111
-
Jim Grosbach authored
llvm-svn: 89110
-
Bob Wilson authored
folding optimizations. llvm-svn: 89109
-
Johnny Chen authored
distinguish between them and the more generic instructions (add, mov, and ldr). llvm-svn: 89108
-
Bob Wilson authored
It was too difficult to keep the heuristics for merging and duplication consistent. llvm-svn: 89105
-
Evan Cheng authored
llvm-svn: 89082
-
Evan Cheng authored
llvm-svn: 89081
-
Evan Cheng authored
llvm-svn: 89076
-
Nick Lewycky authored
llvm-svn: 89075
-
Nick Lewycky authored
llvm-svn: 89066
-
Nick Lewycky authored
libffi support and that the interpreter can't call external functions without it. Patch by Timo Juhani Lindfors! Fixes PR5466. llvm-svn: 89062
-
Owen Anderson authored
llvm-svn: 89056
-
Bill Wendling authored
more than one place. No intended functionality change. llvm-svn: 89024
-
Jim Grosbach authored
is analyzable so it can be updated. If it's not, be safe and don't move the block. llvm-svn: 89022
-
Jakob Stoklund Olesen authored
llvm-svn: 89021
-
Evan Cheng authored
llvm-svn: 89019
-
Dan Gohman authored
unconditional branches or fallthroghes. Instcombine/SimplifyCFG should be simplifying branches with known conditions. This fixes some problems caused by these transformations not updating the MachineBasicBlock CFG. llvm-svn: 89017
-
Devang Patel authored
llvm-svn: 89016
-
Jeffrey Yasskin authored
right type. llvm-svn: 89014
-
Evan Cheng authored
llvm-svn: 89011
-
Johnny Chen authored
0b1110 (ALways). This is so that the disassembler decoder can distinguish among BX_RET, BRIND, and BXr9. llvm-svn: 89000
-
- 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
-
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: 88956
-
Dan Gohman authored
llvm-svn: 88953
-
Bob Wilson authored
llvm-svn: 88940
-
Devang Patel authored
llvm-svn: 88939
-
Jim Grosbach authored
usage of block sizes and offsets. llvm-svn: 88935
-