Skip to content
  1. Sep 24, 2009
    • Chris Lattner's avatar
      unconditionally compute MMI even if the target doesn't support EH or Debug... · 87d8f2b9
      Chris Lattner authored
      unconditionally compute MMI even if the target doesn't support EH or Debug info, because the target may use it for other things, this fixes PR5036
      
      llvm-svn: 82684
      87d8f2b9
    • Chris Lattner's avatar
      reapply r82348 with a fix, thanks Jeffrey. · 4e37f877
      Chris Lattner authored
      llvm-svn: 82683
      4e37f877
    • Evan Cheng's avatar
      Fix PR5024 with a big hammer: disable the double-def assertion in the scavenger. · 26ea28eb
      Evan Cheng authored
      LiveVariables add implicit kills to correctly track partial register kills. This works well enough and is fairly accurate. But coalescer can make it impossible to maintain these markers. e.g.
      
              BL <ga:sss1>, %R0<kill,undef>, %S0<kill>, %R0<imp-def>, %R1<imp-def,dead>, %R2<imp-def,dead>, %R3<imp-def,dead>, %R12<imp-def,dead>, %LR<imp-def,dead>, %D0<imp-def>, ...
      ...
      	%reg1031<def> = FLDS <cp#1>, 0, 14, %reg0, Mem:LD4[ConstantPool]
      ...
         	%S0<def> = FCPYS %reg1031<kill>, 14, %reg0, %D0<imp-use,kill>
      
      When reg1031 and S0 are coalesced, the copy (FCPYS) will be eliminated the the implicit-kill of D0 is lost. In this case it's possible to move the marker to the FLDS. But in many cases, this is not possible. Suppose
      
      	%reg1031<def> = FOO <cp#1>, %D0<imp-def>
      ...
         	%S0<def> = FCPYS %reg1031<kill>, 14, %reg0, %D0<imp-use,kill>
      
      When FCPYS goes away, the definition of S0 is the "FOO" instruction. However, transferring the D0 implicit-kill to FOO doesn't work since it is the def of D0 itself. We need to fix this in another time by introducing a "kill" pseudo instruction to track liveness.
      
      Disabling the assertion is not ideal, but machine verifier is doing that job now. It's important to know double-def is not a miscomputation since it means a register should be free but it's not tracked as free. It's a performance issue instead.
      
      llvm-svn: 82677
      26ea28eb
    • Evan Cheng's avatar
      Clean up LiveVariables and change how it deals with partial updates and kills.... · a21aac38
      Evan Cheng authored
      Clean up LiveVariables and change how it deals with partial updates and kills. This also eliminate the horrible check which scan forward to the end of the basic block. It should be faster and more accurate.
      
      llvm-svn: 82676
      a21aac38
    • Jeffrey Yasskin's avatar
      Roll back r82348, which introduced an infinite loop in ParseCStringVector() that · a75d6bf3
      Jeffrey Yasskin authored
      a trivial unittest would have caught.  This revision also adds the trivial
      unittest.
      
      llvm-svn: 82675
      a75d6bf3
    • Dale Johannesen's avatar
      A minor improvment in accuracy to inline cost · fb1b55bc
      Dale Johannesen authored
      computation, and some cosmetics.
      
      llvm-svn: 82660
      fb1b55bc
  2. Sep 23, 2009
  3. Sep 22, 2009
Loading