Skip to content
  1. Oct 08, 2007
  2. Oct 05, 2007
  3. Sep 28, 2007
  4. Sep 04, 2007
  5. Aug 10, 2007
  6. Jul 16, 2007
  7. Jul 14, 2007
  8. Jul 10, 2007
  9. Jun 27, 2007
  10. Jun 23, 2007
  11. Jun 22, 2007
  12. Jun 20, 2007
    • Chris Lattner's avatar
      Hook up global function and variable handling. We can now compile: · b6984c48
      Chris Lattner authored
      int X, bar(int,int,int);
      short Y;
      
      double foo() {
        return bar(X, Y, 3);
      }
      
      into:
      
      @X = external global i32                ; <i32*> [#uses=1]
      @Y = external global i16                ; <i16*> [#uses=1]
      
      define double @foo() {
      entry:
              %tmp = load i32* @X             ; <i32> [#uses=1]
              %tmp1 = load i16* @Y            ; <i16> [#uses=1]
              %promote = sext i16 %tmp1 to i32                ; <i32> [#uses=1]
              %call = tail call i32 @bar( i32 %tmp, i32 %promote, i32 3 )             ; <i32> [#uses=1]
              %conv = sitofp i32 %call to double              ; <double> [#uses=1]
              ret double %conv
      }
      
      declare i32 @bar(i32, i32, i32)
      
      llvm-svn: 39663
      b6984c48
  13. Jun 16, 2007
  14. Jun 13, 2007
    • Chris Lattner's avatar
      Implement support for formal arguments. We can now compile this: · 53621a53
      Chris Lattner authored
      int test(int X, short Y, float Z) {
        return (int)(X*Y+Z);
      }
      
      to:
      
      define i32 @test(i32 %X, i16 %Y, float %Z) {
      entry:
              %promote = sext i16 %Y to i32           ; <i32> [#uses=1]
              %mul = mul i32 %promote, %X             ; <i32> [#uses=1]
              %promote3 = sitofp i32 %mul to float            ; <float> [#uses=1]
              %add = add float %promote3, %Z          ; <float> [#uses=1]
              %conv = fptosi float %add to i32                ; <i32> [#uses=1]
              ret i32 %conv
      }
      
      with:
      
      $ clang -emit-llvm t.c | llvm-as | opt -std-compile-opts | llvm-dis
      
      llvm-svn: 39652
      53621a53
  15. Jun 09, 2007
  16. Jun 05, 2007
  17. Jun 03, 2007
    • Chris Lattner's avatar
      Type::isSignedInteger() and isUnsignedInteger() did not properly account for · b16f455e
      Chris Lattner authored
      'char', which varies based on the target.
      
      Instead of spreading target knowledge throughout the compiler, bifurcate char
      into Char_S and Char_U, and have ASTContext create the right one based on the
      target, when it starts up.
      
      llvm-svn: 39577
      b16f455e
    • Chris Lattner's avatar
      implement a first hack at codegen'ing the usual unary conversions. · 6db1fb84
      Chris Lattner authored
      This allows us to compile:
      
      int func() {
        int A[10];
        if (!A) {
      
      to:
      
      define i32 @func() {
      entry:
              %A = alloca [10 x i32]          ; <[10 x i32]*> [#uses=1]
              %arraydecay = getelementptr [10 x i32]* %A, i32 0, i32 0                ; <i32*> [#uses=1]
              %tobool = icmp ne i32* %arraydecay, null                ; <i1> [#uses=1]
              %lnot = xor i1 %tobool, true            ; <i1> [#uses=1]
              br i1 %lnot, label %ifthen, label %ifend
      
      -Chris
      
      llvm-svn: 39564
      6db1fb84
  18. Jun 02, 2007
  19. Jun 01, 2007
  20. May 31, 2007
  21. May 30, 2007
  22. May 28, 2007
Loading