mirror of
https://github.com/php/php-src.git
synced 2025-08-21 01:45:16 +02:00
Eliminate useless exception checks
This commit is contained in:
parent
a167e0426d
commit
e0af92c16e
3 changed files with 7 additions and 3 deletions
|
@ -4312,7 +4312,8 @@ int zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op, const ze
|
|||
}
|
||||
}
|
||||
} else if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) {
|
||||
if (t1 & (MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_ARRAY)) {
|
||||
if ((t1 & MAY_BE_RC1)
|
||||
&& (t1 & (MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_ARRAY))) {
|
||||
switch (opline->opcode) {
|
||||
case ZEND_CASE:
|
||||
case ZEND_CASE_STRICT:
|
||||
|
@ -4350,7 +4351,8 @@ int zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op, const ze
|
|||
}
|
||||
}
|
||||
} else if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) {
|
||||
if (t2 & (MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_ARRAY)) {
|
||||
if ((t2 & MAY_BE_RC1)
|
||||
&& (t2 & (MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_ARRAY))) {
|
||||
switch (opline->opcode) {
|
||||
case ZEND_ASSIGN:
|
||||
break;
|
||||
|
|
|
@ -3765,9 +3765,11 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
|
|||
((op1_info & MAY_BE_UNDEF) != 0 &&
|
||||
opline->opcode == ZEND_FETCH_DIM_R) ||
|
||||
((opline->op1_type & (IS_TMP_VAR|IS_VAR)) != 0 &&
|
||||
(op1_info & MAY_BE_RC1) &&
|
||||
(op1_info & (MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_ARRAY)) != 0) ||
|
||||
(op2_info & MAY_BE_UNDEF) != 0 ||
|
||||
((opline->op2_type & (IS_TMP_VAR|IS_VAR)) != 0 &&
|
||||
(op2_info & MAY_BE_RC1) &&
|
||||
(op2_info & (MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_ARRAY)) != 0)))) {
|
||||
goto jit_failure;
|
||||
}
|
||||
|
|
|
@ -10595,7 +10595,7 @@ static int zend_jit_isset_isempty_dim(dasm_State **Dst, const zend_op *opline, c
|
|||
if (exit_addr
|
||||
&& !(op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_ARRAY))
|
||||
&& !may_throw
|
||||
&& !(opline->op1_type & (IS_TMP_VAR|IS_VAR))
|
||||
&& (!(opline->op1_type & (IS_TMP_VAR|IS_VAR)) || (op1_info & AVOID_REFCOUNTING))
|
||||
&& (!(opline->op2_type & (IS_TMP_VAR|IS_VAR)) || !(op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_LONG)))) {
|
||||
if (smart_branch_opcode == ZEND_JMPNZ) {
|
||||
found_exit_addr = exit_addr;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue