llvm-6502/lib/Target/X86
Chris Lattner d2995df5b7 Improve codegen for the LLVM offsetof/sizeof "operator". Before we compiled
this LLVM function:

int %foo() {
        ret int cast (int** getelementptr (int** null, int 1) to int)
}

into:

foo:
        mov %EAX, 0
        lea %EAX, DWORD PTR [%EAX + 4]
        ret

now we compile it into:

foo:
        mov %EAX, 4
        ret

This sequence is frequently generated by the MSIL front-end, and soon the malloc lowering pass and
Java front-ends as well..

-Chris


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14834 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-15 00:58:53 +00:00
..
.cvsignore
FloatingPoint.cpp Made a fix so that you can print out MachineInstrs that belong to a MachineBasicBlock that is not yet attached to a MachineFunction. This change includes changing the third operand (TargetMachine) to a pointer for the MachineInstr::print function. 2004-06-25 00:13:11 +00:00
InstSelectPattern.cpp Add #include <iostream> since Value.h does not #include it any more. 2004-07-04 12:19:56 +00:00
InstSelectSimple.cpp Improve codegen for the LLVM offsetof/sizeof "operator". Before we compiled 2004-07-15 00:58:53 +00:00
Makefile Tablgen files for really simple instruction selector 2004-04-06 19:34:00 +00:00
PeepholeOptimizer.cpp Convert to the new TargetMachine interface. 2004-06-02 05:55:25 +00:00
Printer.cpp Fix associativity of parameters to assert(): now it actually makes sense. 2004-06-29 19:43:20 +00:00
X86.h Tablgen files for really simple instruction selector 2004-04-06 19:34:00 +00:00
X86.td Add support for the printImplicitDefsBefore flag 2004-04-13 17:18:39 +00:00
X86AsmPrinter.cpp Fix associativity of parameters to assert(): now it actually makes sense. 2004-06-29 19:43:20 +00:00
X86CodeEmitter.cpp Convert to the new TargetMachine interface. 2004-06-02 05:55:25 +00:00
X86FloatingPoint.cpp Made a fix so that you can print out MachineInstrs that belong to a MachineBasicBlock that is not yet attached to a MachineFunction. This change includes changing the third operand (TargetMachine) to a pointer for the MachineInstr::print function. 2004-06-25 00:13:11 +00:00
X86InstrBuilder.h Add assertion for scale verification. 2004-03-04 18:05:02 +00:00
X86InstrInfo.cpp A big X86 instruction rename. The instructions are renamed to make 2004-02-29 08:50:03 +00:00
X86InstrInfo.h Introduce a new FP instruction type to separate the compare cases from the 2004-06-11 04:41:24 +00:00
X86InstrInfo.td No really, these are dead now 2004-06-11 04:50:14 +00:00
X86InstrSel.td Tablgen files for really simple instruction selector 2004-04-06 19:34:00 +00:00
X86InstrSelInfo.td Tablgen files for really simple instruction selector 2004-04-06 19:34:00 +00:00
X86ISelPattern.cpp Add #include <iostream> since Value.h does not #include it any more. 2004-07-04 12:19:56 +00:00
X86ISelSimple.cpp Improve codegen for the LLVM offsetof/sizeof "operator". Before we compiled 2004-07-15 00:58:53 +00:00
X86JITInfo.h
X86PeepholeOpt.cpp Convert to the new TargetMachine interface. 2004-06-02 05:55:25 +00:00
X86RegisterInfo.cpp Delete the allocate*TargetMachine function, which is now dead . 2004-07-11 04:17:10 +00:00
X86RegisterInfo.h Another API change to MRegisterInfo::foldMemoryOperand. Instead of a 2004-03-14 20:14:27 +00:00
X86RegisterInfo.td Improve allocation order: 2004-02-29 09:17:01 +00:00
X86SimpInstrSelector.cpp Move the IntrinsicLowering header into the CodeGen directory, as per PR346 2004-06-20 07:49:54 +00:00
X86TargetMachine.cpp Delete the allocate*TargetMachine function, which is now dead . 2004-07-11 04:17:10 +00:00
X86TargetMachine.h Auto-registrate target 2004-07-11 02:48:49 +00:00