llvm-6502/lib
Evan Cheng cb0f06e05c Disable folding loads into tail call in 32-bit PIC mode. It can introduce illegal code like this:
addl    $12, %esp
        popl    %esi
        popl    %edi
        popl    %ebx
        popl    %ebp
        jmpl    *__Block_deallocator-L1$pb(%esi)  # TAILCALL

The problem is the global base register is assigned GR32 register class. TCRETURNmi needs the registers making up the address mode to have the GR32_TC register class.

The *proper* fix is for X86DAGToDAGISel::getGlobalBaseReg() to return a copy from the global base register of the machine function rather than returning the register itself. But that has the potential of causing it to be coalesced to a more restrictive register class: GR32_TC. It can introduce additional copies and spills. For something as important the PIC base, it's not worth it especially since this is not an issue on 64-bit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99455 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-25 00:10:31 +00:00
..
Analysis Finally land the InvokeInst operand reordering. 2010-03-24 13:21:49 +00:00
Archive From PR6228: 2010-02-04 06:19:43 +00:00
AsmParser Introduce isOpaqueTy and use it rather than isa<OpaqueType>. Also, move some 2010-02-16 14:50:09 +00:00
Bitcode Finally land the InvokeInst operand reordering. 2010-03-24 13:21:49 +00:00
CodeGen revert 99444/99445. This doesn't cause the failure of 2010-03-24 23:41:19 +00:00
CompilerDriver Use FindExecutable as a fall-back search method. 2010-03-05 04:46:28 +00:00
ExecutionEngine Avoid a memory leak in JITDebugRegisterer. 2010-03-16 05:54:54 +00:00
Linker Introduce isOpaqueTy and use it rather than isa<OpaqueType>. Also, move some 2010-02-16 14:50:09 +00:00
MC MC: Direct all {fragment,section,symbol} address access through the MCAsmLayout object. 2010-03-24 03:43:40 +00:00
Support Fix minor style issues. 2010-03-24 19:38:02 +00:00
System Fix a false-positive memory leak in code using RemoveFileOnSignal(). Because 2010-03-17 07:08:12 +00:00
Target Disable folding loads into tail call in 32-bit PIC mode. It can introduce illegal code like this: 2010-03-25 00:10:31 +00:00
Transforms Temporarily revert this, it's causing an issue with an internal project. 2010-03-24 23:35:21 +00:00
VMCore Temporarily revert this, it's causing an issue with an internal project. 2010-03-24 23:35:21 +00:00
Makefile remove llvm-db: it is completely broken and if anyone wants to do a debugger, 2009-10-05 02:29:51 +00:00