From e2b1f1188fd8c28977b5cf2a6842fc7bbb008713 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 21 Nov 2005 07:05:42 +0000 Subject: [PATCH] Add section switching to to common AsmPrinter code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24444 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/AsmPrinter.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/include/llvm/CodeGen/AsmPrinter.h b/include/llvm/CodeGen/AsmPrinter.h index ce5cf49d346..2704efc6a14 100644 --- a/include/llvm/CodeGen/AsmPrinter.h +++ b/include/llvm/CodeGen/AsmPrinter.h @@ -24,6 +24,9 @@ namespace llvm { class Mangler; class AsmPrinter : public MachineFunctionPass { + /// CurrentSection - The current section we are emitting to. This is + /// controlled and used by the SwitchSection method. + std::string CurrentSection; protected: /// Output stream on which we're printing assembly code. /// @@ -128,6 +131,16 @@ namespace llvm { AlignmentIsInBytes(true) { } + /// SwitchSection - Switch to the specified section of the executable if we + /// are not already in it! If GV is non-null and if the global has an + /// explicitly requested section, we switch to the section indicated for the + /// global instead of NewSection. + /// + /// If the new section is an empty string, this method forgets what the + /// current section is, but does not emit a .section directive. + /// + void SwitchSection(const char *NewSection, const GlobalValue *GV); + /// doInitialization - Set up the AsmPrinter when we are working on a new /// module. If your pass overrides this, it must make sure to explicitly /// call this implementation.