aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-06-24 19:09:55 +0000
committerChris Lattner <sabre@nondot.org>2009-06-24 19:09:55 +0000
commit0de1fc4f416b3e94749ca84cdaede55b040a8b60 (patch)
tree587b17eab4cb4c5de572293e2bb63903b041e23c /lib/Target
parent1f522feabf25134249bc7894e04f5b89fa071b7f (diff)
downloadexternal_llvm-0de1fc4f416b3e94749ca84cdaede55b040a8b60.zip
external_llvm-0de1fc4f416b3e94749ca84cdaede55b040a8b60.tar.gz
external_llvm-0de1fc4f416b3e94749ca84cdaede55b040a8b60.tar.bz2
sink management of DwarfWriter & MachineModuleInfo into the AsmPrinter base class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74101 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r--lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp23
-rw-r--r--lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp3
-rw-r--r--lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h3
3 files changed, 4 insertions, 25 deletions
diff --git a/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp b/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
index 08b0de5..4aa7a5a 100644
--- a/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
+++ b/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
@@ -293,20 +293,17 @@ namespace {
/// PPCLinuxAsmPrinter - PowerPC assembly printer, customized for Linux
class VISIBILITY_HIDDEN PPCLinuxAsmPrinter : public PPCAsmPrinter {
- DwarfWriter *DW;
- MachineModuleInfo *MMI;
public:
explicit PPCLinuxAsmPrinter(raw_ostream &O, PPCTargetMachine &TM,
const TargetAsmInfo *T, CodeGenOpt::Level OL,
bool V)
- : PPCAsmPrinter(O, TM, T, OL, V), DW(0), MMI(0) {}
+ : PPCAsmPrinter(O, TM, T, OL, V){}
virtual const char *getPassName() const {
return "Linux PPC Assembly Printer";
}
bool runOnMachineFunction(MachineFunction &F);
- bool doInitialization(Module &M);
bool doFinalization(Module &M);
void getAnalysisUsage(AnalysisUsage &AU) const {
@@ -322,14 +319,12 @@ namespace {
/// PPCDarwinAsmPrinter - PowerPC assembly printer, customized for Darwin/Mac
/// OS X
class VISIBILITY_HIDDEN PPCDarwinAsmPrinter : public PPCAsmPrinter {
- DwarfWriter *DW;
- MachineModuleInfo *MMI;
raw_ostream &OS;
public:
explicit PPCDarwinAsmPrinter(raw_ostream &O, PPCTargetMachine &TM,
const TargetAsmInfo *T, CodeGenOpt::Level OL,
bool V)
- : PPCAsmPrinter(O, TM, T, OL, V), DW(0), MMI(0), OS(O) {}
+ : PPCAsmPrinter(O, TM, T, OL, V), OS(O) {}
virtual const char *getPassName() const {
return "Darwin PPC Assembly Printer";
@@ -637,15 +632,6 @@ bool PPCLinuxAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
return false;
}
-bool PPCLinuxAsmPrinter::doInitialization(Module &M) {
- bool Result = AsmPrinter::doInitialization(M);
- DW = getAnalysisIfAvailable<DwarfWriter>();
- MMI = getAnalysisIfAvailable<MachineModuleInfo>();
- assert(MMI);
- SwitchToSection(TAI->getTextSection());
- return Result;
-}
-
/// PrintUnmangledNameSafely - Print out the printable characters in the name.
/// Don't print things like \\n or \\0.
static void PrintUnmangledNameSafely(const Value *V, raw_ostream &OS) {
@@ -848,8 +834,6 @@ bool PPCDarwinAsmPrinter::doInitialization(Module &M) {
O << "\t.machine " << CPUDirectives[Directive] << '\n';
bool Result = AsmPrinter::doInitialization(M);
- DW = getAnalysisIfAvailable<DwarfWriter>();
- MMI = getAnalysisIfAvailable<MachineModuleInfo>();
assert(MMI);
// Prime text sections so they are adjacent. This reduces the likelihood a
@@ -1076,8 +1060,7 @@ bool PPCDarwinAsmPrinter::doFinalization(Module &M) {
if (TAI->doesSupportExceptionHandling() && MMI) {
// Add the (possibly multiple) personalities to the set of global values.
// Only referenced functions get into the Personalities list.
- const std::vector<Function *>& Personalities = MMI->getPersonalities();
-
+ const std::vector<Function *> &Personalities = MMI->getPersonalities();
for (std::vector<Function *>::const_iterator I = Personalities.begin(),
E = Personalities.end(); I != E; ++I)
if (*I) GVStubs.insert("_" + (*I)->getName());
diff --git a/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp b/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
index b8a9727..a7e8464 100644
--- a/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
+++ b/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
@@ -927,9 +927,6 @@ void X86ATTAsmPrinter::printMachineInstruction(const MachineInstr *MI) {
/// doInitialization
bool X86ATTAsmPrinter::doInitialization(Module &M) {
- if (TAI->doesSupportDebugInformation() || TAI->doesSupportExceptionHandling())
- MMI = getAnalysisIfAvailable<MachineModuleInfo>();
-
if (NewAsmPrinter) {
Context = new MCContext();
// FIXME: Send this to "O" instead of outs(). For now, we force it to
diff --git a/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h b/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h
index a09f2b5..24cd601 100644
--- a/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h
+++ b/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h
@@ -32,7 +32,6 @@ class MCInst;
class MCStreamer;
class VISIBILITY_HIDDEN X86ATTAsmPrinter : public AsmPrinter {
- MachineModuleInfo *MMI;
const X86Subtarget *Subtarget;
MCContext *Context;
@@ -41,7 +40,7 @@ class VISIBILITY_HIDDEN X86ATTAsmPrinter : public AsmPrinter {
explicit X86ATTAsmPrinter(raw_ostream &O, X86TargetMachine &TM,
const TargetAsmInfo *T, CodeGenOpt::Level OL,
bool V)
- : AsmPrinter(O, TM, T, OL, V), MMI(0) {
+ : AsmPrinter(O, TM, T, OL, V) {
Subtarget = &TM.getSubtarget<X86Subtarget>();
Context = 0;
Streamer = 0;