Skip to content
  1. Nov 16, 2008
  2. Nov 13, 2008
    • Daniel Dunbar's avatar
      Normalize many BasicBlock names. · a612e79b
      Daniel Dunbar authored
       - Use dotted notation for blocks related to a particular statement
         type.
       - Use .end for landing pads.
      
      No functionality change in NDEBUG mode. :)
      
      llvm-svn: 59210
      a612e79b
  3. Nov 12, 2008
    • Daniel Dunbar's avatar
      Quick fix for crash in IRgen when we can tryEvaluate a condition to · f32443cd
      Daniel Dunbar authored
      something that is not an int.
      
       - Ignore these cases for now, added FIXME that we should also boolize
         them.
      
      llvm-svn: 59184
      f32443cd
    • Daniel Dunbar's avatar
      Handle ?: in EmitBranchOnBoolExpr. · bf3c22e5
      Daniel Dunbar authored
      llvm-svn: 59129
      bf3c22e5
    • Chris Lattner's avatar
      Handle Unary ! in EmitBranchOnBoolExpr, so that we can efficiently · d9537734
      Chris Lattner authored
      codegen stuff like "if (!(X && Y))"
      
      llvm-svn: 59115
      d9537734
    • Chris Lattner's avatar
      Move EmitBranchOnBoolExpr and ConstantFoldsToSimpleInteger to · cd439299
      Chris Lattner authored
      CodeGenFunction.cpp.  Change VisitConditionalOperator to use
      constant fold instead of codegen'ing a constant conditional.
      
      Change ForStmt to use EmitBranchOnBoolExpr, this shrinks
      expr.c very slightly to 40239 lines.
      
      llvm-svn: 59113
      cd439299
    • Daniel Dunbar's avatar
      Rework IRgen invariant w.r.t. current insert point. · 5c7e3935
      Daniel Dunbar authored
       - EmitStmt is no longer required to finish with a current insertion
         point defined (i.e. it does not need to make dummy
         blocks). Instead, it can clear the insertion point in the builder
         which indicates that the current insertion point is unreachable.
       - CodeGenFunction provides HaveInsertPoint and EnsureInsertPoint
         which respectively test if there is an insert point and ensure an
         insertion point exists (by making a dummy block).
       - Clearly mark functions in CodeGenFunction which can be called with
         no insertion point defined. Currently this is a limited set, and
         EmitStmt simply EnsureInsertPoint()s before emitting subsequent IR.
      
      Remove EmitDummyBlock, which is no longer needed. Clients who haven't
      already cleared the insertion point (typically via EmitBranch) can do
      so by hand.
      
      Remove isDummyBlock, which has effectively been renamed to
      HaveInsertPoint.
      
      The main thrust of this change is that we no longer have create dummy
      blocks just to destroy them a short time later in EmitBlock in the
      common case that there is no unreachable code following something like
      a goto. 
      
      Additionally, this means that we are not using the hokey condition in
      isDummyBlock that a block without a name is a dummy block. Guess how
      well that works when we never emit block names!
      
      llvm-svn: 59089
      5c7e3935
  4. Nov 11, 2008
  5. Nov 04, 2008
  6. Oct 28, 2008
  7. Oct 18, 2008
  8. Oct 17, 2008
  9. Sep 27, 2008
  10. Sep 17, 2008
  11. Sep 11, 2008
  12. Sep 10, 2008
  13. Sep 09, 2008
    • Daniel Dunbar's avatar
      Use a unified return block. · 54bb1933
      Daniel Dunbar authored
       - For the time being this means our emitted code is somewhat worse,
         especially for aggregates. This will be fixed.
      
      llvm-svn: 56013
      54bb1933
  14. Sep 04, 2008
  15. Aug 30, 2008
  16. Aug 26, 2008
    • Daniel Dunbar's avatar
      Objective-C @synthesize support. · 89654eef
      Daniel Dunbar authored
       - Only supports simple assignment and atomic semantics are ignored.
       - Not quite usable yet because the methods do not actually get added
         to the class metadata.
       - Added ObjCPropertyDecl::getSetterKind (one of Assign, Copy, Retain).
       - Rearrange CodeGenFunction so synthesis can reuse function prolog /
         epilog code.
      
      llvm-svn: 55365
      89654eef
  17. Aug 25, 2008
  18. Aug 16, 2008
  19. Aug 11, 2008
    • Daniel Dunbar's avatar
      More #include cleaning · 56fdb6ae
      Daniel Dunbar authored
       - Kill unnecessary #includes in .cpp files. This is an automatic
         sweep so some things removed are actually used, but happen to be
         included by a previous header. I tried to get rid of the obvious
         examples and this was the easiest way to trim the #includes in one
         fell swoop.
       - We now return to regularly scheduled development.
      
      llvm-svn: 54632
      56fdb6ae
    • Daniel Dunbar's avatar
      More #include cleaning · 6e8aa537
      Daniel Dunbar authored
       - Drop {Decl.h,DeclObjC.h,IdentifierTable.h} from Expr.h
       - Moved Sema::getCurMethodDecl() out of line (dependent on
         ObjCMethodDecl via dyn_cast).
      
      llvm-svn: 54629
      6e8aa537
    • Daniel Dunbar's avatar
      More #include cleaning · ad319a73
      Daniel Dunbar authored
       - Remove internal uses of AST.h
      
      llvm-svn: 54628
      ad319a73
  20. Aug 04, 2008
  21. Jul 30, 2008
    • Daniel Dunbar's avatar
      Rework codegen emission of globals · 9c426524
      Daniel Dunbar authored
       - No (intended) functionality change.
      
       - Primary purpose is to clearly separate (lazy) construction of
         globals that are a forward declaration or tentative definition from
         those that are the final definition.
      
       - Lazy construction is now encapsulated in
         GetAddrOf{Function,GlobalVar} while final definitions are
         constructed in EmitGlobal{Function,Var}Definition.
       
       - External interface for dealing with globals is now limited to
         EmitGlobal and GetAddrOf{Function,GlobalVar}.
      
       - Also updated helper functions dealing with statics, annotations,
         and ctors to be private.
      
      llvm-svn: 54179
      9c426524
  22. Jul 26, 2008
  23. Jul 04, 2008
  24. Jun 17, 2008
  25. Jun 14, 2008
  26. Jun 01, 2008
  27. May 25, 2008
  28. May 22, 2008
    • Eli Friedman's avatar
      Make debugging information usable. This is barebones, but it makes -g · 1763075b
      Eli Friedman authored
      actually work (instead of crashing llc), and there's enough info emitted 
      to get line number information in gdb. This should hopefully be helpful 
      for debugging non-working programs.
      
      I got rid of the begin/endregion calls because the implementation wasn't 
      working; someone who knows the debugging info a bit better might try to 
      add it. I really have no clue how a compiler is supposed to emit them.
      
      This commit shouldn't have any effect without -g.
      
      llvm-svn: 51404
      1763075b
Loading