Skip to content
  1. Oct 13, 2011
  2. Oct 12, 2011
  3. Oct 11, 2011
  4. Oct 10, 2011
  5. Oct 08, 2011
  6. Oct 07, 2011
  7. Oct 06, 2011
  8. Oct 05, 2011
    • Jakob Stoklund Olesen's avatar
      Remove unused DstSubIdx argument. · 3abead76
      Jakob Stoklund Olesen authored
      llvm-svn: 141214
      3abead76
    • Jakob Stoklund Olesen's avatar
      Simplify EXTRACT_SUBREG emission. · f7957a98
      Jakob Stoklund Olesen authored
      EXTRACT_SUBREG is emitted as %dst = COPY %src:sub, so there is no need to
      constrain the %dst register class.  RegisterCoalescer will apply the
      necessary constraints if it decides to eliminate the COPY.
      
      The %src register class does need to be constrained to something with
      the right sub-registers, though.  This is currently done manually with
      COPY_TO_REGCLASS nodes.  They can possibly be removed after this patch.
      
      llvm-svn: 141207
      f7957a98
    • Jakob Stoklund Olesen's avatar
      Simplify INSERT_SUBREG emission. · 8ff52c41
      Jakob Stoklund Olesen authored
      The register class created by INSERT_SUBREG and SUBREG_TO_REG must be
      legal and support the SubIdx sub-registers.
      
      The new getSubClassWithSubReg() hook can compute that.
      
      This may create INSERT_SUBREG instructions defining a larger register
      class than the sub-register being inserted.  That is OK,
      RegisterCoalescer will constrain the register class as needed when it
      eliminates the INSERT_SUBREG instructions.
      
      llvm-svn: 141198
      8ff52c41
    • Jakob Stoklund Olesen's avatar
      Add a FIXME. · ccdfbfb5
      Jakob Stoklund Olesen authored
      TwoAddressInstructionPass should annotate instructions with <undef>
      flags when it lower REG_SEQUENCE instructions.  LiveIntervals should not
      be in the business of modifying code (except for kill flags, perhaps).
      
      llvm-svn: 141187
      ccdfbfb5
    • Jakob Stoklund Olesen's avatar
      Also add <imp-use,kill> flags for redefined super-registers. · d5d39bb0
      Jakob Stoklund Olesen authored
      For example:
      
        %vreg10:dsub_0<def,undef> = COPY %vreg1
        %vreg10:dsub_1<def> = COPY %vreg2
      
      is rewritten as:
      
        %D2<def> = COPY %D0, %Q1<imp-def>
        %D3<def> = COPY %D1, %Q1<imp-use,kill>, %Q1<imp-def>
      
      The first COPY doesn't care about the previous value of %Q1, so it
      doesn't read that register.
      
      The second COPY is a partial redefinition of %Q1, so it implicitly kills
      and redefines that register.
      
      This makes it possible to recognize instructions that can harmlessly
      clobber the full super-register.  The write and don't read the
      super-register.
      
      llvm-svn: 141139
      d5d39bb0
    • Jakob Stoklund Olesen's avatar
      Also add <def,undef> flags when coalescing sub-registers. · 9d5bda9b
      Jakob Stoklund Olesen authored
      RegisterCoalescer can create sub-register defs when it is joining a
      register with a sub-register.  Add <undef> flags to these new
      sub-register defs where appropriate.
      
      llvm-svn: 141138
      9d5bda9b
    • Owen Anderson's avatar
      Teach the MC to output code/data region marker labels in MachO and ELF modes. ... · 0ca562ec
      Owen Anderson authored
      Teach the MC to output code/data region marker labels in MachO and ELF modes.  These are used by disassemblers to provide better disassembly, particularly on targets like ARM Thumb that like to intermingle data in the TEXT segment.
      
      llvm-svn: 141135
      0ca562ec
    • Bill Wendling's avatar
Loading