Even with -disable-opt we should still internalize and strip if requested.
authorChris Lattner <sabre@nondot.org>
Tue, 16 Nov 2004 18:59:20 +0000 (18:59 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 16 Nov 2004 18:59:20 +0000 (18:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17903 91177308-0d34-0410-b5e6-96231b3b80d8

tools/gccld/GenerateCode.cpp

index df347007257b4b7e2e5b0d046e270487278d7a47..e604921a90c0d11ea08ec5c55b0692a351a4985e 100644 (file)
@@ -153,14 +153,14 @@ int llvm::GenerateBytecode(Module *M, bool Strip, bool Internalize,
   // arguments).  This pass merges the two functions.
   addPass(Passes, createFunctionResolvingPass());
 
-  if (!DisableOptimizations) {
-    if (Internalize) {
-      // Now that composite has been compiled, scan through the module, looking
-      // for a main function.  If main is defined, mark all other functions
-      // internal.
-      addPass(Passes, createInternalizePass());
-    }
+  if (Internalize) {
+    // Now that composite has been compiled, scan through the module, looking
+    // for a main function.  If main is defined, mark all other functions
+    // internal.
+    addPass(Passes, createInternalizePass());
+  }
 
+  if (!DisableOptimizations) {
     // Now that we internalized some globals, see if we can hack on them!
     addPass(Passes, createGlobalOptimizerPass());
 
@@ -168,12 +168,6 @@ int llvm::GenerateBytecode(Module *M, bool Strip, bool Internalize,
     // keep one copy of each constant...
     addPass(Passes, createConstantMergePass());
 
-    // If the -s command line option was specified, strip the symbols out of the
-    // resulting program to make it smaller.  -s is a GCC option that we are
-    // supporting.
-    if (Strip)
-      addPass(Passes, createSymbolStrippingPass());
-
     // Propagate constants at call sites into the functions they call.
     addPass(Passes, createIPConstantPropagationPass());
 
@@ -214,6 +208,12 @@ int llvm::GenerateBytecode(Module *M, bool Strip, bool Internalize,
     addPass(Passes, createGlobalDCEPass());
   }
 
+  // If the -s command line option was specified, strip the symbols out of the
+  // resulting program to make it smaller.  -s is a GCC option that we are
+  // supporting.
+  if (Strip)
+    addPass(Passes, createSymbolStrippingPass());
+
   // Make sure everything is still good.
   Passes.add(createVerifierPass());