From bd23d5fda85e38c88dfa668a99777cd05c524822 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 18 Sep 2009 20:17:03 +0000 Subject: [PATCH] add a new hook to allow targets to splat stuff at the end of the file. Overriding doFinalization is pretty lame. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82268 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/AsmPrinter.h | 4 ++++ lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/include/llvm/CodeGen/AsmPrinter.h b/include/llvm/CodeGen/AsmPrinter.h index a1765c4c252..84d0a438e54 100644 --- a/include/llvm/CodeGen/AsmPrinter.h +++ b/include/llvm/CodeGen/AsmPrinter.h @@ -169,6 +169,10 @@ namespace llvm { /// call this implementation. bool doInitialization(Module &M); + /// EmitEndOfAsmFile - This virtual method can be overridden by targets that + /// want to emit something at the end of their file. + virtual void EmitEndOfAsmFile(Module &M) {} + /// doFinalization - Shut down the asmprinter. If you override this in your /// pass, you must make sure to call it explicitly. bool doFinalization(Module &M); diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index e29bff5f66a..dec78a398fa 100644 --- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -208,6 +208,11 @@ bool AsmPrinter::doFinalization(Module &M) { if (MAI->getNonexecutableStackDirective()) O << MAI->getNonexecutableStackDirective() << '\n'; + + // Allow the target to emit any magic that it wants at the end of the file, + // after everything else has gone out. + EmitEndOfAsmFile(M); + delete Mang; Mang = 0; DW = 0; MMI = 0;