From ca0edc2b9ed99a93e0bf8aae2b0614459df5ed70 Mon Sep 17 00:00:00 2001 From: ZhuangYumin Date: Tue, 22 Oct 2024 17:57:53 +0000 Subject: [PATCH] fix node multiple occurence in reg allocating --- src/opt/confgraph.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/opt/confgraph.cpp b/src/opt/confgraph.cpp index 1d957dc..f89871d 100644 --- a/src/opt/confgraph.cpp +++ b/src/opt/confgraph.cpp @@ -286,7 +286,10 @@ void MergeNodeInto(ConfGraphNode *node, ConfGraphNode *target, ConfGraph &confgr "something strange happened: neighbors_not_available is not empty in function MergeNodeInto"); } target->degree = target->neighbors.size(); - if (!target->is_binded_with_physical_reg) { + confgraph.low_degree_and_not_move_related.erase(target); + confgraph.low_degree_and_move_related.erase(target); + confgraph.high_degree_nodes.erase(target); + if (!target->is_binded_with_physical_reg && !target->is_temporarily_removed) { if (target->degree >= kMaxRegs) { confgraph.high_degree_nodes.insert(target); } else {