diff options
Diffstat (limited to 'src/passes/pass.cpp')
-rw-r--r-- | src/passes/pass.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp index fd31dada8..3b0faa6c3 100644 --- a/src/passes/pass.cpp +++ b/src/passes/pass.cpp @@ -524,7 +524,12 @@ void PassRunner::addDefaultGlobalOptimizationPrePasses() { } if (wasm->features.hasGC() && getTypeSystem() == TypeSystem::Nominal && options.optimizeLevel >= 2) { - // TODO: investigate enabling --gto and --remove-module-elements before cfp + // Global type optimization can remove fields that are not needed, which can + // remove ref.funcs that were once assigned to vtables but are no longer + // needed, which can allow more code to be removed globally. After those, + // constant field propagation can be more effective. + addIfNoDWARFIssues("gto"); + addIfNoDWARFIssues("remove-unused-module-elements"); addIfNoDWARFIssues("cfp"); } } |