mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-12 07:37:34 +00:00
Even with -disable-opt we should still internalize and strip if requested.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17903 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
39a83dc37c
commit
429a9cbc2e
@ -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());
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user