diff options
author | Devang Patel <dpatel@apple.com> | 2009-01-08 23:40:34 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2009-01-08 23:40:34 +0000 |
commit | eb3fc289141ad44883acbb91e839ab1b9a0f2025 (patch) | |
tree | ba35a1e9f588e7ef801a8f2432cd92f1a63a1435 /lib/Target/XCore/XCoreAsmPrinter.cpp | |
parent | 5d5ee80ea8bf300d1ee8ccbd7174466d98a1e99e (diff) | |
download | external_llvm-eb3fc289141ad44883acbb91e839ab1b9a0f2025.zip external_llvm-eb3fc289141ad44883acbb91e839ab1b9a0f2025.tar.gz external_llvm-eb3fc289141ad44883acbb91e839ab1b9a0f2025.tar.bz2 |
Convert DwarfWriter into a pass.
Now Users request DwarfWriter through getAnalysisUsage() instead of creating an instance of DwarfWriter object directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61955 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/XCore/XCoreAsmPrinter.cpp')
-rw-r--r-- | lib/Target/XCore/XCoreAsmPrinter.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/lib/Target/XCore/XCoreAsmPrinter.cpp b/lib/Target/XCore/XCoreAsmPrinter.cpp index edd7046..0786f61 100644 --- a/lib/Target/XCore/XCoreAsmPrinter.cpp +++ b/lib/Target/XCore/XCoreAsmPrinter.cpp @@ -56,10 +56,10 @@ namespace { struct VISIBILITY_HIDDEN XCoreAsmPrinter : public AsmPrinter { XCoreAsmPrinter(raw_ostream &O, XCoreTargetMachine &TM, const TargetAsmInfo *T) - : AsmPrinter(O, TM, T), DW(O, this, T), + : AsmPrinter(O, TM, T), DW(0), Subtarget(*TM.getSubtargetImpl()) { } - DwarfWriter DW; + DwarfWriter *DW; const XCoreSubtarget &Subtarget; virtual const char *getPassName() const { @@ -91,6 +91,7 @@ namespace { AsmPrinter::getAnalysisUsage(AU); AU.setPreservesAll(); AU.addRequired<MachineModuleInfo>(); + AU.addRequired<DwarfWriter>(); } }; } // end of anonymous namespace @@ -305,7 +306,7 @@ bool XCoreAsmPrinter::runOnMachineFunction(MachineFunction &MF) emitFunctionStart(MF); // Emit pre-function debug information. - DW.BeginFunction(&MF); + DW->BeginFunction(&MF); // Print out code for the function. for (MachineFunction::const_iterator I = MF.begin(), E = MF.end(); @@ -332,7 +333,7 @@ bool XCoreAsmPrinter::runOnMachineFunction(MachineFunction &MF) emitFunctionEnd(MF); // Emit post-function debug information. - DW.EndFunction(&MF); + DW->EndFunction(&MF); // We didn't modify anything. return false; @@ -438,9 +439,10 @@ bool XCoreAsmPrinter::doInitialization(Module &M) { } // Emit initial debug information. - DW.BeginModule(&M); - - DW.SetModuleInfo(getAnalysisToUpdate<MachineModuleInfo>()); + DW = getAnalysisToUpdate<DwarfWriter>(); + assert(DW && "Dwarf Writer is not available"); + DW->BeginModule(&M, getAnalysisToUpdate<MachineModuleInfo>(), + O, this, TAI); return Result; } @@ -453,7 +455,7 @@ bool XCoreAsmPrinter::doFinalization(Module &M) { } // Emit final debug information. - DW.EndModule(); + DW->EndModule(); return AsmPrinter::doFinalization(M); } |