diff options
Diffstat (limited to 'src/passes/pass.cpp')
-rw-r--r-- | src/passes/pass.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp index 88734e85a..11575b1df 100644 --- a/src/passes/pass.cpp +++ b/src/passes/pass.cpp @@ -180,11 +180,14 @@ void PassRunner::addDefaultGlobalOptimizationPrePasses() { } void PassRunner::addDefaultGlobalOptimizationPostPasses() { - add("duplicate-function-elimination"); // optimizations show more functions as duplicate - add("remove-unused-module-elements"); - if (options.optimizeLevel >= 2 || options.shrinkLevel >= 2) { + // inline when working hard, and when not preserving debug info + // (inlining+optimizing can remove the annotations) + if ((options.optimizeLevel >= 2 || options.shrinkLevel >= 2) && + !options.debugInfo) { add("inlining-optimizing"); } + add("duplicate-function-elimination"); // optimizations show more functions as duplicate + add("remove-unused-module-elements"); add("memory-packing"); } |