Skip to content
  1. Apr 24, 2009
    • Nate Begeman's avatar
      PR2957 · bb881d66
      Nate Begeman authored
      ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle
      mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes
      as the shuffle mask.  A value of -1 represents UNDEF.
      
      In addition to eliminating the creation of illegal BUILD_VECTORS just to 
      represent shuffle masks, we are better about canonicalizing the shuffle mask,
      resulting in substantially better code for some classes of shuffles.
      
      A clean up of x86 shuffle code, and some canonicalizing in DAGCombiner is next.
      
      llvm-svn: 69952
      bb881d66
    • Dan Gohman's avatar
      Fix spurious indentation in a comment. · 870c33f1
      Dan Gohman authored
      llvm-svn: 69934
      870c33f1
  2. Apr 23, 2009
  3. Apr 22, 2009
    • Sanjiv Gupta's avatar
      · 107b2818
      Sanjiv Gupta authored
      Make the function begin label start after ther data pointer.
      The address of data frame for function can be obtained by subtracting 2 from the function begin label.
      
      llvm-svn: 69801
      107b2818
  4. Apr 21, 2009
  5. Apr 20, 2009
  6. Apr 18, 2009
  7. Apr 17, 2009
  8. Apr 16, 2009
  9. Apr 15, 2009
  10. Apr 14, 2009
  11. Apr 13, 2009
    • Dan Gohman's avatar
      Rename COPY_TO_SUBCLASS to COPY_TO_REGCLASS, and generalize · 6c142630
      Dan Gohman authored
      it accordingly. Thanks to Jakob Stoklund Olesen for pointing
      out how this might be useful.
      
      llvm-svn: 68986
      6c142630
    • Devang Patel's avatar
      · 80be3511
      Devang Patel authored
      Reapply 68847.
      Now debug_inlined section is covered by TAI->doesDwarfUsesInlineInfoSection(), which is false by default.
      
      llvm-svn: 68964
      80be3511
    • Dan Gohman's avatar
      Implement x86 h-register extract support. · 57d6bd36
      Dan Gohman authored
       - Add patterns for h-register extract, which avoids a shift and mask,
         and in some cases a temporary register.
       - Add address-mode matching for turning (X>>(8-n))&(255<<n), where
         n is a valid address-mode scale value, into an h-register extract
         and a scaled-offset address.
       - Replace X86's MOV32to32_ and related instructions with the new
         target-independent COPY_TO_SUBREG instruction.
      
      On x86-64 there are complicated constraints on h registers, and
      CodeGen doesn't currently provide a high-level way to express all of them,
      so they are handled with a bunch of special code. This code currently only
      supports extracts where the result is used by a zero-extend or a store,
      though these are fairly common.
      
      These transformations are not always beneficial; since there are only
      4 h registers, they sometimes require extra move instructions, and
      this sometimes increases register pressure because it can force out
      values that would otherwise be in one of those registers. However,
      this appears to be relatively uncommon.
      
      llvm-svn: 68962
      57d6bd36
    • Dan Gohman's avatar
      Remove x86's special-case handling for ISD::TRUNCATE and · f20462c2
      Dan Gohman authored
      ISD::SIGN_EXTEND_INREG. Tablegen-generated code can handle
      these cases, and the scheduling issues observed earlier
      appear to be resolved now.
      
      llvm-svn: 68959
      f20462c2
    • Dan Gohman's avatar
      Fix copy+pastos in comments. · e9432dcc
      Dan Gohman authored
      llvm-svn: 68958
      e9432dcc
    • Dan Gohman's avatar
      List the l registers before h registers, for consistency. · 9e3eb7bc
      Dan Gohman authored
      llvm-svn: 68954
      9e3eb7bc
Loading