Skip to content
  1. May 21, 2010
    • Jakob Stoklund Olesen's avatar
      Teach VirtRegRewriter to handle spilling in instructions that have multiple · a648c6a7
      Jakob Stoklund Olesen authored
      definitions of the virtual register.
      
      This happens when spilling the registers produced by REG_SEQUENCE:
      
      %reg1047:5<def>, %reg1047:6<def>, %reg1047:7<def> = VLD3d8 %reg1033, 0, pred:14, pred:%reg0
      
      The rewriter would spill the register multiple times, dead store elimination
      tried to keep up, but ended up cutting the branch it was sitting on.
      
      llvm-svn: 104321
      a648c6a7
  2. May 11, 2010
  3. May 06, 2010
  4. Apr 29, 2010
  5. Apr 07, 2010
  6. Apr 06, 2010
  7. Mar 30, 2010
  8. Mar 26, 2010
  9. Mar 12, 2010
  10. Mar 11, 2010
  11. Feb 18, 2010
  12. Feb 13, 2010
    • Jakob Stoklund Olesen's avatar
      Fix PR6283. · b659c76c
      Jakob Stoklund Olesen authored
      When coalescing with a physreg, remember to add imp-def and imp-kill when
      dealing with sub-registers.
      
      Also fix a related bug in VirtRegRewriter where substitutePhysReg may
      reallocate the operand list on an instruction and invalidate the reg_iterator.
      This can happen when a register is mentioned twice on the same instruction.
      
      llvm-svn: 96072
      b659c76c
  13. Feb 10, 2010
  14. Feb 09, 2010
  15. Jan 06, 2010
  16. Jan 05, 2010
  17. Dec 03, 2009
  18. Nov 20, 2009
  19. Nov 18, 2009
  20. Nov 14, 2009
  21. Nov 12, 2009
    • David Greene's avatar
      · 7cf326ae
      David Greene authored
      Set the ReloadReuse AsmPrinter flag where appropriate.
      
      llvm-svn: 87030
      7cf326ae
  22. Oct 29, 2009
  23. Oct 28, 2009
    • Dale Johannesen's avatar
      When we generate spill code, then decide we don't need · 14f162d9
      Dale Johannesen authored
      to spill after all, we weren't handling 2-instruction
      spill sequences correctly (PPC Altivec).  We need to
      remove the store in this case.  Removing the other
      instruction(s) would be goodness but is not needed for
      correctness, and isn't done here.  7331562.
      
      llvm-svn: 85437
      14f162d9
  24. Oct 26, 2009
    • Evan Cheng's avatar
      - Revert some changes from 85044, 85045, and 85047 that broke x86_64 tests and · b81cb2a9
      Evan Cheng authored
        bootstrapping. It's not safe to leave identity subreg_to_reg and insert_subreg
        around.
      - Relax register scavenging to allow use of partially "not-live" registers. It's
        common for targets to operate on registers where the top bits are undef. e.g.
        s0 =
        d0 = insert_subreg d0<undef>, s0, 1
        ...
           = d0
        When the insert_subreg is eliminated by the coalescer, the scavenger used to
        complain. The previous fix was to keep to insert_subreg around. But that's
        brittle and it's overly conservative when we want to use the scavenger to 
        allocate registers. It's actually legal and desirable for other instructions
        to use the "undef" part of d0. e.g.
        s0 =
        d0 = insert_subreg d0<undef>, s0, 1
        ...
        s1 =
           = s1
           = d0
        We probably need add a "partial-undef" marker on machine operand so the
        machine verifier would not complain.
      
      llvm-svn: 85091
      b81cb2a9
  25. Oct 25, 2009
  26. Oct 12, 2009
  27. Sep 06, 2009
  28. Sep 03, 2009
    • Lang Hames's avatar
      · 0b3720b3
      Lang Hames authored
      Fixed a test that ensures the LocalRewriter does not attempt to
      avoid reloads by reusing clobbered registers.
      
      This was causing issues in 256.bzip2 when compiled with PIC for
      a while (starting at r78217), though the problem has since been masked. 
      
      llvm-svn: 80872
      0b3720b3
  29. Aug 23, 2009
  30. Aug 15, 2009
  31. Aug 07, 2009
Loading