diff options
-rw-r--r-- | flow.c | 2 | ||||
-rw-r--r-- | linearize.c | 3 | ||||
-rw-r--r-- | linearize.h | 2 | ||||
-rw-r--r-- | simplify.c | 8 |
4 files changed, 8 insertions, 7 deletions
@@ -268,7 +268,7 @@ try_to_rewrite_target: */ if (bb_list_size(target->parents) != 1) return retval; - insert_branch(target, insn, final); + insert_branch(insn, final); return 1; } diff --git a/linearize.c b/linearize.c index 7248fa56..ebb03217 100644 --- a/linearize.c +++ b/linearize.c @@ -700,8 +700,9 @@ static void remove_parent(struct basic_block *child, struct basic_block *parent) } /* Change a "switch" or a conditional branch into a branch */ -void insert_branch(struct basic_block *bb, struct instruction *jmp, struct basic_block *target) +void insert_branch(struct instruction *jmp, struct basic_block *target) { + struct basic_block *bb = jmp->bb; struct instruction *br, *old; struct basic_block *child; diff --git a/linearize.h b/linearize.h index 7909b01f..1bb9d77e 100644 --- a/linearize.h +++ b/linearize.h @@ -319,7 +319,7 @@ struct entrypoint { }; extern void insert_select(struct basic_block *bb, struct instruction *br, struct instruction *phi, pseudo_t if_true, pseudo_t if_false); -extern void insert_branch(struct basic_block *bb, struct instruction *br, struct basic_block *target); +extern void insert_branch(struct instruction *br, struct basic_block *target); struct instruction *alloc_phisrc(pseudo_t pseudo, struct symbol *type); struct instruction *alloc_phi_node(struct basic_block *bb, struct symbol *type, struct ident *ident); @@ -2441,7 +2441,7 @@ static int simplify_branch(struct instruction *insn) /* Constant conditional */ if (constant(cond)) { - insert_branch(insn->bb, insn, cond->value ? insn->bb_true : insn->bb_false); + insert_branch(insn, cond->value ? insn->bb_true : insn->bb_false); return REPEAT_CSE; } @@ -2473,11 +2473,11 @@ static int simplify_branch(struct instruction *insn) long long val1 = def->src2->value; long long val2 = def->src3->value; if (!val1 && !val2) { - insert_branch(insn->bb, insn, insn->bb_false); + insert_branch(insn, insn->bb_false); return REPEAT_CSE; } if (val1 && val2) { - insert_branch(insn->bb, insn, insn->bb_true); + insert_branch(insn, insn->bb_true); return REPEAT_CSE; } if (val2) { @@ -2515,7 +2515,7 @@ static int simplify_switch(struct instruction *insn) return 0; found: - insert_branch(insn->bb, insn, jmp->target); + insert_branch(insn, jmp->target); return REPEAT_CSE; } |