diff options
author | Chris Lattner <sabre@nondot.org> | 2002-11-08 20:34:21 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-11-08 20:34:21 +0000 |
commit | 93fbd733e778c2623436ed5a0b9cf7f394407b1a (patch) | |
tree | d9a115f78543b9835e55ddebe7e8f1aa8b252a77 /lib/Transforms/IPO/Internalize.cpp | |
parent | a9a93f37779bbab41d73142aa5e4beb43089696e (diff) | |
download | external_llvm-93fbd733e778c2623436ed5a0b9cf7f394407b1a.zip external_llvm-93fbd733e778c2623436ed5a0b9cf7f394407b1a.tar.gz external_llvm-93fbd733e778c2623436ed5a0b9cf7f394407b1a.tar.bz2 |
Use the new getMainFunction() method to efficiently locate main
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4630 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/IPO/Internalize.cpp')
-rw-r--r-- | lib/Transforms/IPO/Internalize.cpp | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/lib/Transforms/IPO/Internalize.cpp b/lib/Transforms/IPO/Internalize.cpp index dfd4d21..910e1d4 100644 --- a/lib/Transforms/IPO/Internalize.cpp +++ b/lib/Transforms/IPO/Internalize.cpp @@ -17,21 +17,16 @@ namespace { class InternalizePass : public Pass { virtual bool run(Module &M) { - bool FoundMain = false; // Look for a function named main... - for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) - if (I->getName() == "main" && !I->isExternal() && - I->hasExternalLinkage()) { - FoundMain = true; - break; - } - - if (!FoundMain) return false; // No main found, must be a library... + Function *MainFunc = M.getMainFunction(); + + if (MainFunc == 0 || MainFunc->isExternal()) + return false; // No main found, must be a library... bool Changed = false; // Found a main function, mark all functions not named main as internal. for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) - if (I->getName() != "main" && // Leave the main function external + if (&*I != MainFunc && // Leave the main function external !I->isExternal() && // Function must be defined here !I->hasInternalLinkage()) { // Can't already have internal linkage I->setInternalLinkage(true); |