fix unstable iter

This commit is contained in:
lizzie 2026-02-01 05:51:35 +00:00 committed by crueter
parent adcf89eb7c
commit 0ed1703672
1 changed files with 5 additions and 4 deletions

View File

@ -53,9 +53,9 @@ struct IndirectBranchVariable {
auto operator<=>(const IndirectBranchVariable&) const noexcept = default; auto operator<=>(const IndirectBranchVariable&) const noexcept = default;
}; };
using Variant = std::variant<IR::Reg, IR::Pred, ZeroFlagTag, SignFlagTag, CarryFlagTag, using Variant = std::variant<IR::Reg, IR::Pred, ZeroFlagTag, SignFlagTag, CarryFlagTag, OverflowFlagTag, GotoVariable, IndirectBranchVariable>;
OverflowFlagTag, GotoVariable, IndirectBranchVariable>; // TODO: majority of these require stable iterators, test with XC beforehand
using ValueMap = ankerl::unordered_dense::map<IR::Block*, IR::Value>; using ValueMap = std::unordered_map<IR::Block*, IR::Value>;
struct DefTable { struct DefTable {
const IR::Value& Def(IR::Block* block, IR::Reg variable) { const IR::Value& Def(IR::Block* block, IR::Reg variable) {
@ -115,7 +115,8 @@ struct DefTable {
} }
std::array<ValueMap, IR::NUM_USER_PREDS> preds; std::array<ValueMap, IR::NUM_USER_PREDS> preds;
ankerl::unordered_dense::map<u32, ValueMap> goto_vars; // TODO: Requires stable iterators
std::unordered_map<u32, ValueMap> goto_vars;
ValueMap indirect_branch_var; ValueMap indirect_branch_var;
ValueMap zero_flag; ValueMap zero_flag;
ValueMap sign_flag; ValueMap sign_flag;