Rename ISD::LOCATION to ISD::DBG_STOPPOINT to better reflect its
authorDan Gohman <gohman@apple.com>
Mon, 30 Jun 2008 20:59:49 +0000 (20:59 +0000)
committerDan Gohman <gohman@apple.com>
Mon, 30 Jun 2008 20:59:49 +0000 (20:59 +0000)
purpose, and give it a custom SDNode subclass so that it doesn't
need to have line number, column number, filename string, and
directory string, all existing as individual SDNodes to be the
operands.

This was the only user of ISD::STRING, StringSDNode, etc., so
remove those and some associated code.

This makes stop-points considerably easier to read in
-view-legalize-dags output, and reduces overhead (creating new
nodes and copying std::strings into them) on code containing
debugging information.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52924 91177308-0d34-0410-b5e6-96231b3b80d8

15 files changed:
include/llvm/CodeGen/SelectionDAG.h
include/llvm/CodeGen/SelectionDAGNodes.h
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/Alpha/AlphaISelLowering.cpp
lib/Target/CellSPU/SPUISelLowering.cpp
lib/Target/IA64/IA64ISelLowering.cpp
lib/Target/Mips/MipsISelLowering.cpp
lib/Target/PIC16/PIC16ISelLowering.cpp
lib/Target/PowerPC/PPCISelLowering.cpp
lib/Target/Sparc/SparcISelLowering.cpp
lib/Target/X86/X86ISelLowering.cpp

index dee6bc746e7ea3e1c884ee230ed61167c92e67b6..345864de961f13afde420c7cdab83951bf0232fe 100644 (file)
@@ -173,7 +173,6 @@ public:
   //===--------------------------------------------------------------------===//
   // Node creation methods.
   //
-  SDOperand getString(const std::string &Val);
   SDOperand getConstant(uint64_t Val, MVT VT, bool isTarget = false);
   SDOperand getConstant(const APInt &Val, MVT VT, bool isTarget = false);
   SDOperand getIntPtrConstant(uint64_t Val, bool isTarget = false);
@@ -224,6 +223,8 @@ public:
   SDOperand getArgFlags(ISD::ArgFlagsTy Flags);
   SDOperand getValueType(MVT);
   SDOperand getRegister(unsigned Reg, MVT VT);
