diff options
author | Sam Clegg <sbc@chromium.org> | 2024-05-16 14:00:06 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-16 14:00:06 -0700 |
commit | 669bc06d0566041bfdbae97f87e60130945b557f (patch) | |
tree | 619d50553509158bbd41e4e0f39dab0792d25ab8 /src/passes/Table64Lowering.cpp | |
parent | fab6649590b086f990286408d8715373be3eda66 (diff) | |
download | binaryen-669bc06d0566041bfdbae97f87e60130945b557f.tar.gz binaryen-669bc06d0566041bfdbae97f87e60130945b557f.tar.bz2 binaryen-669bc06d0566041bfdbae97f87e60130945b557f.zip |
[Memory64Lowering/Table64Lowering] Avoid dependency in visitation order. NFC (#6600)
Followup to #6599.
Diffstat (limited to 'src/passes/Table64Lowering.cpp')
-rw-r--r-- | src/passes/Table64Lowering.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/passes/Table64Lowering.cpp b/src/passes/Table64Lowering.cpp index b24bea167..65c9a2a63 100644 --- a/src/passes/Table64Lowering.cpp +++ b/src/passes/Table64Lowering.cpp @@ -95,17 +95,7 @@ struct Table64Lowering : public WalkerPass<PostWalker<Table64Lowering>> { wrapAddress64(curr->target, curr->table); } - void visitTable(Table* table) { - // This is visited last. - seenTable = true; - if (table->is64()) { - table->indexType = Type::i32; - } - } - void visitElementSegment(ElementSegment* segment) { - // We assume that tables are visited after segments, so assert that here. - assert(!seenTable); auto& module = *getModule(); // Passive segments don't have any offset to update. @@ -143,7 +133,17 @@ struct Table64Lowering : public WalkerPass<PostWalker<Table64Lowering>> { } } - bool seenTable = false; + void run(Module* module) override { + super::run(module); + // Don't modify the tables themselves until after the traversal since we + // that would require tables to be the last thing that get visited, and + // we don't want to depend on that specific ordering. + for (auto& table : module->tables) { + if (table->is64()) { + table->indexType = Type::i32; + } + } + } }; Pass* createTable64LoweringPass() { return new Table64Lowering(); } |