Skip to content
  1. Feb 02, 2008
    • Evan Cheng's avatar
      SDIsel processes llvm.dbg.declare by recording the variable debug information... · efd142a9
      Evan Cheng authored
      SDIsel processes llvm.dbg.declare by recording the variable debug information descriptor and its corresponding stack frame index in MachineModuleInfo. This only works if the local variable is "homed" in the stack frame. It does not work for byval parameter, etc.
      Added ISD::DECLARE node type to represent llvm.dbg.declare intrinsic. Now the intrinsic calls are lowered into a SDNode and lives on through out the codegen passes.
      For now, since all the debugging information recording is done at isel time, when a ISD::DECLARE node is selected, it has the side effect of also recording the variable. This is a short term solution that should be fixed in time.
      
      llvm-svn: 46659
      efd142a9
  2. Jan 31, 2008
  3. Jan 30, 2008
  4. Jan 29, 2008
    • Dan Gohman's avatar
      Update this file for 2.0 syntax. · d63d9fea
      Dan Gohman authored
      llvm-svn: 46512
      d63d9fea
    • Scott Michel's avatar
      Fix to bug 1951: tblgen gratuitously renames variables when no temporary was · 167502a5
      Scott Michel authored
      generated. This feature would only show up in fairly complex patterns, such
      as this one in CellSPU:
      
        def : Pat<(add (SPUhi tconstpool:$in, 0), (SPUlo tconstpool:$in, 0)),
      	    (IOHLlo (ILHUhi tconstpool:$in), tconstpool:$in)>;
      
      which generated the following emit code:
      
      SDNode *Emit_0(const SDOperand &N, unsigned Opc0, unsigned Opc1, MVT::ValueType VT0, MVT::ValueType VT1) DISABLE_INLINE {
        SDOperand N0 = N.getOperand(0);
        SDOperand N00 = N0.getOperand(0);
        SDOperand N01 = N0.getOperand(1);
        SDOperand N1 = N.getOperand(1);
        SDOperand N10 = N1.getOperand(0);
        SDOperand N11 = N1.getOperand(1);
        SDOperand Tmp3(CurDAG->getTargetNode(Opc0, VT0, N00), 0);
        return CurDAG->SelectNodeTo(N.Val, Opc1, VT1, Tmp3, Tmp2); /* Tmp2 s/b N00 */
      }
      
      Tested against the test suites without incident.
      
      llvm-svn: 46487
      167502a5
  5. Jan 22, 2008
  6. Jan 21, 2008
  7. Jan 18, 2008
  8. Jan 17, 2008
  9. Jan 15, 2008
  10. Jan 14, 2008
  11. Jan 12, 2008
  12. Jan 11, 2008
    • Chris Lattner's avatar
      Simplify the side effect stuff a bit more and make licm/sinking · c8226f32
      Chris Lattner authored
      both work right according to the new flags.
      
      This removes the TII::isReallySideEffectFree predicate, and adds
      TII::isInvariantLoad. 
      
      It removes NeverHasSideEffects+MayHaveSideEffects and adds
      UnmodeledSideEffects as machine instr flags.  Now the clients
      can decide everything they need.
      
      I think isRematerializable can be implemented in terms of the
      flags we have now, though I will let others tackle that.
      
      llvm-svn: 45843
      c8226f32
  13. Jan 10, 2008
  14. Jan 08, 2008
  15. Jan 07, 2008
  16. Jan 06, 2008
Loading