summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/passes/CMakeLists.txt2
-rw-r--r--src/passes/HeapRefining.cpp (renamed from src/passes/GlobalSubtyping.cpp)10
-rw-r--r--src/passes/pass.cpp6
-rw-r--r--src/passes/passes.h2
-rw-r--r--test/lit/help/optimization-opts.test6
-rw-r--r--test/lit/passes/heap-subtyping.wast (renamed from test/lit/passes/global-subtyping.wast)2
6 files changed, 14 insertions, 14 deletions
diff --git a/src/passes/CMakeLists.txt b/src/passes/CMakeLists.txt
index 56f12dc17..b3a7db4c9 100644
--- a/src/passes/CMakeLists.txt
+++ b/src/passes/CMakeLists.txt
@@ -30,9 +30,9 @@ set(passes_SOURCES
Flatten.cpp
FuncCastEmulation.cpp
GenerateDynCalls.cpp
- GlobalSubtyping.cpp
GlobalTypeOptimization.cpp
Heap2Local.cpp
+ HeapRefining.cpp
I64ToI32Lowering.cpp
Inlining.cpp
InstrumentLocals.cpp
diff --git a/src/passes/GlobalSubtyping.cpp b/src/passes/HeapRefining.cpp
index 7cf963f0d..54d6f5103 100644
--- a/src/passes/GlobalSubtyping.cpp
+++ b/src/passes/HeapRefining.cpp
@@ -107,12 +107,12 @@ struct FieldInfoScanner
}
};
-struct GlobalSubtyping : public Pass {
+struct HeapRefining : public Pass {
StructUtils::StructValuesMap<FieldInfo> finalInfos;
void run(PassRunner* runner, Module* module) override {
if (getTypeSystem() != TypeSystem::Nominal) {
- Fatal() << "GlobalSubtyping requires nominal typing";
+ Fatal() << "HeapRefining requires nominal typing";
}
// Find and analyze struct operations inside each function.
@@ -238,10 +238,10 @@ struct GlobalSubtyping : public Pass {
void updateTypes(Module& wasm, PassRunner* runner) {
class TypeRewriter : public GlobalTypeRewriter {
- GlobalSubtyping& parent;
+ HeapRefining& parent;
public:
- TypeRewriter(Module& wasm, GlobalSubtyping& parent)
+ TypeRewriter(Module& wasm, HeapRefining& parent)
: GlobalTypeRewriter(wasm), parent(parent) {}
void modifyStruct(HeapType oldStructType, Struct& struct_) override {
@@ -267,6 +267,6 @@ struct GlobalSubtyping : public Pass {
} // anonymous namespace
-Pass* createGlobalSubtypingPass() { return new GlobalSubtyping(); }
+Pass* createHeapRefiningPass() { return new HeapRefining(); }
} // namespace wasm
diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp
index 2c7199781..118b2e6ae 100644
--- a/src/passes/pass.cpp
+++ b/src/passes/pass.cpp
@@ -156,9 +156,9 @@ void PassRegistry::registerPasses() {
"generate-stack-ir", "generate Stack IR", createGenerateStackIRPass);
registerPass(
"gto", "globally optimize GC types", createGlobalTypeOptimizationPass);
- registerPass("global-subtyping",
+ registerPass("heap-refining",
"apply more specific subtypes to type fields where possible",
- createGlobalSubtypingPass);
+ createHeapRefiningPass);
registerPass(
"heap2local", "replace GC allocations with locals", createHeap2LocalPass);
registerPass(
@@ -527,7 +527,7 @@ void PassRunner::addDefaultGlobalOptimizationPrePasses() {
}
if (wasm->features.hasGC() && getTypeSystem() == TypeSystem::Nominal &&
options.optimizeLevel >= 2) {
- addIfNoDWARFIssues("global-subtyping");
+ addIfNoDWARFIssues("heap-refining");
// 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,
diff --git a/src/passes/passes.h b/src/passes/passes.h
index b9ba566d0..365a68ad7 100644
--- a/src/passes/passes.h
+++ b/src/passes/passes.h
@@ -51,9 +51,9 @@ Pass* createFunctionMetricsPass();
Pass* createGenerateDynCallsPass();
Pass* createGenerateI64DynCallsPass();
Pass* createGenerateStackIRPass();
-Pass* createGlobalSubtypingPass();
Pass* createGlobalTypeOptimizationPass();
Pass* createHeap2LocalPass();
+Pass* createHeapRefiningPass();
Pass* createI64ToI32LoweringPass();
Pass* createInlineMainPass();
Pass* createInliningPass();
diff --git a/test/lit/help/optimization-opts.test b/test/lit/help/optimization-opts.test
index 380101a53..1f52b2462 100644
--- a/test/lit/help/optimization-opts.test
+++ b/test/lit/help/optimization-opts.test
@@ -275,11 +275,11 @@
;; CHECK-NEXT:
;; CHECK-NEXT: --generate-stack-ir generate Stack IR
;; CHECK-NEXT:
-;; CHECK-NEXT: --global-subtyping apply more specific subtypes to
-;; CHECK-NEXT: type fields where possible
-;; CHECK-NEXT:
;; CHECK-NEXT: --gto globally optimize GC types
;; CHECK-NEXT:
+;; CHECK-NEXT: --heap-refining apply more specific subtypes to
+;; CHECK-NEXT: type fields where possible
+;; CHECK-NEXT:
;; CHECK-NEXT: --heap2local replace GC allocations with
;; CHECK-NEXT: locals
;; CHECK-NEXT:
diff --git a/test/lit/passes/global-subtyping.wast b/test/lit/passes/heap-subtyping.wast
index 5c05ac753..1a42d36a8 100644
--- a/test/lit/passes/global-subtyping.wast
+++ b/test/lit/passes/heap-subtyping.wast
@@ -1,5 +1,5 @@
;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited.
-;; RUN: foreach %s %t wasm-opt --nominal --global-subtyping -all -S -o - | filecheck %s
+;; RUN: foreach %s %t wasm-opt --nominal --heap-refining -all -S -o - | filecheck %s
(module
;; A struct with three fields. The first will have no writes, the second one