diff options
| author | Chris Lattner <sabre@nondot.org> | 2006-01-19 00:46:54 +0000 | 
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2006-01-19 00:46:54 +0000 | 
| commit | 7be2203c9f183926aac98a38a8b4ffd22fbf8b55 (patch) | |
| tree | 7930e5d7bea1018155fddbb40aa6c4bdff8cd8c0 /llvm/lib/Transforms | |
| parent | d693b7943a2687fd6afae509733861bc43296034 (diff) | |
| download | bcm5719-llvm-7be2203c9f183926aac98a38a8b4ffd22fbf8b55.tar.gz bcm5719-llvm-7be2203c9f183926aac98a38a8b4ffd22fbf8b55.zip | |
If not internalizing, don't mark llvm.global[cd]tors const, as a fix for a
hypothetical future boog.
llvm-svn: 25430
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/IPO/Internalize.cpp | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/llvm/lib/Transforms/IPO/Internalize.cpp b/llvm/lib/Transforms/IPO/Internalize.cpp index d583d888684..861b79a4e0f 100644 --- a/llvm/lib/Transforms/IPO/Internalize.cpp +++ b/llvm/lib/Transforms/IPO/Internalize.cpp @@ -126,12 +126,15 @@ bool InternalizePass::runOnModule(Module &M) {        //        if (I->hasAppendingLinkage() && (I->getName() == "llvm.global_ctors" ||                                         I->getName() == "llvm.global_dtors")) { -        I->setConstant(true); -                  // If the global ctors/dtors list has no uses, do not internalize it, as          // there is no __main in this program, so the asmprinter should handle          // it.          if (I->use_empty()) continue; +  +        // Otherwise, also mark the list constant, as we know that it will not +        // be mutated any longer, and the makes simple IPO xforms automatically +        // better. +        I->setConstant(true);        }        I->setLinkage(GlobalValue::InternalLinkage); | 

