Skip to content
  1. Nov 12, 2008
    • 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 10, 2008
  4. Nov 09, 2008
  5. Nov 08, 2008
  6. Nov 04, 2008
  7. Nov 03, 2008
  8. Nov 01, 2008
  9. Oct 31, 2008
  10. Oct 29, 2008
    • Daniel Dunbar's avatar
      NeXT: Emit protocol objects lazily. · c475d422
      Daniel Dunbar authored
       - That is, the metadata for a protocol is only emitted if that
         protocol is actually used in the translation unit. This is
         important because Objective-C headers frequently contain a large
         number of protocol definitions, only a few of which will be used in
         any given file.
      
      llvm-svn: 58400
      c475d422
    • Eli Friedman's avatar
      Fix for PR2966: va_start/va_end use the *address* of the · 5adca5f0
      Eli Friedman authored
      va_list, not the value.  Patch fixes an assert on 
      x86-64 and a wrong-code bug on x86.  I'm not completely sure, 
      but I think it's a regression from r58306.
      
      Does anyone run regression tests regularly on x86-64? The crash should 
      have been picked up there.
      
      llvm-svn: 58366
      5adca5f0
  11. Oct 28, 2008
  12. Oct 27, 2008
  13. Oct 26, 2008
  14. Oct 24, 2008
  15. Oct 21, 2008
  16. Oct 18, 2008
Loading