aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2021-03-21 15:40:40 +0100
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2021-03-21 16:08:03 +0100
commit4c6929edf09a9d751b22531d899f6b10a7af0106 (patch)
tree9779346972b15ec980b5356ed7fe6e8c2505b8eb
parentd1011daff5abcf5dd90d4b01be6e977bd23c6411 (diff)
downloadsparse-4c6929edf09a9d751b22531d899f6b10a7af0106.tar.gz
let find_dominating_parents() use insert_last_instruction()
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r--memops.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/memops.c b/memops.c
index ff54208e..f74bff2a 100644
--- a/memops.c
+++ b/memops.c
@@ -65,8 +65,8 @@ static int find_dominating_parents(pseudo_t pseudo, struct instruction *insn,
struct basic_block *parent;
FOR_EACH_PTR(bb->parents, parent) {
+ struct instruction *phisrc;
struct instruction *one;
- struct instruction *br;
pseudo_t phi;
FOR_EACH_PTR_REVERSE(parent->insns, one) {
@@ -95,12 +95,12 @@ no_dominance:
continue;
found_dominator:
- br = delete_last_instruction(&parent->insns);
- phi = alloc_phi(parent, one->target, one->type);
+ phisrc = alloc_phisrc(one->target, one->type);
+ phisrc->phi_node = insn;
+ insert_last_instruction(parent, phisrc);
+ phi = phisrc->target;
phi->ident = phi->ident ? : one->target->ident;
- add_instruction(&parent->insns, br);
use_pseudo(insn, phi, add_pseudo(dominators, phi));
- phi->def->phi_node = insn;
} END_FOR_EACH_PTR(parent);
return 1;
}