diff options
Diffstat (limited to 'src/passes/ConstantFieldPropagation.cpp')
-rw-r--r-- | src/passes/ConstantFieldPropagation.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/passes/ConstantFieldPropagation.cpp b/src/passes/ConstantFieldPropagation.cpp index d2b08ea30..0ec889e36 100644 --- a/src/passes/ConstantFieldPropagation.cpp +++ b/src/passes/ConstantFieldPropagation.cpp @@ -52,6 +52,9 @@ using PCVFunctionStructValuesMap = struct FunctionOptimizer : public WalkerPass<PostWalker<FunctionOptimizer>> { bool isFunctionParallel() override { return true; } + // Only modifies struct.get operations. + bool requiresNonNullableLocalFixups() override { return false; } + Pass* create() override { return new FunctionOptimizer(infos); } FunctionOptimizer(PCVStructValuesMap& infos) : infos(infos) {} @@ -175,6 +178,9 @@ struct PCVScanner }; struct ConstantFieldPropagation : public Pass { + // Only modifies struct.get operations. + bool requiresNonNullableLocalFixups() override { return false; } + void run(PassRunner* runner, Module* module) override { if (!module->features.hasGC()) { return; |