Skip to content
  1. May 16, 2012
  2. May 15, 2012
  3. May 14, 2012
  4. May 12, 2012
  5. May 11, 2012
  6. May 10, 2012
  7. May 08, 2012
  8. May 07, 2012
  9. May 05, 2012
  10. May 04, 2012
  11. May 03, 2012
    • Evan Cheng's avatar
      Fix two-address pass's aggressive instruction commuting heuristics. It's meant · b64e7b77
      Evan Cheng authored
      to catch cases like:
       %reg1024<def> = MOV r1
       %reg1025<def> = MOV r0
       %reg1026<def> = ADD %reg1024, %reg1025
       r0            = MOV %reg1026
      
      By commuting ADD, it let coalescer eliminate all of the copies. However, there
      was a bug in the heuristics where it ended up commuting the ADD in:
      
       %reg1024<def> = MOV r0
       %reg1025<def> = MOV 0
       %reg1026<def> = ADD %reg1024, %reg1025
       r0            = MOV %reg1026
      
      That did no benefit but rather ensure the last MOV would not be coalesced.
      
      rdar://11355268
      
      llvm-svn: 156048
      b64e7b77
    • Andrew Trick's avatar
      Added TargetRegisterInfo::getAllocatableClass. · 32aea358
      Andrew Trick authored
      The ensures that virtual registers always belong to an allocatable class.
      If your target attempts to create a vreg for an operand that has no
      allocatable register subclass, you will crash quickly.
      
      This ensures that targets define register classes as intended.
      
      llvm-svn: 156046
      32aea358
Loading