Skip to content
  1. Jan 28, 2013
    • Bill Schmidt's avatar
      This patch addresses bug 15031. · 2e4ae4e1
      Bill Schmidt authored
      The common code in the post-RA scheduler to break anti-dependencies on the
      critical path contained a flaw.  In the reported case, an anti-dependency
      between the overlapping registers %X4 and %R4 exists:
      
      	%X29<def> = OR8 %X4, %X4
      	%R4<def>, %X3<def,dead,tied3> = LBZU 1, %X3<kill,tied1>
      
      The unpatched code breaks the dependency by replacing %R4 and its uses
      with %R3, the first register on the available list.  However, %R3 and
      %X3 overlap, so this creates two overlapping definitions on the same
      instruction.
      
      The fix is straightforward, preventing selection of a register that
      overlaps any other defined register on the same instruction.
      
      The test case is reduced from the bug report, and verifies that we no
      longer produce "lbzu 3, 1(3)" when breaking this anti-dependency.
      
      llvm-svn: 173706
      2e4ae4e1
  2. Dec 04, 2012
  3. Jun 06, 2012
  4. Mar 17, 2012
  5. Jun 16, 2011
  6. Jun 02, 2011
  7. Feb 09, 2011
  8. Feb 08, 2011
  9. Nov 02, 2010
  10. Jul 15, 2010
  11. Jun 16, 2010
  12. Apr 20, 2010
  13. Jan 06, 2010
  14. Nov 20, 2009
  15. Nov 03, 2009
  16. Oct 28, 2009
  17. Oct 26, 2009
Loading