aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-03-09 06:14:35 +0000
committerChris Lattner <sabre@nondot.org>2006-03-09 06:14:35 +0000
commit04f96748574d447ea7bc6344a56f7e652d14f4f9 (patch)
tree02e11392006302c6554c06f55753a2143452ba02
parente2b59d2760a4f72c84c262af67642ba09e91bfd1 (diff)
Add support for 'special' llvm globals like debug info and static ctors/dtors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26628 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/Alpha/AlphaAsmPrinter.cpp4
-rw-r--r--lib/Target/IA64/IA64AsmPrinter.cpp4
-rw-r--r--lib/Target/Sparc/SparcAsmPrinter.cpp7
3 files changed, 14 insertions, 1 deletions
diff --git a/lib/Target/Alpha/AlphaAsmPrinter.cpp b/lib/Target/Alpha/AlphaAsmPrinter.cpp
index ad42ca3cd1..6f45fb5497 100644
--- a/lib/Target/Alpha/AlphaAsmPrinter.cpp
+++ b/lib/Target/Alpha/AlphaAsmPrinter.cpp
@@ -231,6 +231,10 @@ bool AlphaAsmPrinter::doFinalization(Module &M) {
for (Module::const_global_iterator I = M.global_begin(), E = M.global_end(); I != E; ++I)
if (I->hasInitializer()) { // External global require no code
+ // Check to see if this is a special global used by LLVM, if so, emit it.
+ if (EmitSpecialLLVMGlobal(I))
+ continue;
+
O << "\n\n";
std::string name = Mang->getValueName(I);
Constant *C = I->getInitializer();
diff --git a/lib/Target/IA64/IA64AsmPrinter.cpp b/lib/Target/IA64/IA64AsmPrinter.cpp
index d779104701..09d388b849 100644
--- a/lib/Target/IA64/IA64AsmPrinter.cpp
+++ b/lib/Target/IA64/IA64AsmPrinter.cpp
@@ -288,6 +288,10 @@ bool IA64AsmPrinter::doFinalization(Module &M) {
for (Module::const_global_iterator I = M.global_begin(), E = M.global_end();
I != E; ++I)
if (I->hasInitializer()) { // External global require no code
+ // Check to see if this is a special global used by LLVM, if so, emit it.
+ if (EmitSpecialLLVMGlobal(I))
+ continue;
+
O << "\n\n";
std::string name = Mang->getValueName(I);
Constant *C = I->getInitializer();
diff --git a/lib/Target/Sparc/SparcAsmPrinter.cpp b/lib/Target/Sparc/SparcAsmPrinter.cpp
index 3be81a55ce..4565a997e2 100644
--- a/lib/Target/Sparc/SparcAsmPrinter.cpp
+++ b/lib/Target/Sparc/SparcAsmPrinter.cpp
@@ -239,8 +239,13 @@ bool SparcAsmPrinter::doFinalization(Module &M) {
const TargetData &TD = TM.getTargetData();
// Print out module-level global variables here.
- for (Module::const_global_iterator I = M.global_begin(), E = M.global_end(); I != E; ++I)
+ for (Module::const_global_iterator I = M.global_begin(), E = M.global_end();
+ I != E; ++I)
if (I->hasInitializer()) { // External global require no code
+ // Check to see if this is a special global used by LLVM, if so, emit it.
+ if (EmitSpecialLLVMGlobal(I))
+ continue;
+
O << "\n\n";
std::string name = Mang->getValueName(I);
Constant *C = I->getInitializer();