aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
-rw-r--r--cse.c1
-rw-r--r--flow.c6
2 files changed, 2 insertions, 5 deletions
diff --git a/cse.c b/cse.c
index 7aa7fa28..b55c602c 100644
--- a/cse.c
+++ b/cse.c
@@ -226,6 +226,7 @@ static struct instruction * cse_one_instruction(struct instruction *insn, struct
{
convert_instruction_target(insn, def->target);
insn->opcode = OP_NOP;
+ insn->bb = NULL;
repeat_phase |= REPEAT_CSE;
return def;
}
diff --git a/flow.c b/flow.c
index 07c9efde..fd575ef5 100644
--- a/flow.c
+++ b/flow.c
@@ -162,6 +162,7 @@ static void convert_load_insn(struct instruction *insn, pseudo_t src)
convert_instruction_target(insn, src);
/* Turn the load into a no-op */
insn->opcode = OP_LNOP;
+ insn->bb = NULL;
}
static int overlapping_memop(struct instruction *a, struct instruction *b)
@@ -296,9 +297,6 @@ static void rewrite_load_instruction(struct instruction *insn, struct pseudo_lis
return;
complex_phi:
- new = alloc_pseudo(insn);
- convert_load_insn(insn, new);
-
/*
* FIXME! This is dubious. We should probably allocate a new
* instruction instead of re-using the OP_LOAD instruction.
@@ -310,9 +308,7 @@ complex_phi:
* generation (and then we always check the opcode).
*/
insn->opcode = OP_PHI;
- insn->target = new;
insn->phi_list = dominators;
- new->def = insn;
}
static int find_dominating_stores(pseudo_t pseudo, struct instruction *insn,