Skip to content
  1. Mar 23, 2013
    • Jakob Stoklund Olesen's avatar
      Use direct types in Sparc def : Pat patterns. · b1f7c287
      Jakob Stoklund Olesen authored
      The SelectionDAG graph has MVT type labels, not register classes, so
      this makes it clearer what is happening.
      
      This notation is also robust against adding more types to the IntRegs
      register class.
      
      llvm-svn: 177829
      b1f7c287
    • Hal Finkel's avatar
      Cleanup some unused reg. scavenger parameters in PPCRegisterInfo · c6eaa4ce
      Hal Finkel authored
      These spilling functions will eventually make use of the register scavenger,
      however, they'll do so by taking advantage of PEI's virtual-register-based
      delayed scavenging mechanism. As a result, these function parameters will not
      be used, and can be removed.
      
      No functionality change intended.
      
      llvm-svn: 177827
      c6eaa4ce
    • Hal Finkel's avatar
      Remove dead PPC LR spilling code · 794e05b0
      Hal Finkel authored
      The LR register is unconditionally reserved, and its spilling and restoration
      is handled by the prologue/epilogue code. As a result, it is never explicitly
      spilled by the register allocator.
      
      No functionality change intended.
      
      llvm-svn: 177823
      794e05b0
    • Owen Anderson's avatar
      Remove the type legality check from the SelectionDAGBuilder when it lowers... · c81616b0
      Owen Anderson authored
      Remove the type legality check from the SelectionDAGBuilder when it lowers @llvm.fmuladd to ISD::FMA nodes.
      Performing this check unilaterally prevented us from generating FMAs when the incoming IR contained illegal vector types which would eventually be legalized to underlying types that *did* support FMA.
      For example, an @llvm.fmuladd on an OpenCL float16 should become a sequence of float4 FMAs, not float4 fmul+fadd's.
      
      NOTE: Because we still call the target-specific profitability hook, individual targets can reinstate the old behavior, if desired, by simply performing the legality check inside their callback hook.  They can also perform more sophisticated legality checks, if, for example, some illegal vector types can be productively implemented as FMAs, but not others.
      llvm-svn: 177820
      c81616b0
    • Michael Gottesman's avatar
      Change method name ClearRefCount => ClearKnownPositiveRefCount to match the... · 764b1cfc
      Michael Gottesman authored
      Change method name ClearRefCount => ClearKnownPositiveRefCount to match the name of the member that it is modifying.
      
      llvm-svn: 177818
      764b1cfc
    • Michael Gottesman's avatar
      Changed the method name PtrState.IsKnownIncremented() to PtrState.HasKnownPositiveRefCount(). · 07beea47
      Michael Gottesman authored
      Now said method matches namewise every other method which refers to
      the member KnownPositiveRefCount of the class PtrState.
      
      llvm-svn: 177816
      07beea47
    • Hal Finkel's avatar
      Fix comparison of mixed signedness · 446122ed
      Hal Finkel authored
      177774 broke the lld-x86_64-darwin11 builder; error:
      error: comparison of integers of different signs: 'int' and 'size_type' (aka 'unsigned long')
        for (SI = 0; SI < Scavenged.size(); ++SI)
                     ~~ ^ ~~~~~~~~~~~~~~~~
      
      Fix this by making SI also unsigned.
      
      llvm-svn: 177780
      446122ed
    • Hal Finkel's avatar
      Allow the register scavenger to spill multiple registers · 9e331c2f
      Hal Finkel authored
      This patch lets the register scavenger make use of multiple spill slots in
      order to guarantee that it will be able to provide multiple registers
      simultaneously.
      
      To support this, the RS's API has changed slightly: setScavengingFrameIndex /
      getScavengingFrameIndex have been replaced by addScavengingFrameIndex /
      isScavengingFrameIndex / getScavengingFrameIndices.
      
      In forthcoming commits, the PowerPC backend will use this capability in order
      to implement the spilling of condition registers, and some special-purpose
      registers, without relying on r0 being reserved. In some cases, spilling these
      registers requires two GPRs: one for addressing and one to hold the value being
      transferred.
      
      llvm-svn: 177774
      9e331c2f
  2. Mar 22, 2013
  3. Mar 21, 2013
Loading