From: Devang Patel Date: Tue, 13 Jan 2009 00:35:13 +0000 (+0000) Subject: Use DebugInfo interface to lower dbg_* intrinsics. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=83489bb7700c69b7a4a8da59365c42d3f5c8129b;p=oota-llvm.git Use DebugInfo interface to lower dbg_* intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62127 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/CodeGen/FastISel.h b/include/llvm/CodeGen/FastISel.h index c35d43dc287..0b8d67bfcdb 100644 --- a/include/llvm/CodeGen/FastISel.h +++ b/include/llvm/CodeGen/FastISel.h @@ -28,6 +28,7 @@ class MachineConstantPool; class MachineFunction; class MachineFrameInfo; class MachineModuleInfo; +class DwarfWriter; class MachineRegisterInfo; class TargetData; class TargetInstrInfo; @@ -50,6 +51,7 @@ protected: #endif MachineFunction &MF; MachineModuleInfo *MMI; + DwarfWriter *DW; MachineRegisterInfo &MRI; MachineFrameInfo &MFI; MachineConstantPool &MCP; @@ -115,6 +117,7 @@ public: protected: FastISel(MachineFunction &mf, MachineModuleInfo *mmi, + DwarfWriter *dw, DenseMap &vm, DenseMap &bm, DenseMap &am diff --git a/include/llvm/CodeGen/SelectionDAG.h b/include/llvm/CodeGen/SelectionDAG.h index 45dacfffa9a..7ad7afa4415 100644 --- a/include/llvm/CodeGen/SelectionDAG.h +++ b/include/llvm/CodeGen/SelectionDAG.h @@ -136,6 +136,7 @@ public: TargetLowering &getTargetLoweringInfo() const { return TLI; } FunctionLoweringInfo &getFunctionLoweringInfo() const { return FLI; } MachineModuleInfo *getMachineModuleInfo() const { return MMI; } + DwarfWriter *getDwarfWriter() const { return DW; } /// viewGraph - Pop up a GraphViz/gv window with the DAG rendered using 'dot'. /// @@ -312,7 +313,7 @@ public: SDValue getValueType(MVT); SDValue getRegister(unsigned Reg, MVT VT); SDValue getDbgStopPoint(SDValue Root, unsigned Line, unsigned Col, - const CompileUnitDesc *CU); + Value *CU); SDValue getLabel(unsigned Opcode, SDValue Root, unsigned LabelID); SDValue getCopyToReg(SDValue Chain, unsigned Reg, SDValue N) { diff --git a/include/llvm/CodeGen/SelectionDAGISel.h b/include/llvm/CodeGen/SelectionDAGISel.h index 5d244862048..00219b227a2 100644 --- a/include/llvm/CodeGen/SelectionDAGISel.h +++ b/include/llvm/CodeGen/SelectionDAGISel.h @@ -29,6 +29,7 @@ namespace llvm { class MachineFunction; class MachineInstr; class MachineModuleInfo; + class DwarfWriter; class TargetLowering; class TargetInstrInfo; class FunctionLoweringInfo; @@ -110,6 +111,7 @@ protected: private: void SelectAllBasicBlocks(Function &Fn, MachineFunction &MF, MachineModuleInfo *MMI, + DwarfWriter *DW, const TargetInstrInfo &TII); void FinishBasicBlock(); diff --git a/include/llvm/CodeGen/SelectionDAGNodes.h b/include/llvm/CodeGen/SelectionDAGNodes.h index 9f866316eb5..345def3c264 100644 --- a/include/llvm/CodeGen/SelectionDAGNodes.h +++ b/include/llvm/CodeGen/SelectionDAGNodes.h @@ -39,7 +39,7 @@ class GlobalValue; class MachineBasicBlock; class MachineConstantPoolValue; class SDNode; -class CompileUnitDesc; +class Value; template struct DenseMapInfo; template struct simplify_type; template struct ilist_traits; @@ -586,7 +586,7 @@ namespace ISD { // 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 + // column number, and a pointer to a CompileUnit object identifying // the containing compilation unit. It produces a token chain as output. DBG_STOPPOINT, @@ -1981,12 +1981,12 @@ class DbgStopPointSDNode : public SDNode { SDUse Chain; unsigned Line; unsigned Column; - const CompileUnitDesc *CU; + Value *CU; virtual void ANCHOR(); // Out-of-line virtual method to give class a home. protected: friend class SelectionDAG; DbgStopPointSDNode(SDValue ch, unsigned l, unsigned c, - const CompileUnitDesc *cu) + Value *cu) : SDNode(ISD::DBG_STOPPOINT, getSDVTList(MVT::Other)), Line(l), Column(c), CU(cu) { Chain = ch; @@ -1995,7 +1995,7 @@ protected: public: unsigned getLine() const { return Line; } unsigned getColumn() const { return Column; } - const CompileUnitDesc *getCompileUnit() const { return CU; } + Value *getCompileUnit() const { return CU; } static bool classof(const DbgStopPointSDNode *) { return true; } static bool classof(const SDNode *N) { diff --git a/include/llvm/Target/TargetLowering.h b/include/llvm/Target/TargetLowering.h index e6d5ff8621d..dc7c6eecddd 100644 --- a/include/llvm/Target/TargetLowering.h +++ b/include/llvm/Target/TargetLowering.h @@ -43,6 +43,7 @@ namespace llvm { class MachineFrameInfo; class MachineInstr; class MachineModuleInfo; + class DwarfWriter; class SDNode; class SDValue; class SelectionDAG; @@ -1199,7 +1200,7 @@ public: /// or null if the target does not support "fast" ISel. virtual FastISel * createFastISel(MachineFunction &, - MachineModuleInfo *, + MachineModuleInfo *, DwarfWriter *, DenseMap &, DenseMap &, DenseMap & diff --git a/lib/CodeGen/SelectionDAG/FastISel.cpp b/lib/CodeGen/SelectionDAG/FastISel.cpp index bcba15192cd..5dd0afbae6f 100644 --- a/lib/CodeGen/SelectionDAG/FastISel.cpp +++ b/lib/CodeGen/SelectionDAG/FastISel.cpp @@ -47,6 +47,8 @@ #include "llvm/CodeGen/MachineInstrBuilder.h" #include "llvm/CodeGen/MachineModuleInfo.h" #include "llvm/CodeGen/MachineRegisterInfo.h" +#include "llvm/CodeGen/DwarfWriter.h" +#include "llvm/Analysis/DebugInfo.h" #include "llvm/Target/TargetData.h" #include "llvm/Target/TargetInstrInfo.h" #include "llvm/Target/TargetLowering.h" @@ -315,14 +317,13 @@ bool FastISel::SelectCall(User *I) { default: break; case Intrinsic::dbg_stoppoint: { DbgStopPointInst *SPI = cast(I); - if (MMI && SPI->getContext() && MMI->Verify(SPI->getContext())) { - DebugInfoDesc *DD = MMI->getDescFor(SPI->getContext()); - assert(DD && "Not a debug information descriptor"); - const CompileUnitDesc *CompileUnit = cast(DD); - unsigned SrcFile = MMI->RecordSource(CompileUnit); + if (DW && SPI->getContext()) { + DICompileUnit CU(cast(SPI->getContext())); + unsigned SrcFile = DW->RecordSource(CU.getDirectory(), + CU.getFilename()); unsigned Line = SPI->getLine(); unsigned Col = SPI->getColumn(); - unsigned ID = MMI->RecordSourceLine(Line, Col, SrcFile); + unsigned ID = DW->RecordSourceLine(Line, Col, SrcFile); const TargetInstrDesc &II = TII.get(TargetInstrInfo::DBG_LABEL); BuildMI(MBB, II).addImm(ID); } @@ -330,8 +331,9 @@ bool FastISel::SelectCall(User *I) { } case Intrinsic::dbg_region_start: { DbgRegionStartInst *RSI = cast(I); - if (MMI && RSI->getContext() && MMI->Verify(RSI->getContext())) { - unsigned ID = MMI->RecordRegionStart(RSI->getContext()); + if (DW && RSI->getContext()) { + unsigned ID = + DW->RecordRegionStart(cast(RSI->getContext())); const TargetInstrDesc &II = TII.get(TargetInstrInfo::DBG_LABEL); BuildMI(MBB, II).addImm(ID); } @@ -339,30 +341,31 @@ bool FastISel::SelectCall(User *I) { } case Intrinsic::dbg_region_end: { DbgRegionEndInst *REI = cast(I); - if (MMI && REI->getContext() && MMI->Verify(REI->getContext())) { - unsigned ID = MMI->RecordRegionEnd(REI->getContext()); + if (DW && REI->getContext()) { + unsigned ID = + DW->RecordRegionEnd(cast(REI->getContext())); const TargetInstrDesc &II = TII.get(TargetInstrInfo::DBG_LABEL); BuildMI(MBB, II).addImm(ID); } return true; } case Intrinsic::dbg_func_start: { - if (!MMI) return true; + if (!DW) return true; DbgFuncStartInst *FSI = cast(I); Value *SP = FSI->getSubprogram(); - if (SP && MMI->Verify(SP)) { + if (SP) { // llvm.dbg.func.start implicitly defines a dbg_stoppoint which is // what (most?) gdb expects. - DebugInfoDesc *DD = MMI->getDescFor(SP); - assert(DD && "Not a debug information descriptor"); - SubprogramDesc *Subprogram = cast(DD); - const CompileUnitDesc *CompileUnit = Subprogram->getFile(); - unsigned SrcFile = MMI->RecordSource(CompileUnit); + DISubprogram Subprogram(cast(SP)); + DICompileUnit CompileUnit = Subprogram.getCompileUnit(); + unsigned SrcFile = DW->RecordSource(CompileUnit.getDirectory(), + CompileUnit.getFilename()); // Record the source line but does not create a label for the normal // function start. It will be emitted at asm emission time. However, // create a label if this is a beginning of inlined function. - unsigned LabelID = MMI->RecordSourceLine(Subprogram->getLine(), 0, SrcFile); - if (MMI->getSourceLines().size() != 1) { + unsigned LabelID = + DW->RecordSourceLine(Subprogram.getLineNumber(), 0, SrcFile); + if (DW->getRecordSourceLineCount() != 1) { const TargetInstrDesc &II = TII.get(TargetInstrInfo::DBG_LABEL); BuildMI(MBB, II).addImm(LabelID); } @@ -372,7 +375,7 @@ bool FastISel::SelectCall(User *I) { case Intrinsic::dbg_declare: { DbgDeclareInst *DI = cast(I); Value *Variable = DI->getVariable(); - if (MMI && Variable && MMI->Verify(Variable)) { + if (DW && Variable) { // Determine the address of the declared object. Value *Address = DI->getAddress(); if (BitCastInst *BCI = dyn_cast(Address)) @@ -682,6 +685,7 @@ FastISel::SelectOperator(User *I, unsigned Opcode) { FastISel::FastISel(MachineFunction &mf, MachineModuleInfo *mmi, + DwarfWriter *dw, DenseMap &vm, DenseMap &bm, DenseMap &am @@ -698,6 +702,7 @@ FastISel::FastISel(MachineFunction &mf, #endif MF(mf), MMI(mmi), + DW(dw), MRI(MF.getRegInfo()), MFI(*MF.getFrameInfo()), MCP(*MF.getConstantPool()), diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index c535f3a082b..18edb40239e 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -16,6 +16,8 @@ #include "llvm/CodeGen/MachineFrameInfo.h" #include "llvm/CodeGen/MachineJumpTableInfo.h" #include "llvm/CodeGen/MachineModuleInfo.h" +#include "llvm/CodeGen/DwarfWriter.h" +#include "llvm/Analysis/DebugInfo.h" #include "llvm/CodeGen/PseudoSourceValue.h" #include "llvm/Target/TargetFrameInfo.h" #include "llvm/Target/TargetLowering.h" @@ -26,6 +28,7 @@ #include "llvm/CallingConv.h" #include "llvm/Constants.h" #include "llvm/DerivedTypes.h" +#include "llvm/GlobalVariable.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/Compiler.h" #include "llvm/Support/MathExtras.h" @@ -1258,15 +1261,17 @@ SDValue SelectionDAGLegalize::LegalizeOp(SDValue Op) { case TargetLowering::Promote: default: assert(0 && "This action is not supported yet!"); case TargetLowering::Expand: { - MachineModuleInfo *MMI = DAG.getMachineModuleInfo(); + DwarfWriter *DW = DAG.getDwarfWriter(); bool useDEBUG_LOC = TLI.isOperationLegal(ISD::DEBUG_LOC, MVT::Other); bool useLABEL = TLI.isOperationLegal(ISD::DBG_LABEL, MVT::Other); const DbgStopPointSDNode *DSP = cast(Node); - if (MMI && (useDEBUG_LOC || useLABEL)) { - const CompileUnitDesc *CompileUnit = DSP->getCompileUnit(); - unsigned SrcFile = MMI->RecordSource(CompileUnit); - + GlobalVariable *CU_GV = cast(DSP->getCompileUnit()); + if (DW && (useDEBUG_LOC || useLABEL) && !CU_GV->isDeclaration()) { + DICompileUnit CU(cast(DSP->getCompileUnit())); + unsigned SrcFile = DW->RecordSource(CU.getDirectory(), + CU.getFilename()); + unsigned Line = DSP->getLine(); unsigned Col = DSP->getColumn(); @@ -1276,7 +1281,7 @@ SDValue SelectionDAGLegalize::LegalizeOp(SDValue Op) { DAG.getConstant(SrcFile, MVT::i32) }; Result = DAG.getNode(ISD::DEBUG_LOC, MVT::Other, Ops, 4); } else { - unsigned ID = MMI->RecordSourceLine(Line, Col, SrcFile); + unsigned ID = DW->RecordSourceLine(Line, Col, SrcFile); Result = DAG.getLabel(ISD::DBG_LABEL, Tmp1, ID); } } else { diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index c755eac9516..324b07025e0 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -1137,8 +1137,8 @@ SDValue SelectionDAG::getRegister(unsigned RegNo, MVT VT) { } SDValue SelectionDAG::getDbgStopPoint(SDValue Root, - unsigned Line, unsigned Col, - const CompileUnitDesc *CU) { + unsigned Line, unsigned Col, + Value *CU) { SDNode *N = NodeAllocator.Allocate(); new (N) DbgStopPointSDNode(Root, Line, Col, CU); AllNodes.push_back(N); diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp index 294acd8370f..d786e5e7181 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp @@ -37,6 +37,8 @@ #include "llvm/CodeGen/MachineRegisterInfo.h" #include "llvm/CodeGen/PseudoSourceValue.h" #include "llvm/CodeGen/SelectionDAG.h" +#include "llvm/CodeGen/DwarfWriter.h" +#include "llvm/Analysis/DebugInfo.h" #include "llvm/Target/TargetRegisterInfo.h" #include "llvm/Target/TargetData.h" #include "llvm/Target/TargetFrameInfo.h" @@ -3742,67 +3744,65 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) { return 0; } case Intrinsic::dbg_stoppoint: { - MachineModuleInfo *MMI = DAG.getMachineModuleInfo(); + DwarfWriter *DW = DAG.getDwarfWriter(); DbgStopPointInst &SPI = cast(I); - if (MMI && SPI.getContext() && MMI->Verify(SPI.getContext())) { - DebugInfoDesc *DD = MMI->getDescFor(SPI.getContext()); - assert(DD && "Not a debug information descriptor"); + if (DW && SPI.getContext()) DAG.setRoot(DAG.getDbgStopPoint(getRoot(), SPI.getLine(), SPI.getColumn(), - cast(DD))); - } - + SPI.getContext())); return 0; } case Intrinsic::dbg_region_start: { - MachineModuleInfo *MMI = DAG.getMachineModuleInfo(); + DwarfWriter *DW = DAG.getDwarfWriter(); DbgRegionStartInst &RSI = cast(I); - if (MMI && RSI.getContext() && MMI->Verify(RSI.getContext())) { - unsigned LabelID = MMI->RecordRegionStart(RSI.getContext()); + if (DW && RSI.getContext()) { + unsigned LabelID = + DW->RecordRegionStart(cast(RSI.getContext())); DAG.setRoot(DAG.getLabel(ISD::DBG_LABEL, getRoot(), LabelID)); } return 0; } case Intrinsic::dbg_region_end: { - MachineModuleInfo *MMI = DAG.getMachineModuleInfo(); + DwarfWriter *DW = DAG.getDwarfWriter(); DbgRegionEndInst &REI = cast(I); - if (MMI && REI.getContext() && MMI->Verify(REI.getContext())) { - unsigned LabelID = MMI->RecordRegionEnd(REI.getContext()); + if (DW && REI.getContext()) { + unsigned LabelID = + DW->RecordRegionEnd(cast(REI.getContext())); DAG.setRoot(DAG.getLabel(ISD::DBG_LABEL, getRoot(), LabelID)); } return 0; } case Intrinsic::dbg_func_start: { - MachineModuleInfo *MMI = DAG.getMachineModuleInfo(); - if (!MMI) return 0; + DwarfWriter *DW = DAG.getDwarfWriter(); + if (!DW) return 0; DbgFuncStartInst &FSI = cast(I); Value *SP = FSI.getSubprogram(); - if (SP && MMI->Verify(SP)) { + if (SP) { // llvm.dbg.func.start implicitly defines a dbg_stoppoint which is // what (most?) gdb expects. - DebugInfoDesc *DD = MMI->getDescFor(SP); - assert(DD && "Not a debug information descriptor"); - SubprogramDesc *Subprogram = cast(DD); - const CompileUnitDesc *CompileUnit = Subprogram->getFile(); - unsigned SrcFile = MMI->RecordSource(CompileUnit); + DISubprogram Subprogram(cast(SP)); + DICompileUnit CompileUnit = Subprogram.getCompileUnit(); + unsigned SrcFile = DW->RecordSource(CompileUnit.getDirectory(), + CompileUnit.getFilename()); // Record the source line but does not create a label for the normal // function start. It will be emitted at asm emission time. However, // create a label if this is a beginning of inlined function. - unsigned LabelID = MMI->RecordSourceLine(Subprogram->getLine(), 0, SrcFile); - if (MMI->getSourceLines().size() != 1) + unsigned LabelID = + DW->RecordSourceLine(Subprogram.getLineNumber(), 0, SrcFile); + if (DW->getRecordSourceLineCount() != 1) DAG.setRoot(DAG.getLabel(ISD::DBG_LABEL, getRoot(), LabelID)); } return 0; } case Intrinsic::dbg_declare: { - MachineModuleInfo *MMI = DAG.getMachineModuleInfo(); + DwarfWriter *DW = DAG.getDwarfWriter(); DbgDeclareInst &DI = cast(I); Value *Variable = DI.getVariable(); - if (MMI && Variable && MMI->Verify(Variable)) + if (DW && Variable) DAG.setRoot(DAG.getNode(ISD::DECLARE, MVT::Other, getRoot(), getValue(DI.getAddress()), getValue(Variable))); return 0; diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp index 4eb70198817..3688a13034d 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp @@ -327,7 +327,7 @@ bool SelectionDAGISel::runOnFunction(Function &Fn) { // Mark landing pad. FuncInfo->MBBMap[Invoke->getSuccessor(1)]->setIsLandingPad(); - SelectAllBasicBlocks(Fn, MF, MMI, TII); + SelectAllBasicBlocks(Fn, MF, MMI, DW, TII); // If the first basic block in the function has live ins that need to be // copied into vregs, emit the copies into the top of the block before @@ -696,11 +696,12 @@ void SelectionDAGISel::CodeGenAndEmitDAG() { void SelectionDAGISel::SelectAllBasicBlocks(Function &Fn, MachineFunction &MF, MachineModuleInfo *MMI, + DwarfWriter *DW, const TargetInstrInfo &TII) { // Initialize the Fast-ISel state, if needed. FastISel *FastIS = 0; if (EnableFastISel) - FastIS = TLI.createFastISel(*FuncInfo->MF, MMI, + FastIS = TLI.createFastISel(*FuncInfo->MF, MMI, DW, FuncInfo->ValueMap, FuncInfo->MBBMap, FuncInfo->StaticAllocaMap diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp index a528c80ddae..9396f16a99e 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp @@ -20,6 +20,7 @@ #include "llvm/CodeGen/MachineFunction.h" #include "llvm/CodeGen/MachineModuleInfo.h" #include "llvm/CodeGen/PseudoSourceValue.h" +#include "llvm/Analysis/DebugInfo.h" #include "llvm/Target/TargetRegisterInfo.h" #include "llvm/Target/TargetMachine.h" #include "llvm/Support/Debug.h" @@ -177,7 +178,8 @@ std::string DOTGraphTraits::getNodeLabel(const SDNode *Node, Op += " #" + utostr(R->getReg()); } } else if (const DbgStopPointSDNode *D = dyn_cast(Node)) { - Op += ": " + D->getCompileUnit()->getFileName(); + DICompileUnit CU(cast(D->getCompileUnit())); + Op += ": " + CU.getFilename(); Op += ":" + utostr(D->getLine()); if (D->getColumn() != 0) Op += ":" + utostr(D->getColumn()); diff --git a/lib/Target/X86/X86FastISel.cpp b/lib/Target/X86/X86FastISel.cpp index f7784b407e7..3a05c8a8852 100644 --- a/lib/Target/X86/X86FastISel.cpp +++ b/lib/Target/X86/X86FastISel.cpp @@ -51,6 +51,7 @@ class X86FastISel : public FastISel { public: explicit X86FastISel(MachineFunction &mf, MachineModuleInfo *mmi, + DwarfWriter *dw, DenseMap &vm, DenseMap &bm, DenseMap &am @@ -58,7 +59,7 @@ public: , SmallSet &cil #endif ) - : FastISel(mf, mmi, vm, bm, am + : FastISel(mf, mmi, dw, vm, bm, am #ifndef NDEBUG , cil #endif @@ -1512,6 +1513,7 @@ unsigned X86FastISel::TargetMaterializeAlloca(AllocaInst *C) { namespace llvm { llvm::FastISel *X86::createFastISel(MachineFunction &mf, MachineModuleInfo *mmi, + DwarfWriter *dw, DenseMap &vm, DenseMap &bm, DenseMap &am @@ -1519,7 +1521,7 @@ namespace llvm { , SmallSet &cil #endif ) { - return new X86FastISel(mf, mmi, vm, bm, am + return new X86FastISel(mf, mmi, dw, vm, bm, am #ifndef NDEBUG , cil #endif diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index eda29f0c6a8..fe665c351fa 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -1923,6 +1923,7 @@ bool X86TargetLowering::IsEligibleForTailCallOptimization(CallSDNode *TheCall, FastISel * X86TargetLowering::createFastISel(MachineFunction &mf, MachineModuleInfo *mmo, + DwarfWriter *dw, DenseMap &vm, DenseMap &bm, @@ -1931,7 +1932,7 @@ X86TargetLowering::createFastISel(MachineFunction &mf, , SmallSet &cil #endif ) { - return X86::createFastISel(mf, mmo, vm, bm, am + return X86::createFastISel(mf, mmo, dw, vm, bm, am #ifndef NDEBUG , cil #endif diff --git a/lib/Target/X86/X86ISelLowering.h b/lib/Target/X86/X86ISelLowering.h index 37d126e6d39..46005d06947 100644 --- a/lib/Target/X86/X86ISelLowering.h +++ b/lib/Target/X86/X86ISelLowering.h @@ -505,7 +505,7 @@ namespace llvm { /// or null if the target does not support "fast" ISel. virtual FastISel * createFastISel(MachineFunction &mf, - MachineModuleInfo *mmi, + MachineModuleInfo *mmi, DwarfWriter *dw, DenseMap &, DenseMap &, DenseMap & @@ -658,7 +658,7 @@ namespace llvm { namespace X86 { FastISel *createFastISel(MachineFunction &mf, - MachineModuleInfo *mmi, + MachineModuleInfo *mmi, DwarfWriter *dw, DenseMap &, DenseMap &, DenseMap &