From 92b0cbdd9e2747c5cf6ecc546718d0ec0b1bc64b Mon Sep 17 00:00:00 2001 From: Thomas Lively <7121787+tlively@users.noreply.github.com> Date: Tue, 18 May 2021 15:58:31 -0700 Subject: Remove Type ordering (#3793) As found in #3682, the current implementation of type ordering is not correct, and although the immediate issue would be easy to fix, I don't think the current intended comparison algorithm is correct in the first place. Rather than try to switch to using a correct algorithm (which I am not sure I know how to implement, although I have an idea) this PR removes Type ordering entirely. In places that used Type ordering with std::set or std::map because they require deterministic iteration order, this PR uses InsertOrdered{Set,Map} instead. --- src/wasm/wasm-validator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/wasm/wasm-validator.cpp') diff --git a/src/wasm/wasm-validator.cpp b/src/wasm/wasm-validator.cpp index 3079ad0bb..d82542668 100644 --- a/src/wasm/wasm-validator.cpp +++ b/src/wasm/wasm-validator.cpp @@ -224,7 +224,7 @@ struct FunctionValidator : public WalkerPass> { std::unordered_set delegateTargetNames; std::unordered_set rethrowTargetNames; - std::set returnTypes; // types used in returns + std::unordered_set returnTypes; // types used in returns // Binaryen IR requires that label names must be unique - IR generators must // ensure that -- cgit v1.2.3