Skip to content
  1. Dec 18, 2008
  2. Dec 15, 2008
  3. Dec 13, 2008
  4. Dec 09, 2008
  5. Nov 26, 2008
  6. Nov 25, 2008
  7. Nov 22, 2008
  8. Nov 21, 2008
  9. Nov 20, 2008
  10. Nov 19, 2008
  11. Nov 18, 2008
    • Chris Lattner's avatar
      This reworks some of the Diagnostic interfaces a bit to change how diagnostics · 8488c829
      Chris Lattner authored
      are formed.  In particular, a diagnostic with all its strings and ranges is now
      packaged up and sent to DiagnosticClients as a DiagnosticInfo instead of as a 
      ton of random stuff.  This has the benefit of simplifying the interface, making
      it more extensible, and allowing us to do more checking for things like access
      past the end of the various arrays passed in.
      
      In addition to introducing DiagnosticInfo, this also substantially changes how 
      Diagnostic::Report works.  Instead of being passed in all of the info required
      to issue a diagnostic, Report now takes only the required info (a location and 
      ID) and returns a fresh DiagnosticInfo *by value*.  The caller is then free to
      stuff strings and ranges into the DiagnosticInfo with the << operator.  When
      the dtor runs on the DiagnosticInfo object (which should happen at the end of
      the statement), the diagnostic is actually emitted with all of the accumulated
      information.  This is a somewhat tricky dance, but it means that the 
      accumulated DiagnosticInfo is allowed to keep pointers to other expression 
      temporaries without those pointers getting invalidated.
      
      This is just the minimal change to get this stuff working, but this will allow
      us to eliminate the zillions of variant "Diag" methods scattered throughout
      (e.g.) sema.  For example, instead of calling:
      
        Diag(BuiltinLoc, diag::err_overload_no_match, typeNames,
             SourceRange(BuiltinLoc, RParenLoc));
      
      We will soon be able to just do:
      
        Diag(BuiltinLoc, diag::err_overload_no_match)
            << typeNames << SourceRange(BuiltinLoc, RParenLoc));
      
      This scales better to support arbitrary types being passed in (not just 
      strings) in a type-safe way.  Go operator overloading?!
      
      llvm-svn: 59502
      8488c829
  12. Nov 15, 2008
  13. 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
  14. Nov 11, 2008
  15. Nov 04, 2008
  16. Oct 18, 2008
  17. Oct 12, 2008
  18. Oct 06, 2008
  19. Sep 24, 2008
  20. Sep 11, 2008
  21. Sep 10, 2008
  22. Sep 09, 2008
  23. Sep 05, 2008
  24. Sep 04, 2008
  25. Sep 03, 2008
  26. Aug 31, 2008
  27. Aug 30, 2008
    • Anders Carlsson's avatar
      Stub out CodeGenFunction::EmitObjCForCollectionStmt. · 2e744e8a
      Anders Carlsson authored
      Add CodeGenFunction::EmitMemSetToZero and make AggExprEmitter::EmitAggregateClear use it.
      
      llvm-svn: 55573
      2e744e8a
    • Daniel Dunbar's avatar
      Add Objective-C property setter support. · 4b8c6db9
      Daniel Dunbar authored
       - Change Obj-C runtime message API, drop the ObjCMessageExpr arg in
         favor of just result type and selector. Necessary so it can be
         reused in situations where we don't want to cons up an
         ObjCMessageExpr.
       - Update aggregate binary assignment to know about special property
         ref lvalues.
       - Add CodeGenFunction::EmitCallArg overload which takes an already
         emitted rvalue.
      
      Add CodeGenFunction::StoreComplexIntoAddr.
      
      Disabled logic in Sema for parsing Objective-C dot-syntax that
      accesses methods. This code does not search in the correct order and
      the AST node has no way of properly representing its results.
      
      Updated StmtDumper to print a bit more information about
      ObjCPropertyRefExprs.
      
      llvm-svn: 55561
      4b8c6db9
    • Daniel Dunbar's avatar
      Refactor handling of calls: · c722b856
      Daniel Dunbar authored
       - Added CodeGenFunction::EmitCall which just takes the callee, return
         type, and a list of (Value*,QualType) pairs.
       - Added CodeGenFunction::EmitCallArg which handles emitting code for
         a call argument and turning it into an appropriate
         (Value*,QualType) pair.
       - Changed Objective-C runtime interface so that the actual emission
         of arguments for message sends is (once again) done in the code to
         emit a message send.
      
      No intended functionality change, this is prep work for better ABI
      support and for Objective-C property setter support.
      
      llvm-svn: 55560
      c722b856
  28. Aug 29, 2008
  29. Aug 27, 2008
Loading