Skip to content
  1. Apr 16, 2012
  2. Mar 30, 2012
  3. Mar 29, 2012
  4. Mar 26, 2012
  5. Mar 11, 2012
  6. Mar 01, 2012
    • Eli Friedman's avatar
      Implement "optimization" for lambda-to-block conversion which inlines the... · 98b01edc
      Eli Friedman authored
      Implement "optimization" for lambda-to-block conversion which inlines the generated block literal for lambdas which are immediately converted to block pointer type.  This simplifies the AST, avoids an unnecessary copy of the lambda and makes it much easier to avoid copying the result onto the heap.
      
      Note that this transformation has a substantial semantic effect outside of ARC: it gives the converted lambda lifetime semantics similar to a block literal.  With ARC, the effect is much less obvious because the lifetime of blocks is already managed.
      
      llvm-svn: 151797
      98b01edc
  7. Feb 28, 2012
  8. Feb 26, 2012
    • Richard Smith's avatar
      Ensure that we delete destructors in the right cases. Specifically: · 921bd20d
      Richard Smith authored
       - variant members with nontrivial destructors make the containing class's
         destructor deleted
       - check for a virtual destructor after checking for overridden methods in the
         base class(es)
       - check for an inaccessible operator delete for a class with a virtual
         destructor.
      
      Do not try to call an anonymous union field's destructor from the destructor of
      the containing class.
      
      llvm-svn: 151483
      921bd20d
  9. Feb 25, 2012
  10. Feb 19, 2012
  11. Feb 17, 2012
    • John McCall's avatar
      Whether an argument is required (in contrast with being an · a729c62b
      John McCall authored
      optional argument passed through the variadic ellipsis)
      potentially affects how we need to lower it.  Propagate
      this information down to the various getFunctionInfo(...)
      overloads on CodeGenTypes.  Furthermore, rename those
      overloads to clarify their distinct purposes, and make
      sure we're calling the right one in the right place.
      This has a nice side-effect of making it easier to construct
      a function type, since the 'variadic' bit is no longer
      separable.
      
      This shouldn't really change anything for our existing
      platforms, with one minor exception --- we should now call
      variadic ObjC methods with the ... in the "right place"
      (see the test case), which I guess matters for anyone
      running GNUStep on MIPS.  Mostly it's just a substantial
      clean-up.
      
      llvm-svn: 150788
      a729c62b
    • Douglas Gregor's avatar
      Rework the Sema/AST/IRgen dance for the lambda closure type's · 355efbb2
      Douglas Gregor authored
      conversion to function pointer. Rather than having IRgen synthesize
      the body of this function, we instead introduce a static member
      function "__invoke" with the same signature as the lambda's
      operator() in the AST. Sema then generates a body for the conversion
      to function pointer which simply returns the address of __invoke. This
      approach makes it easier to evaluate a call to the conversion function
      as a constant, makes the linkage of the __invoke function follow the
      normal rules for member functions, and may make life easier down the
      road if we ever want to constexpr'ify some of lambdas.
      
      Note that IR generation is responsible for filling in the body of
      __invoke (Sema just adds a dummy body), because the body can't
      generally be expressed in C++.
      
      Eli, please review!
      
      llvm-svn: 150783
      355efbb2
  12. Feb 16, 2012
  13. Feb 14, 2012
  14. Feb 07, 2012
  15. Feb 01, 2012
  16. Jan 26, 2012
  17. Dec 03, 2011
  18. Oct 13, 2011
    • Eric Christopher's avatar
      Recommit: · 7cdf9486
      Eric Christopher authored
          Start handling debug line and scope information better:
      
          Migrate most of the location setting within the larger API in CGDebugInfo and
          update a lot of callers.
          Remove the existing file/scope change machinery in UpdateLineDirectiveRegion
          and replace it with DILexicalBlockFile usage.
      
          Finishes off the rest of rdar://10246360
      
      after fixing a few bugs that were exposed in gdb testsuite testing.
      
      llvm-svn: 141893
      7cdf9486
  19. Oct 12, 2011
  20. Sep 29, 2011
  21. Sep 26, 2011
  22. Sep 22, 2011
  23. Sep 18, 2011
  24. Sep 15, 2011
  25. Aug 30, 2011
  26. Aug 26, 2011
    • John McCall's avatar
      Track whether an AggValueSlot is potentially aliased, and do not · a5efa738
      John McCall authored
      emit call results into potentially aliased slots.  This allows us
      to properly mark indirect return slots as noalias, at the cost
      of requiring an extra memcpy when assigning an aggregate call
      result into a l-value.  It also brings us into compliance with
      the x86-64 ABI.
      
      llvm-svn: 138599
      a5efa738
  27. Aug 25, 2011
Loading