Skip to content
  1. Sep 17, 2008
    • Dan Gohman's avatar
      Add a new MachineInstr-level DCE pass. It is very simple, and is intended to · c24cd015
      Dan Gohman authored
      be used with fast-isel.
      
      llvm-svn: 56268
      c24cd015
    • Evan Cheng's avatar
      When converting a CopyFromReg to a copy instruction, use the register class of... · a904f466
      Evan Cheng authored
      When converting a CopyFromReg to a copy instruction, use the register class of its uses to determine the right destination register class of the copy. This is important for targets where a physical register may belong to multiple register classes.
      
      llvm-svn: 56258
      a904f466
    • Dan Gohman's avatar
      Change SelectionDAG::getConstantPool to always set the alignment of the · 64d6c6fe
      Dan Gohman authored
      ConstantPoolSDNode, using the target's preferred alignment for the
      constant type.
      
      In LegalizeDAG, when performing loads from the constant pool, the
      ConstantPoolSDNode's alignment is used in the calls to getLoad and
      getExtLoad.
      
      This change prevents SelectionDAG::getLoad/getExtLoad from incorrectly
      choosing the ABI alignment for constant pool loads when Alignment == 0.
      The incorrect alignment is only a performance issue when ABI alignment
      does not equal preferred alignment (i.e., on x86 it was generating
      MOVUPS instead of MOVAPS for v4f32 constant loads when the default ABI
      alignment for 128bit vectors is forced to 1 byte.)
      
      Patch by Paul Redmond!
      
      llvm-svn: 56253
      64d6c6fe
  2. Sep 16, 2008
  3. Sep 15, 2008
  4. Sep 14, 2008
  5. Sep 13, 2008
    • Dan Gohman's avatar
      Remove isImm(), isReg(), and friends, in favor of · 38453eeb
      Dan Gohman authored
      isImmediate(), isRegister(), and friends, to avoid confusion
      about having two different names with the same meaning. I'm
      not attached to the longer names, and would be ok with
      changing to the shorter names if others prefer it.
      
      llvm-svn: 56189
      38453eeb
    • Dan Gohman's avatar
      Define CallSDNode, an SDNode subclass for use with ISD::CALL. · d3fe174c
      Dan Gohman authored
      Currently it just holds the calling convention and flags
      for isVarArgs and isTailCall.
      
      And it has several utility methods, which eliminate magic
      5+2*i and similar index computations in several places.
      
      CallSDNodes are not CSE'd. Teach UpdateNodeOperands to handle
      nodes that are not CSE'd gracefully.
      
      llvm-svn: 56183
      d3fe174c
  6. Sep 12, 2008
    • Evan Cheng's avatar
      On some targets, non-move instructions can become move instructions because of coalescing. e.g. · 3c12fc43
      Evan Cheng authored
      vr2 = OR vr0, vr1
      =>
      vr2 = OR vr1, vr1   // after coalescing vr0 with vr1
      
      Update the value# of the destination register with the copy instruction if that happens.
      
      llvm-svn: 56165
      3c12fc43
    • Dan Gohman's avatar
      Change ConstantSDNode and ConstantFPSDNode to use ConstantInt* and · ec270fb6
      Dan Gohman authored
      ConstantFP* instead of APInt and APFloat directly.
      
      This reduces the amount of time to create ConstantSDNode
      and ConstantFPSDNode nodes when ConstantInt* and ConstantFP*
      respectively are already available, as is the case in
      SelectionDAGBuild.cpp. Also, it reduces the amount of time
      to legalize constants into constant pools, and the amount of
      time to add ConstantFP operands to MachineInstrs, due to
      eliminating ConstantInt::get and ConstantFP::get calls.
      
      It increases the amount of work needed to create new constants
      in cases where the client doesn't already have a ConstantInt*
      or ConstantFP*, such as legalize expanding 64-bit integer constants
      to 32-bit constants. And it adds a layer of indirection for the
      accessor methods. But these appear to be outweight by the benefits
      in most cases.
      
      It will also make it easier to make ConstantSDNode and
      ConstantFPNode more consistent with ConstantInt and ConstantFP.
      
      llvm-svn: 56162
      ec270fb6
    • Dale Johannesen's avatar
      Pass "earlyclobber" bit through to machine · 1f3ab868
      Dale Johannesen authored
      representation; coalescer and RA need to know
      about it.  No functional change.
      
      llvm-svn: 56161
      1f3ab868
    • Dan Gohman's avatar
      Rename ConstantSDNode::getValue to getZExtValue, for consistency · effb8944
      Dan Gohman authored
      with ConstantInt. This led to fixing a bug in TargetLowering.cpp
      using getValue instead of getAPIntValue.
      
      llvm-svn: 56159
      effb8944
    • Dale Johannesen's avatar
      The sequence for ppcf128 compares was not IEEE · baf6762e
      Dale Johannesen authored
      safe in the presence of NaNs.
      
      llvm-svn: 56136
      baf6762e
  7. Sep 11, 2008
  8. Sep 10, 2008
Loading