aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/flow.c
diff options
Diffstat (limited to 'flow.c')
-rw-r--r--flow.c17
1 files changed, 4 insertions, 13 deletions
diff --git a/flow.c b/flow.c
index 62658b92..e6f99a0d 100644
--- a/flow.c
+++ b/flow.c
@@ -544,15 +544,6 @@ found:
return 1;
}
-static void kill_store(struct instruction *insn)
-{
- if (insn) {
- insn->bb = NULL;
- insn->opcode = OP_SNOP;
- kill_use(&insn->target);
- }
-}
-
/* Kill a pseudo that is dead on exit from the bb */
static void kill_dead_stores(pseudo_t pseudo, unsigned long generation, struct basic_block *bb, int local)
{
@@ -577,7 +568,7 @@ static void kill_dead_stores(pseudo_t pseudo, unsigned long generation, struct b
if (insn->src == pseudo) {
if (opcode == OP_LOAD)
return;
- kill_store(insn);
+ kill_instruction_force(insn);
continue;
}
if (local)
@@ -608,7 +599,7 @@ static void kill_dominated_stores(pseudo_t pseudo, struct instruction *insn,
/* Unreachable store? Undo it */
if (!bb) {
- kill_store(insn);
+ kill_instruction_force(insn);
return;
}
if (bb->generation == generation)
@@ -631,7 +622,7 @@ static void kill_dominated_stores(pseudo_t pseudo, struct instruction *insn,
return;
if (one->opcode == OP_LOAD)
return;
- kill_store(one);
+ kill_instruction_force(one);
} END_FOR_EACH_PTR_REVERSE(one);
if (!found) {
@@ -723,7 +714,7 @@ external_visibility:
FOR_EACH_PTR(pseudo->users, pu) {
struct instruction *insn = pu->insn;
if (insn->opcode == OP_STORE)
- kill_store(insn);
+ kill_instruction_force(insn);
} END_FOR_EACH_PTR(pu);
} else {
/*