Skip to content
  1. Jul 15, 2004
    • Chris Lattner's avatar
      Improve codegen for the LLVM offsetof/sizeof "operator". Before we compiled · 33930ad7
      Chris Lattner authored
      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
      33930ad7
    • Chris Lattner's avatar
      You cannot pass functions by value, what does that even mean?? · 969d6fbc
      Chris Lattner authored
      llvm-svn: 14833
      969d6fbc
    • Chris Lattner's avatar
      this "feature" is gone · 1e780d3d
      Chris Lattner authored
      llvm-svn: 14832
      1e780d3d
    • Chris Lattner's avatar
      This is logically part of the last patch. Just more really horrible code · 4babbe04
      Chris Lattner authored
      that is made unnecessary by it.
      
      llvm-svn: 14831
      4babbe04
    • Chris Lattner's avatar
      ** Finally DeclareNewGlobalValue is dead! · 8abe1a11
      Chris Lattner authored
      * Simplify a lot of code because type's cannot be in function symbol tables
      * Fix memory leaks in handling of redefined function prototypes
      * Don't use SymbolTable directly for stuff that we can go through the Module
        for.
      * Fix some minor bugs on obscure testcases like:
            test/Feature/globalredefinition.ll
      * Do not create GlobalVariable objects for forward referenced Functions!
      * When forward referencing a function in a constant expression, do not create
        a placeholder, add a bunch of references to it, then turn around and
        replaceAllUsesOfWith on it with a new global, deleting the placeholder.
        Instead, when we find the real definition of the global, just use the
        placeholder instead of creating a new object.
      
      This substantially simplifies the asmwriter and should even speed it up on
      cases heavy in constantexprs (like C++, Java, MSIL)...
      
      llvm-svn: 14830
      8abe1a11
    • Chris Lattner's avatar
      New, horrible, testcase · 7e40f4f9
      Chris Lattner authored
      llvm-svn: 14829
      7e40f4f9
  2. Jul 14, 2004
  3. Jul 13, 2004
Loading