Skip to content
  1. Nov 12, 2008
    • Chris Lattner's avatar
      Clean up some code to use isZero instead of calling getZExtValue. · 4ad31fcc
      Chris Lattner authored
      llvm-svn: 59103
      4ad31fcc
    • 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
  2. Nov 11, 2008
  3. Nov 09, 2008
  4. Oct 17, 2008
  5. Oct 12, 2008
  6. Oct 06, 2008
  7. Oct 02, 2008
  8. Sep 30, 2008
    • Daniel Dunbar's avatar
      Add infrastructure for proper @finally support. · 2efd538f
      Daniel Dunbar authored
       - Provides a basic primitive to jump to an arbitrary basic block,
         through the finally code.
      
       - Only used for return statements and rethrow currently. Still need
         to handle break, continue and goto.
      
       - Code still needs to be shuffled around to live elsewhere.
      
      llvm-svn: 56827
      2efd538f
  9. Sep 28, 2008
  10. Sep 24, 2008
    • Daniel Dunbar's avatar
      Refactor some CodeGen functionality: · 1c64e5d1
      Daniel Dunbar authored
       - Add CodeGenFunction::{EmitReturnOfRValue, EmitIvarOffset}
       - Factor EmitLValueForIvar out of EmitObjCIvarRefLValue.
      
      No non-error functionality change (some unsupported errors are
      degraded to asserts for the time being).
      
      llvm-svn: 56543
      1c64e5d1
  11. Sep 11, 2008
  12. Sep 09, 2008
  13. Aug 30, 2008
  14. Aug 29, 2008
  15. Aug 23, 2008
    • Daniel Dunbar's avatar
      Implement Obj-C ivar references to aggregates. · c8317a44
      Daniel Dunbar authored
      Implement Obj-C lvalue message sends (aggregate returns).
      
      Update several places to emit more precise ErrorUnsupported warnings
        for currently unimplemented Obj-C features (main missing chunks are
        property references, Obj-C exception handling, and the for ... in
        syntax).
      
      llvm-svn: 55234
      c8317a44
  16. Aug 16, 2008
  17. 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 · ad319a73
      Daniel Dunbar authored
       - Remove internal uses of AST.h
      
      llvm-svn: 54628
      ad319a73
  18. Aug 04, 2008
    • Daniel Dunbar's avatar
      Add CodeGen support for indirect goto. · 88402ce8
      Daniel Dunbar authored
       - Follows emission scheme used by llvm-gcc, i.e. invent an id for
         each label whose address is taken and replace each indirect goto by
         a switch to each possible target.
       - Currently we emit a switch for each indirect goto instead of
         merging them as llvm-gcc does.
      
      llvm-svn: 54318
      88402ce8
  19. Jul 26, 2008
  20. Jul 25, 2008
    • Daniel Dunbar's avatar
      Rework codegen of case ranges · 0e5845c1
      Daniel Dunbar authored
       - Fix multiple issues with the way case ranges were emitted, see test
         cases details about the specific issues.
      
       - The root issue was not being careful about how basic blocks were
         emitted which led to them being chained together incorrectly,
         resulting in improper control flow.
      
       - Fixes <rdar://problem/6098585>
      
      llvm-svn: 54006
      0e5845c1
  21. Jul 24, 2008
  22. Jun 14, 2008
  23. May 25, 2008
  24. May 23, 2008
    • Dan Gohman's avatar
      Change uses of llvm::Type::isFirstClassType to use the new · 5d30975e
      Dan Gohman authored
      llvm::Type::isSingleValueType. Currently these two functions have
      the same behavior, but soon isFirstClassType will return true for
      struct and array types.
      
      Clang may some day want to use of isFirstClassType for some of
      these some day as an optimization, but it'll require some
      consideration.
      
      llvm-svn: 51446
      5d30975e
  25. May 22, 2008
  26. May 12, 2008
  27. May 08, 2008
    • Sanjiv Gupta's avatar
      Added -g command line options to clang for generating source level debug... · 15cb6690
      Sanjiv Gupta authored
      Added -g command line options to clang for generating source level debug information. This patch currently enables generation of line number debug information (stoppoints) and region begin/end debug information. The new files CGDebugInfo.h and CGDebugInfo.cpp implements the debug info manager class CGDebugInfo.
      
      llvm-svn: 50848
      15cb6690
Loading