summaryrefslogtreecommitdiff
path: root/src/ir/utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ir/utils.h')
-rw-r--r--src/ir/utils.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/ir/utils.h b/src/ir/utils.h
index f06a68fff..fa3e34423 100644
--- a/src/ir/utils.h
+++ b/src/ir/utils.h
@@ -109,7 +109,9 @@ struct ReFinalize
// block finalization is O(bad) if we do each block by itself, so do it in
// bulk, tracking break value types so we just do a linear pass
- std::map<Name, Type> breakValues;
+ // TODO: Switch to std::unordered_set once types are properly canonicalized so
+ // determinism isn't an issue.
+ std::unordered_map<Name, std::set<Type>> breakTypes;
#define DELEGATE(CLASS_TO_VISIT) \
void visit##CLASS_TO_VISIT(CLASS_TO_VISIT* curr);