Skip to content
  1. Feb 22, 2014
    • Warren Hunt's avatar
      Complete Rewrite of CGRecordLayoutBuilder · fb00c887
      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
      
      llvm-svn: 201907
      fb00c887
    • Quentin Colombet's avatar
      [DAGCombiner] PCMP* sets its result to all ones or zeros so we can AND with the · 4db08df1
      Quentin Colombet authored
      shifted mask rather than masking and shifting separately.
      
      The patch adds this transformation to the DAGCombiner:
      
        (shl (and (setcc:i8v16 ...) N01C) N1C) -> (and (setcc:i8v16 ...) N01C<<N1C)
      
      <rdar://problem/16054492>
      
      Patch by Adam Nemet <anemet@apple.com>
      
      llvm-svn: 201906
      4db08df1
    • Ben Langmuir's avatar
      Add a VFSFromYAML class and a parser to create it · d51ba0b3
      Ben Langmuir authored
      Provides a way to create a virtual file system using a YAML file that
      supports mapping a file to a path on an 'external' file system. The
      external file system will typically be the 'real' file system, but for
      testing it can be changed.
      
      A future patch will add a clang option to allow the user to specify such
      a file and overlay it, but for now this code is only exercised by the
      unit tests.
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2835
      
      llvm-svn: 201905
      d51ba0b3
    • Juergen Ributzka's avatar
      [Stackmaps] Move the target-independent frame index elimination for stackmaps... · 4845b488
      Juergen Ributzka authored
      [Stackmaps] Move the target-independent frame index elimination for stackmaps and patchpoints into target-specific code.
      
      The lowering of the frame index for stackmaps and patchpoints requires some
      target-specific magic and should therefore be handled in the target-specific
      eliminateFrameIndex method.
      
      This is related to <rdar://problem/16106219>
      
      llvm-svn: 201904
      4845b488
    • Tobias Grosser's avatar
      Dependences: Do not assign 'WAW' twice · fa1a4320
      Tobias Grosser authored
      
      
      Reported-by: default avatarSebastian Pop <spop@codeaurora.org>
      Reported-by: default avatarYabin Hu <yabin.hwu@gmail.com>
      llvm-svn: 201903
      fa1a4320
    • Tobias Grosser's avatar
      Use -polly-codegen-isl in isl-codegen test · 88640d2b
      Tobias Grosser authored
      
      
      Reported-by: default avatarSebastian Pop <spop@codeaurora.org>
      llvm-svn: 201902
      88640d2b
    • Warren Hunt's avatar
      Reapply 201734 but with appropriate gcc compatibility · 20e4a5d2
      Warren Hunt authored
      Because GCC incorrectly defines _mm_prefetch to take anything that casts 
      to void*, people have started using that behavior.  The previous patch 
      that made _mm_prefetch actually take a const char * broke compatibility 
      with existing code.  This update to the patch leaves the macro that 
      defines _mm_prefetch with the (void*) cast when _MSC_VER is not defined.
      
      llvm-svn: 201901
      20e4a5d2
  2. Feb 21, 2014
Loading