Lines Matching refs:merge_ref
1389 static bool ir_optimize_phi(ir_ctx *ctx, ir_ref merge_ref, ir_insn *merge, ir_ref ref, ir_insn *ins… in ir_optimize_phi() argument
1392 IR_ASSERT(ctx->use_lists[merge_ref].count == 2); in ir_optimize_phi()
1449 ir_ref next_ref = ctx->use_edges[ctx->use_lists[merge_ref].refs]; in ir_optimize_phi()
1453 next_ref = ctx->use_edges[ctx->use_lists[merge_ref].refs + 1]; in ir_optimize_phi()
1489 MAKE_NOP(merge); CLEAR_USES(merge_ref); in ir_optimize_phi()
1535 ir_ref next_ref = ctx->use_edges[ctx->use_lists[merge_ref].refs]; in ir_optimize_phi()
1539 next_ref = ctx->use_edges[ctx->use_lists[merge_ref].refs + 1]; in ir_optimize_phi()
1571 MAKE_NOP(merge); CLEAR_USES(merge_ref); in ir_optimize_phi()
1600 ir_ref next_ref = ctx->use_edges[ctx->use_lists[merge_ref].refs]; in ir_optimize_phi()
1604 next_ref = ctx->use_edges[ctx->use_lists[merge_ref].refs + 1]; in ir_optimize_phi()
1628 MAKE_NOP(merge); CLEAR_USES(merge_ref); in ir_optimize_phi()
1752 ir_ref merge_ref = insn->op1; in ir_try_split_if() local
1753 ir_insn *merge = &ctx->ir_base[merge_ref]; in ir_try_split_if()
1755 if (ctx->use_lists[merge_ref].count == 2) { in ir_try_split_if()
1801 ir_use_list_replace_one(ctx, end1_ref, merge_ref, if_false_ref); in ir_try_split_if()
1802 ir_use_list_replace_one(ctx, end2_ref, merge_ref, if_true_ref); in ir_try_split_if()
1804 MAKE_NOP(merge); CLEAR_USES(merge_ref); in ir_try_split_if()
1837 ir_use_list_replace_one(ctx, end1_ref, merge_ref, if_false_ref); in ir_try_split_if()
1838 ir_use_list_replace_one(ctx, end2_ref, merge_ref, if_false_ref); in ir_try_split_if()
1840 MAKE_NOP(merge); CLEAR_USES(merge_ref); in ir_try_split_if()
1877 ir_use_list_remove_all(ctx, merge_ref, cond_ref); in ir_try_split_if()
1882 ir_use_list_replace_one(ctx, end1_ref, merge_ref, if_false_ref); in ir_try_split_if()
1896 insn->op1 = merge_ref; in ir_try_split_if()
1936 ir_ref merge_ref = insn->op1; in ir_try_split_if_cmp() local
1937 ir_insn *merge = &ctx->ir_base[merge_ref]; in ir_try_split_if_cmp()
1939 if (ctx->use_lists[merge_ref].count == 2) { in ir_try_split_if_cmp()
1988 ir_use_list_replace_one(ctx, end1_ref, merge_ref, if_false_ref); in ir_try_split_if_cmp()
1989 ir_use_list_replace_one(ctx, end2_ref, merge_ref, if_true_ref); in ir_try_split_if_cmp()
1991 MAKE_NOP(merge); CLEAR_USES(merge_ref); in ir_try_split_if_cmp()
2028 ir_use_list_replace_one(ctx, end1_ref, merge_ref, if_false_ref); in ir_try_split_if_cmp()
2029 ir_use_list_replace_one(ctx, end2_ref, merge_ref, if_false_ref); in ir_try_split_if_cmp()
2031 MAKE_NOP(merge); CLEAR_USES(merge_ref); in ir_try_split_if_cmp()
2071 ir_use_list_remove_all(ctx, merge_ref, phi_ref); in ir_try_split_if_cmp()
2076 ir_use_list_replace_one(ctx, end1_ref, merge_ref, if_false_ref); in ir_try_split_if_cmp()
2092 insn->op1 = merge_ref; in ir_try_split_if_cmp()
2116 static void ir_optimize_merge(ir_ctx *ctx, ir_ref merge_ref, ir_insn *merge, ir_bitqueue *worklist) in ir_optimize_merge() argument
2118 ir_use_list *use_list = &ctx->use_lists[merge_ref]; in ir_optimize_merge()
2121 ir_try_remove_empty_diamond(ctx, merge_ref, merge, worklist); in ir_optimize_merge()
2132 if (next->op == IR_IF && next->op1 == merge_ref && ctx->use_lists[phi_ref].count == 1) { in ir_optimize_merge()
2151 ir_optimize_phi(ctx, merge_ref, merge, phi_ref, phi, worklist); in ir_optimize_merge()