mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Merge branch 'PHP-8.4'
* PHP-8.4: Avoid possible spill conflict (one of the problem that caused GH-16821) (#16947)
This commit is contained in:
@@ -1306,6 +1306,13 @@ static bool zend_jit_spilling_may_cause_conflict(zend_jit_ctx *jit, int var, ir_
|
||||
&& (jit->ssa->cfg.blocks[jit->ssa->vars[jit->ssa->ops[jit->ssa->vars[var].definition].op1_use].definition_phi->block].flags & ZEND_BB_LOOP_HEADER)) {
|
||||
/* Avoid moving spill store out of loop */
|
||||
return 1;
|
||||
} else if (jit->ssa->vars[var].definition >= 0
|
||||
&& jit->ssa->ops[jit->ssa->vars[var].definition].op1_def == var
|
||||
&& jit->ssa->ops[jit->ssa->vars[var].definition].op1_use >= 0
|
||||
&& jit->ssa->ops[jit->ssa->vars[var].definition].op2_use >= 0
|
||||
&& jit->ra[jit->ssa->ops[jit->ssa->vars[var].definition].op2_use].ref == val) {
|
||||
/* Avoid spill conflict between of ASSIGN.op1_def and ASSIGN.op1_use */
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user