mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-09 12:36:28 +00:00
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:
parent
0a7befa8bd
commit
1f522feabf
@ -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
|
||||
|
@ -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);
|
||||
|
@ -591,9 +591,6 @@ bool LinuxAsmPrinter::doFinalization(Module &M) {
|
||||
I != E; ++I)
|
||||
printModuleLevelGV(I);
|
||||
|
||||
// Emit initial debug information.
|
||||
DW->EndModule();
|
||||
|
||||
return AsmPrinter::doFinalization(M);
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
||||
|
@ -436,8 +436,5 @@ bool XCoreAsmPrinter::doFinalization(Module &M) {
|
||||
emitGlobal(I);
|
||||
}
|
||||
|
||||
// Emit final debug information.
|
||||
DW->EndModule();
|
||||
|
||||
return AsmPrinter::doFinalization(M);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user