llvm-mirror/lib
Chris Lattner 210ffe4b77 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

llvm-svn: 14834
2004-07-15 00:58:53 +00:00
..
Analysis Simplify logic. 2004-07-14 20:27:12 +00:00
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 Add checks to ensure that there are no unreachable blocks in the function 2004-07-09 16:44:37 +00:00
Debugger Add #include <iostream> since Value.h does not #include it any more. 2004-07-04 12:19:56 +00:00
ExecutionEngine The cleanup is done. Update comment. 2004-07-11 08:24:02 +00:00
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 CBackend is no longer here 2004-02-13 23:29:37 +00:00