diff options
| -rw-r--r-- | cse.c | 1 | ||||
| -rw-r--r-- | flow.c | 6 |
2 files changed, 2 insertions, 5 deletions
@@ -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; } @@ -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, |
