diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2021-05-18 15:58:31 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-18 15:58:31 -0700 |
commit | 92b0cbdd9e2747c5cf6ecc546718d0ec0b1bc64b (patch) | |
tree | 988bdc1753ba73f41b7c2c5613170fa638a1e5f9 /src/passes/Asyncify.cpp | |
parent | f8bb9c228446998882edea012bf9fa3004262504 (diff) | |
download | binaryen-92b0cbdd9e2747c5cf6ecc546718d0ec0b1bc64b.tar.gz binaryen-92b0cbdd9e2747c5cf6ecc546718d0ec0b1bc64b.tar.bz2 binaryen-92b0cbdd9e2747c5cf6ecc546718d0ec0b1bc64b.zip |
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.
Diffstat (limited to 'src/passes/Asyncify.cpp')
-rw-r--r-- | src/passes/Asyncify.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/passes/Asyncify.cpp b/src/passes/Asyncify.cpp index 1abfa9628..7ad3fab5d 100644 --- a/src/passes/Asyncify.cpp +++ b/src/passes/Asyncify.cpp @@ -380,8 +380,8 @@ public: } private: - std::map<Type, Name> map; - std::map<Name, Type> rev; + std::unordered_map<Type, Name> map; + std::unordered_map<Name, Type> rev; // Collect the types returned from all calls for which call support globals // may need to be generated. @@ -1237,7 +1237,7 @@ private: std::unique_ptr<AsyncifyBuilder> builder; Index rewindIndex; - std::map<Type, Index> fakeCallLocals; + std::unordered_map<Type, Index> fakeCallLocals; std::set<Index> relevantLiveLocals; void findRelevantLiveLocals(Function* func) { |