Skip to content

Commit cc70838

Browse files
committed
Merge IR
IR commit: 0441281e95ce9736131eddc71ce666389dcccd4b
1 parent f6c2e40 commit cc70838

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

ext/opcache/jit/ir/ir_gcm.c

+4-3
Original file line numberDiff line numberDiff line change
@@ -401,9 +401,10 @@ static bool ir_split_partially_dead_node(ir_ctx *ctx, ir_ref ref, uint32_t b)
401401
for (i = 1; i < clones_count; i++) {
402402
clones[i].ref = clone = ir_emit(ctx, insn->optx, insn->op1, insn->op2, insn->op3);
403403
insn = &ctx->ir_base[ref];
404-
if (insn->op1 > 0) ir_use_list_add(ctx, insn->op1, clone);
405-
if (insn->op2 > 0) ir_use_list_add(ctx, insn->op2, clone);
406-
if (insn->op3 > 0) ir_use_list_add(ctx, insn->op3, clone);
404+
/* Depending on the flags in IR_OPS, these can be references or data. */
405+
if (insn->op1 > 0 && insn->inputs_count >= 1) ir_use_list_add(ctx, insn->op1, clone);
406+
if (insn->op2 > 0 && insn->inputs_count >= 2) ir_use_list_add(ctx, insn->op2, clone);
407+
if (insn->op3 > 0 && insn->inputs_count >= 3) ir_use_list_add(ctx, insn->op3, clone);
407408
}
408409

409410
/* Reconstruct IR: Update DEF->USE lists, CFG mapping and etc */

ext/opcache/jit/ir/ir_sccp.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -3067,7 +3067,7 @@ static void ir_iter_optimize_if(ir_ctx *ctx, ir_ref ref, ir_insn *insn, ir_bitqu
30673067

30683068
static void ir_iter_optimize_guard(ir_ctx *ctx, ir_ref ref, ir_insn *insn, ir_bitqueue *worklist)
30693069
{
3070-
bool swap;
3070+
bool swap = 0;
30713071
ir_ref condition = ir_iter_optimize_condition(ctx, insn->op1, insn->op2, &swap);
30723072

30733073
if (swap) {

0 commit comments

Comments
 (0)