Skip to content
Snippets Groups Projects
  1. Mar 14, 2016
  2. Nov 19, 2015
  3. Nov 18, 2015
  4. Mar 13, 2015
  5. Feb 27, 2015
  6. Jan 22, 2015
    • Rafael Espindola's avatar
      Emit DeferredDeclsToEmit in a DFS order. · 8b4659a9
      Rafael Espindola authored
      Currently we emit DeferredDeclsToEmit in reverse order. This patch changes that.
      
      The advantages of the change are that
      
      * The output order is a bit closer to the source order. The change to
      test/CodeGenCXX/pod-member-memcpys.cpp is a good example.
      
      * If we decide to deffer more, it will not cause as large changes in the
      estcases as it would without this patch.
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@226751 91177308-0d34-0410-b5e6-96231b3b80d8
      8b4659a9
  7. Dec 03, 2014
  8. Jul 18, 2014
    • Hal Finkel's avatar
      Mark C++ reference parameters as dereferenceable · 4cdf252c
      Hal Finkel authored
      Because references must be initialized using some evaluated expression, they
      must point to something, and a callee can assume the reference parameter is
      dereferenceable. Taking advantage of a new attribute just added to LLVM, mark
      them as such.
      
      Because dereferenceability in addrspace(0) implies nonnull in the backend, we
      don't need both attributes. However, we need to know the size of the object to
      use the dereferenceable attribute, so for incomplete types we still emit only
      nonnull.
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213386 91177308-0d34-0410-b5e6-96231b3b80d8
      4cdf252c
  9. May 28, 2014
  10. Feb 22, 2014
    • Warren Hunt's avatar
      Complete Rewrite of CGRecordLayoutBuilder · 21db05d1
      Warren Hunt authored
      CGRecordLayoutBuilder was aging, complex, multi-pass, and shows signs of 
      existing before ASTRecordLayoutBuilder.  It redundantly performed many 
      layout operations that are now performed by ASTRecordLayoutBuilder and 
      asserted that the results were the same.  With the addition of support 
      for the MS-ABI, such as placement of vbptrs, vtordisps, different 
      bitfield layout and a variety of other features, CGRecordLayoutBuilder 
      was growing unwieldy in its redundancy.
      
      This patch re-architects CGRecordLayoutBuilder to not perform any 
      redundant layout but rather, as directly as possible, lower an 
      ASTRecordLayout to an llvm::type.  The new architecture is significantly 
      smaller and simpler than the CGRecordLayoutBuilder and contains fewer 
      ABI-specific code paths.  It's also one pass.
      
      The architecture of the new system is described in the comments. For the 
      most part, the new system simply takes all of the fields and bases from 
      an ASTRecordLayout, sorts them, inserts padding and dumps a record. 
      Bitfields, unions and primary virtual bases make this process a bit more 
      complicated.  See the inline comments.
      
      In addition, this patch updates a few lit tests due to the fact that the 
      new system computes more accurate llvm types than CGRecordLayoutBuilder. 
      Each change is commented individually in the review.
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2795
      
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201907 91177308-0d34-0410-b5e6-96231b3b80d8
      21db05d1
  11. Aug 15, 2013
  12. May 07, 2013
  13. Jan 25, 2011
  14. Jan 11, 2011
  15. Mar 30, 2010
  16. Dec 15, 2009
  17. Nov 24, 2009
  18. Nov 16, 2009
  19. Nov 08, 2009
  20. Sep 26, 2009
  21. Sep 09, 2009
  22. Aug 21, 2009
  23. Aug 11, 2009
  24. Aug 10, 2009
  25. Aug 09, 2009
Loading