llvm-6502/lib
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
..
Analysis Simplify logic. 2004-07-14 20:27:12 +00:00
Archive
AsmParser This is logically part of the last patch. Just more really horrible code 2004-07-14 23:07:13 +00:00
Bytecode Actually set the endian/pointersize flags on the module being read in! 2004-07-14 20:33:13 +00:00
CodeGen
Debugger
ExecutionEngine The cleanup is done. Update comment. 2004-07-11 08:24:02 +00:00
Linker
Support Implicitly getting a new option by linking to support.o instead of support.a 2004-07-11 01:04:33 +00:00
Target Improve codegen for the LLVM offsetof/sizeof "operator". Before we compiled 2004-07-15 00:58:53 +00:00
Transforms Factor some code to handle "load (constantexpr cast foo)" just like 2004-07-13 01:49:43 +00:00
VMCore Implement new helper methods for creating two-index GEP instructions 2004-07-14 18:14:33 +00:00
Makefile