Skip to content
  1. Apr 15, 2009
  2. Apr 14, 2009
  3. 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
    • Bob Wilson's avatar
      Refactor some code in SelectionDAGLegalize::ExpandBUILD_VECTOR. · f6c21953
      Bob Wilson authored
      llvm-svn: 68981
      f6c21953
    • Evan Cheng's avatar
      PR3934: Fix a bogus two-address pass assertion. · f0843803
      Evan Cheng authored
      llvm-svn: 68979
      f0843803
    • Devang Patel's avatar
      Right now, Debugging information to encode scopes (DW_TAG_lexical_block)... · 0431504f
      Devang Patel authored
      Right now, Debugging information to encode scopes (DW_TAG_lexical_block) relies on DBG_LABEL. Unfortunately this intefers with the quality of optimized code. 
      This patch updates dwarf writer to encode scoping information in DWARF only in FastISel mode.
      
      llvm-svn: 68973
      0431504f
    • 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
      Add a new TargetInstrInfo MachineInstr opcode, COPY_TO_SUBCLASS. · 60a446ab
      Dan Gohman authored
      This will be used to replace things like X86's MOV32to32_.
      
      Enhance ScheduleDAGSDNodesEmit to be more flexible and robust
      in the presense of subregister superclasses and subclasses. It
      can now cope with the definition of a virtual register being in
      a subclass of a use.
      
      Re-introduce the code for recording register superreg classes and
      subreg classes. This is needed because when subreg extracts and
      inserts get coalesced away, the virtual registers are left in
      the correct subclass.
      
      llvm-svn: 68961
      60a446ab
    • 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
      Don't abort on an aliasing physical register that does not have · 1d504079
      Dan Gohman authored
      a live interval. This is needed for some upcoming subreg changes.
      
      llvm-svn: 68956
      1d504079
    • Dan Gohman's avatar
      When assigning a physical register to a MachineOperand, set · 4d62ff14
      Dan Gohman authored
      the subreg field to 0, since the subreg field is only used
      for virtual register subregs. This doesn't change
      current functionality; it just eliminates bogus noise from
      debug output.
      
      llvm-svn: 68955
      4d62ff14
Loading