+  SDOperand getDbgStopPoint(SDOperand Root, unsigned Line, unsigned Col,
+                            const CompileUnitDesc *CU);
 
   SDOperand getCopyToReg(SDOperand Chain, unsigned Reg, SDOperand N) {
     return getNode(ISD::CopyToReg, MVT::Other, Chain,
@@ -635,7 +636,6 @@ private:
   std::map<MVT, SDNode*, MVT::compareRawBits> ExtendedValueTypeNodes;
   StringMap<SDNode*> ExternalSymbols;
   StringMap<SDNode*> TargetExternalSymbols;
-  StringMap<StringSDNode*> StringNodes;
 };
 
 template <> struct GraphTraits<SelectionDAG*> : public GraphTraits<SDNode*> {
index 7261f4e102c7a59b8de71bb78029d0f652b77265..addf35580602ef444e23346f74b122131f23f90b 100644 (file)
@@ -37,6 +37,7 @@ class GlobalValue;
 class MachineBasicBlock;
 class MachineConstantPoolValue;
 class SDNode;
+class CompileUnitDesc;
 template <typename T> struct DenseMapInfo;
 template <typename T> struct simplify_type;
 template <typename T> struct ilist_traits;
@@ -82,7 +83,7 @@ namespace ISD {
     AssertSext, AssertZext,
 
     // Various leaf nodes.
-    STRING, BasicBlock, VALUETYPE, ARG_FLAGS, CONDCODE, Register,
+    BasicBlock, VALUETYPE, ARG_FLAGS, CONDCODE, Register,
     Constant, ConstantFP,
     GlobalAddress, GlobalTLSAddress, FrameIndex,
     JumpTable, ConstantPool, ExternalSymbol,
@@ -547,11 +548,11 @@ namespace ISD {
     // HANDLENODE node - Used as a handle for various purposes.
     HANDLENODE,
 
-    // LOCATION - This node is used to represent a source location for debug
-    // info.  It takes token chain as input, then a line number, then a column
-    // number, then a filename, then a working dir.  It produces a token chain
-    // as output.
-    LOCATION,
+    // DBG_STOPPOINT - This node is used to represent a source location for
+    // debug info.  It takes token chain as input, and carries a line number,
+    // column number, and a pointer to a CompileUnitDesc object identifying
+    // the containing compilation unit.  It produces a token chain as output.
+    DBG_STOPPOINT,
     
     // DEBUG_LOC - This node is used to represent source line information
     // embedded in the code.  It takes a token chain as input, then a line
@@ -1552,22 +1553,6 @@ class AtomicSDNode : public MemSDNode {
   }
 };
 
-class StringSDNode : public SDNode {
-  std::string Value;
-  virtual void ANCHOR();  // Out-of-line virtual method to give class a home.
-protected:
-  friend class SelectionDAG;
-  explicit StringSDNode(const std::string &val)
-    : SDNode(ISD::STRING, getSDVTList(MVT::Other)), Value(val) {
-  }
-public:
-  const std::string &getValue() const { return Value; }
-  static bool classof(const StringSDNode *) { return true; }
-  static bool classof(const SDNode *N) {
-    return N->getOpcode() == ISD::STRING;
-  }
-};  
-
 class ConstantSDNode : public SDNode {
   APInt Value;
   virtual void ANCHOR();  // Out-of-line virtual method to give class a home.
@@ -1858,6 +1843,33 @@ public:
   }
 };
 
+class DbgStopPointSDNode : public SDNode {
+  SDUse Chain;
+  unsigned Line;
+  unsigned Column;
+  const CompileUnitDesc *CU;
+  virtual void ANCHOR();  // Out-of-line virtual method to give class a home.
+protected:
+  friend class SelectionDAG;
+  DbgStopPointSDNode(SDOperand ch, unsigned l, unsigned c,
+                     const CompileUnitDesc *cu)
+    : SDNode(ISD::DBG_STOPPOINT, getSDVTList(MVT::Other)),
+      Line(l), Column(c), CU(cu) {
+    Chain = ch;
+    InitOperands(&Chain, 1);
+  }
+public:
+
+  unsigned getLine() const { return Line; }
+  unsigned getColumn() const { return Column; }
+  const CompileUnitDesc *getCompileUnit() const { return CU; }
+
+  static bool classof(const DbgStopPointSDNode *) { return true; }
+  static bool classof(const SDNode *N) {
+    return N->getOpcode() == ISD::DBG_STOPPOINT;
+  }
+};
+
 class ExternalSymbolSDNode : public SDNode {
   const char *Symbol;
   virtual void ANCHOR();  // Out-of-line virtual method to give class a home.
index 3d01bb2fa054c461311c4fc12bb2547939a8646f..3665ee0128b762d52b11c2d42c4c248528ffb278 100644 (file)
@@ -849,7 +849,6 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
   case ISD::VALUETYPE:
   case ISD::SRCVALUE:
   case ISD::MEMOPERAND:
-  case ISD::STRING:
   case ISD::CONDCODE:
   case ISD::ARG_FLAGS:
     // Primitives must all be legal.
@@ -1075,11 +1074,11 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
     return Result.getValue(Op.ResNo);
   }    
 
-  case ISD::LOCATION:
-    assert(Node->getNumOperands() == 5 && "Invalid LOCATION node!");
+  case ISD::DBG_STOPPOINT:
+    assert(Node->getNumOperands() == 1 && "Invalid DBG_STOPPOINT node!");
     Tmp1 = LegalizeOp(Node->getOperand(0));  // Legalize the input chain.
     
-    switch (TLI.getOperationAction(ISD::LOCATION, MVT::Other)) {
+    switch (TLI.getOperationAction(ISD::DBG_STOPPOINT, MVT::Other)) {
     case TargetLowering::Promote:
     default: assert(0 && "This action is not supported yet!");
     case TargetLowering::Expand: {
@@ -1087,26 +1086,22 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
       bool useDEBUG_LOC = TLI.isOperationLegal(ISD::DEBUG_LOC, MVT::Other);
       bool useLABEL = TLI.isOperationLegal(ISD::LABEL, MVT::Other);
       
+      const DbgStopPointSDNode *DSP = cast<DbgStopPointSDNode>(Node);
       if (MMI && (useDEBUG_LOC || useLABEL)) {
-        const std::string &FName =
-          cast<StringSDNode>(Node->getOperand(3))->getValue();
-        const std::string &DirName = 
-          cast<StringSDNode>(Node->getOperand(4))->getValue();
-        unsigned SrcFile = MMI->RecordSource(DirName, FName);
+        const CompileUnitDesc *CompileUnit = DSP->getCompileUnit();
+        unsigned SrcFile = MMI->RecordSource(CompileUnit);
 
         SmallVector<SDOperand, 8> Ops;
         Ops.push_back(Tmp1);  // chain
-        SDOperand LineOp = Node->getOperand(1);
-        SDOperand ColOp = Node->getOperand(2);
+        unsigned Line = DSP->getLine();
+        unsigned Col = DSP->getColumn();
         
         if (useDEBUG_LOC) {
-          Ops.push_back(LineOp);  // line #
-          Ops.push_back(ColOp);  // col #
+          Ops.push_back(DAG.getConstant(Line, MVT::i32));  // line #
+          Ops.push_back(DAG.getConstant(Col, MVT::i32));   // col #
           Ops.push_back(DAG.getConstant(SrcFile, MVT::i32));  // source file id
           Result = DAG.getNode(ISD::DEBUG_LOC, MVT::Other, &Ops[0], Ops.size());
         } else {
-          unsigned Line = cast<ConstantSDNode>(LineOp)->getValue();
-          unsigned Col = cast<ConstantSDNode>(ColOp)->getValue();
           unsigned ID = MMI->RecordSourceLine(Line, Col, SrcFile);
           Ops.push_back(DAG.getConstant(ID, MVT::i32));
           Ops.push_back(DAG.getConstant(0, MVT::i32)); // a debug label
index 6456fa30e3f1a4ea78a94b78efc849312b0a4a5c..c364e1f737d3094b6e77f046f1be8d261665af21 100644 (file)
@@ -382,6 +382,13 @@ static void AddNodeIDNode(FoldingSetNodeID &ID, SDNode *N) {
   case ISD::Register:
     ID.AddInteger(cast<RegisterSDNode>(N)->getReg());
     break;
+  case ISD::DBG_STOPPOINT: {
+    const DbgStopPointSDNode *DSP = cast<DbgStopPointSDNode>(N);
+    ID.AddInteger(DSP->getLine());
+    ID.AddInteger(DSP->getColumn());
+    ID.AddPointer(DSP->getCompileUnit());
+    break;
+  }
   case ISD::SRCVALUE:
     ID.AddPointer(cast<SrcValueSDNode>(N)->getValue());
     break;
@@ -575,9 +582,6 @@ void SelectionDAG::RemoveNodeFromCSEMaps(SDNode *N) {
   bool Erased = false;
   switch (N->getOpcode()) {
   case ISD::HANDLENODE: return;  // noop.
-  case ISD::STRING:
-    Erased = StringNodes.erase(cast<StringSDNode>(N)->getValue());
-    break;
   case ISD::CONDCODE:
     assert(CondCodeNodes[cast<CondCodeSDNode>(N)->get()] &&
            "Cond code doesn't exist!");
@@ -738,15 +742,6 @@ SDOperand SelectionDAG::getZeroExtendInReg(SDOperand Op, MVT VT) {
                  getConstant(Imm, Op.getValueType()));
 }
 
-SDOperand SelectionDAG::getString(const std::string &Val) {
-  StringSDNode *&N = StringNodes[Val];
-  if (!N) {
-    N = new StringSDNode(Val);
-    AllNodes.push_back(N);
-  }
-  return SDOperand(N, 0);
-}
-
 SDOperand SelectionDAG::getConstant(uint64_t Val, MVT VT, bool isT) {
   MVT EltVT = VT.isVector() ? VT.getVectorElementType() : VT;
   return getConstant(APInt(EltVT.getSizeInBits(), Val), VT, isT);
@@ -1005,6 +1000,24 @@ SDOperand SelectionDAG::getRegister(unsigned RegNo, MVT VT) {
   return SDOperand(N, 0);
 }
 
+SDOperand SelectionDAG::getDbgStopPoint(SDOperand Root,
+                                        unsigned Line, unsigned Col,
+                                        const CompileUnitDesc *CU) {
+  FoldingSetNodeID ID;
+  SDOperand Ops[] = { Root };
+  AddNodeIDNode(ID, ISD::DBG_STOPPOINT, getVTList(MVT::Other), &Ops[0], 1);
+  ID.AddInteger(Line);
+  ID.AddInteger(Col);
+  ID.AddPointer(CU);
+  void *IP = 0;
+  if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
+    return SDOperand(E, 0);
+  SDNode *N = new DbgStopPointSDNode(Root, Line, Col, CU);
+  CSEMap.InsertNode(N, IP);
+  AllNodes.push_back(N);
+  return SDOperand(N, 0);
+}
+
 SDOperand SelectionDAG::getSrcValue(const Value *V) {
   assert((!V || isa<PointerType>(V->getType())) &&
          "SrcValue is not a pointer?");
@@ -4178,7 +4191,6 @@ void UnarySDNode::ANCHOR() {}
 void BinarySDNode::ANCHOR() {}
 void TernarySDNode::ANCHOR() {}
 void HandleSDNode::ANCHOR() {}
-void StringSDNode::ANCHOR() {}
 void ConstantSDNode::ANCHOR() {}
 void ConstantFPSDNode::ANCHOR() {}
 void GlobalAddressSDNode::ANCHOR() {}
@@ -4189,6 +4201,7 @@ void BasicBlockSDNode::ANCHOR() {}
 void SrcValueSDNode::ANCHOR() {}
 void MemOperandSDNode::ANCHOR() {}
 void RegisterSDNode::ANCHOR() {}
+void DbgStopPointSDNode::ANCHOR() {}
 void ExternalSymbolSDNode::ANCHOR() {}
 void CondCodeSDNode::ANCHOR() {}
 void ARG_FLAGSSDNode::ANCHOR() {}
@@ -4463,7 +4476,6 @@ std::string SDNode::getOperationName(const SelectionDAG *G) const {
   case ISD::AssertSext:    return "AssertSext";
   case ISD::AssertZext:    return "AssertZext";
 
-  case ISD::STRING:        return "String";
   case ISD::BasicBlock:    return "BasicBlock";
   case ISD::ARG_FLAGS:     return "ArgFlags";
   case ISD::VALUETYPE:     return "ValueType";
@@ -4624,7 +4636,7 @@ std::string SDNode::getOperationName(const SelectionDAG *G) const {
   case ISD::CTLZ:    return "ctlz";
 
   // Debug info
-  case ISD::LOCATION: return "location";
+  case ISD::DBG_STOPPOINT: return "dbg_stoppoint";
   case ISD::DEBUG_LOC: return "debug_loc";
 
   // Trampolines
index 8cfc334c025081b1506a859931707e6dd5efdc66..273f046bf7cc58a1e05d99a394089d409956282b 100644 (file)
@@ -3164,20 +3164,12 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
     MachineModuleInfo *MMI = DAG.getMachineModuleInfo();
     DbgStopPointInst &SPI = cast<DbgStopPointInst>(I);
     if (MMI && SPI.getContext() && MMI->Verify(SPI.getContext())) {
-      SDOperand Ops[5];
-
-      Ops[0] = getRoot();
-      Ops[1] = getValue(SPI.getLineValue());
-      Ops[2] = getValue(SPI.getColumnValue());
-
       DebugInfoDesc *DD = MMI->getDescFor(SPI.getContext());
       assert(DD && "Not a debug information descriptor");
-      CompileUnitDesc *CompileUnit = cast<CompileUnitDesc>(DD);
-      
-      Ops[3] = DAG.getString(CompileUnit->getFileName());
-      Ops[4] = DAG.getString(CompileUnit->getDirectory());
-      
-      DAG.setRoot(DAG.getNode(ISD::LOCATION, MVT::Other, Ops, 5));
+      DAG.setRoot(DAG.getDbgStopPoint(getRoot(),
+                                      SPI.getLine(),
+                                      SPI.getColumn(),
+                                      cast<CompileUnitDesc>(DD)));
     }
 
     return 0;
index 07f3221777d266932f62277b3841566f8c22d457..5c51cf781013d60d1b8f29ead6ea670d99e96d35 100644 (file)
@@ -18,6 +18,7 @@
 #include "llvm/CodeGen/ScheduleDAG.h"
 #include "llvm/CodeGen/MachineConstantPool.h"
 #include "llvm/CodeGen/MachineFunction.h"
+#include "llvm/CodeGen/MachineDebugInfoDesc.h"
 #include "llvm/Target/TargetRegisterInfo.h"
 #include "llvm/Target/TargetMachine.h"
 #include "llvm/Support/GraphWriter.h"
@@ -138,6 +139,11 @@ std::string DOTGraphTraits<SelectionDAG*>::getNodeLabel(const SDNode *Node,
     } else {
       Op += " #" + utostr(R->getReg());
     }
+  } else if (const DbgStopPointSDNode *D = dyn_cast<DbgStopPointSDNode>(Node)) {
+    Op += ": " + D->getCompileUnit()->getFileName();
+    Op += ":" + utostr(D->getLine());
+    if (D->getColumn() != 0)
+      Op += ":" + utostr(D->getColumn());
   } else if (const ExternalSymbolSDNode *ES =
              dyn_cast<ExternalSymbolSDNode>(Node)) {
     Op += "'" + std::string(ES->getSymbol()) + "'";
@@ -155,8 +161,6 @@ std::string DOTGraphTraits<SelectionDAG*>::getNodeLabel(const SDNode *Node,
     Op = Op + " AF=" + N->getArgFlags().getArgFlagsString();
   } else if (const VTSDNode *N = dyn_cast<VTSDNode>(Node)) {
     Op = Op + " VT=" + N->getVT().getMVTString();
-  } else if (const StringSDNode *N = dyn_cast<StringSDNode>(Node)) {
-    Op = Op + "\"" + N->getValue() + "\"";
   } else if (const LoadSDNode *LD = dyn_cast<LoadSDNode>(Node)) {
     bool doExt = true;
     switch (LD->getExtensionType()) {
index 2c11919b482407f9ea718b8d94efec3549044b98..47abefeadc41a3be33cb44664f528620bc2d8450 100644 (file)
@@ -188,7 +188,7 @@ ARMTargetLowering::ARMTargetLowering(TargetMachine &TM)
   setOperationAction(ISD::UDIVREM, MVT::i32, Expand);
   
   // Support label based line numbers.
-  setOperationAction(ISD::LOCATION, MVT::Other, Expand);
+  setOperationAction(ISD::DBG_STOPPOINT, MVT::Other, Expand);
   setOperationAction(ISD::DEBUG_LOC, MVT::Other, Expand);
 
   setOperationAction(ISD::RET,           MVT::Other, Custom);
index ad50816d9c2afbf22dfc3ef0a931d766a6349650..3cf306a12768a79e64a0610a69fed3581609b2cc 100644 (file)
@@ -104,7 +104,7 @@ AlphaTargetLowering::AlphaTargetLowering(TargetMachine &TM) : TargetLowering(TM)
   setOperationAction(ISD::BIT_CONVERT, MVT::f32, Promote);
 
   // We don't have line number support yet.
-  setOperationAction(ISD::LOCATION, MVT::Other, Expand);
+  setOperationAction(ISD::DBG_STOPPOINT, MVT::Other, Expand);
   setOperationAction(ISD::DEBUG_LOC, MVT::Other, Expand);
   setOperationAction(ISD::LABEL, MVT::Other, Expand);
 
index e99a8bdae70227d5d66339db5be4cdcd902fb2bc..1aae24ff1fd88382905f629250094419d3d750c9 100644 (file)
@@ -290,7 +290,7 @@ SPUTargetLowering::SPUTargetLowering(SPUTargetMachine &TM)
   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
   
   // Support label based line numbers.
-  setOperationAction(ISD::LOCATION, MVT::Other, Expand);
+  setOperationAction(ISD::DBG_STOPPOINT, MVT::Other, Expand);
   setOperationAction(ISD::DEBUG_LOC, MVT::Other, Expand);
   
   // We want to legalize GlobalAddress and ConstantPool nodes into the 
index 710cd0c66d05cdf8a7b96a4955b2eeeb5f01bd3b..69f0cb1bc7d81e320492b04b0892ad2cde1c4b69 100644 (file)
@@ -87,7 +87,7 @@ IA64TargetLowering::IA64TargetLowering(TargetMachine &TM)
   setOperationAction(ISD::FCOPYSIGN, MVT::f32, Expand);
   
   // We don't have line number support yet.
-  setOperationAction(ISD::LOCATION, MVT::Other, Expand);
+  setOperationAction(ISD::DBG_STOPPOINT, MVT::Other, Expand);
   setOperationAction(ISD::DEBUG_LOC, MVT::Other, Expand);
   setOperationAction(ISD::LABEL, MVT::Other, Expand);
 
index 3dfd33401e898851b3f6000e3b4ea9e2cd9c77af..a2fef465fa0113a56988df0b15a56909d084cd4a 100644 (file)
@@ -95,7 +95,7 @@ MipsTargetLowering(MipsTargetMachine &TM): TargetLowering(TM)
   setOperationAction(ISD::SRL_PARTS, MVT::i32, Expand);
 
   // We don't have line number support yet.
-  setOperationAction(ISD::LOCATION, MVT::Other, Expand);
+  setOperationAction(ISD::DBG_STOPPOINT, MVT::Other, Expand);
   setOperationAction(ISD::DEBUG_LOC, MVT::Other, Expand);
   setOperationAction(ISD::LABEL, MVT::Other, Expand);
 
index fa1698f37e7bb82e59c2f3edf9b276f84216b87d..dc44e090e61b125d1cc7b0483b670f4fcd5a3a5f 100644 (file)
@@ -133,7 +133,7 @@ PIC16TargetLowering(PIC16TargetMachine &TM): TargetLowering(TM)
   setOperationAction(ISD::SRL_PARTS, MVT::i32, Expand);
 
   // We don't have line number support yet.
-  setOperationAction(ISD::LOCATION, MVT::Other, Expand);
+  setOperationAction(ISD::DBG_STOPPOINT, MVT::Other, Expand);
   setOperationAction(ISD::DEBUG_LOC, MVT::Other, Expand);
   setOperationAction(ISD::LABEL, MVT::Other, Expand);
 
index 918db9d5d2dd1dae934b4924ba1832af702eebb3..482ce63972b3c680067db8b8eb53a97fea63540d 100644 (file)
@@ -164,7 +164,7 @@ PPCTargetLowering::PPCTargetLowering(PPCTargetMachine &TM)
   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
 
   // Support label based line numbers.
-  setOperationAction(ISD::LOCATION, MVT::Other, Expand);
+  setOperationAction(ISD::DBG_STOPPOINT, MVT::Other, Expand);
   setOperationAction(ISD::DEBUG_LOC, MVT::Other, Expand);
   
   setOperationAction(ISD::EXCEPTIONADDR, MVT::i64, Expand);
index fd60296b1f6dfcd3f4bba60e7e3df1ee5a4b0e5a..6b0593b869ec35ed86509dbabdf08cc04ae858e7 100644 (file)
@@ -595,7 +595,7 @@ SparcTargetLowering::SparcTargetLowering(TargetMachine &TM)
   setOperationAction(ISD::UMUL_LOHI, MVT::i32, Expand);
     
   // We don't have line number support yet.
-  setOperationAction(ISD::LOCATION, MVT::Other, Expand);
+  setOperationAction(ISD::DBG_STOPPOINT, MVT::Other, Expand);
   setOperationAction(ISD::DEBUG_LOC, MVT::Other, Expand);
   setOperationAction(ISD::LABEL, MVT::Other, Expand);
 
@@ -615,7 +615,7 @@ SparcTargetLowering::SparcTargetLowering(TargetMachine &TM)
   setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32  , Custom);
 
   // No debug info support yet.
-  setOperationAction(ISD::LOCATION, MVT::Other, Expand);
+  setOperationAction(ISD::DBG_STOPPOINT, MVT::Other, Expand);
   setOperationAction(ISD::LABEL, MVT::Other, Expand);
   setOperationAction(ISD::DECLARE, MVT::Other, Expand);
     
index 7173df696940b0c6318fac9db8c28e956c85aeff..794e5849870e34ae37f84826a27adc4d44835370 100644 (file)
@@ -298,8 +298,8 @@ X86TargetLowering::X86TargetLowering(X86TargetMachine &TM)
   setOperationAction(ISD::ATOMIC_CMP_SWAP , MVT::i64, Custom);
   setOperationAction(ISD::ATOMIC_LOAD_SUB , MVT::i32, Expand);
 
-  // Use the default ISD::LOCATION, ISD::DECLARE expansion.
-  setOperationAction(ISD::LOCATION, MVT::Other, Expand);
+  // Use the default ISD::DBG_STOPPOINT, ISD::DECLARE expansion.
+  setOperationAction(ISD::DBG_STOPPOINT, MVT::Other, Expand);
   // FIXME - use subtarget debug flags
   if (!Subtarget->isTargetDarwin() &&
       !Subtarget->isTargetELF() &&