summaryrefslogtreecommitdiff
path: root/src/passes/ConstantFieldPropagation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/ConstantFieldPropagation.cpp')
-rw-r--r--src/passes/ConstantFieldPropagation.cpp6
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;