sink dwarf finalization out of each target into AsmPrinter::doFinalization

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74097 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2009-06-24 18:54:37 +00:00
parent 0a7befa8bd
commit 1f522feabf
6 changed files with 4 additions and 26 deletions

View File

@ -192,6 +192,10 @@ bool AsmPrinter::doInitialization(Module &M) {
}
bool AsmPrinter::doFinalization(Module &M) {
// Emit final debug information.
if (TAI->doesSupportDebugInformation() || TAI->doesSupportExceptionHandling())
DW->EndModule();
// If the target wants to know about weak references, print them all.
if (TAI->getWeakRefDirective()) {
// FIXME: This is not lazy, it would be nice to only print weak references

View File

@ -1118,18 +1118,12 @@ bool ARMAsmPrinter::doFinalization(Module &M) {
}
// Emit initial debug information.
DW->EndModule();
// Funny Darwin hack: This flag tells the linker that no global symbols
// contain code that falls through to other global symbols (e.g. the obvious
// implementation of multiple entry points). If this doesn't occur, the
// linker can safely perform dead code stripping. Since LLVM never
// generates code that does this, it is always safe to set.
O << "\t.subsections_via_symbols\n";
} else {
// Emit final debug information for ELF.
DW->EndModule();
}
return AsmPrinter::doFinalization(M);

View File

@ -591,9 +591,6 @@ bool LinuxAsmPrinter::doFinalization(Module &M) {
I != E; ++I)
printModuleLevelGV(I);
// Emit initial debug information.
DW->EndModule();
return AsmPrinter::doFinalization(M);
}

View File

@ -746,11 +746,6 @@ bool PPCLinuxAsmPrinter::doFinalization(Module &M) {
I != E; ++I)
printModuleLevelGV(I);
// TODO
// Emit initial debug information.
DW->EndModule();
return AsmPrinter::doFinalization(M);
}
@ -1120,10 +1115,6 @@ bool PPCDarwinAsmPrinter::doFinalization(Module &M) {
}
}
// Emit initial debug information.
DW->EndModule();
// Funny Darwin hack: This flag tells the linker that no global symbols
// contain code that falls through to other global symbols (e.g. the obvious
// implementation of multiple entry points). If this doesn't occur, the

View File

@ -1172,11 +1172,6 @@ bool X86ATTAsmPrinter::doFinalization(Module &M) {
O << "\t.ascii \" -export:" << i->getKeyData() << "\"\n";
}
// Emit final debug information.
// FIXME: Sink into DoFinalization.
if (TAI->doesSupportDebugInformation() || TAI->doesSupportExceptionHandling())
DW->EndModule();
// Do common shutdown.
bool Changed = AsmPrinter::doFinalization(M);

View File

@ -436,8 +436,5 @@ bool XCoreAsmPrinter::doFinalization(Module &M) {
emitGlobal(I);
}
// Emit final debug information.
DW->EndModule();
return AsmPrinter::doFinalization(M);
}