aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/XCore/XCoreAsmPrinter.cpp
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2009-01-08 23:40:34 +0000
committerDevang Patel <dpatel@apple.com>2009-01-08 23:40:34 +0000
commiteb3fc289141ad44883acbb91e839ab1b9a0f2025 (patch)
treeba35a1e9f588e7ef801a8f2432cd92f1a63a1435 /lib/Target/XCore/XCoreAsmPrinter.cpp
parent5d5ee80ea8bf300d1ee8ccbd7174466d98a1e99e (diff)
downloadexternal_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.cpp18
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);
}