Lines Matching refs:ssa_op

798 		const zend_op *opline, const zend_ssa_op *ssa_op, uint8_t opcode, zend_ssa_range *tmp) {  in zend_inference_calc_binary_op_range()  argument
1085 const zend_ssa_op *ssa_op; in zend_inference_calc_range() local
1257 ssa_op = &ssa->ops[line]; in zend_inference_calc_range()
1259 return zend_inference_propagate_range(op_array, ssa, opline, ssa_op, var, tmp); in zend_inference_calc_range()
1262 …op_array, const zend_ssa *ssa, const zend_op *opline, const zend_ssa_op* ssa_op, int var, zend_ssa… in zend_inference_propagate_range() argument
1277 if (ssa_op->result_def == var) { in zend_inference_propagate_range()
1279 op_array, ssa, opline, ssa_op, opline->opcode, tmp); in zend_inference_propagate_range()
1284 if (ssa_op->result_def == var) { in zend_inference_propagate_range()
1301 if (ssa_op->op1_def == var) { in zend_inference_propagate_range()
1302 if (ssa_op->op1_def >= 0) { in zend_inference_propagate_range()
1311 } else if (ssa_op->result_def == var) { in zend_inference_propagate_range()
1329 if (ssa_op->op1_def == var) { in zend_inference_propagate_range()
1330 if (ssa_op->op1_def >= 0) { in zend_inference_propagate_range()
1340 if (ssa_op->result_def == var) { in zend_inference_propagate_range()
1351 if (ssa_op->op1_def == var) { in zend_inference_propagate_range()
1352 if (ssa_op->op1_def >= 0) { in zend_inference_propagate_range()
1364 if (ssa_op->op1_def == var || ssa_op->result_def == var) { in zend_inference_propagate_range()
1383 if (ssa_op->op1_def == var || ssa_op->result_def == var) { in zend_inference_propagate_range()
1402 if (ssa_op->op1_def == var || ssa_op->result_def == var) { in zend_inference_propagate_range()
1408 if (ssa_op->result_def == var) { in zend_inference_propagate_range()
1424 if (ssa_op->op1_def == var || ssa_op->result_def == var) { in zend_inference_propagate_range()
1430 if (ssa_op->result_def == var) { in zend_inference_propagate_range()
1447 if (ssa_op->op1_def == var) { in zend_inference_propagate_range()
1460 if (ssa_op->op1_def == var || ssa_op->op2_def == var || ssa_op->result_def == var) { in zend_inference_propagate_range()
1476 if ((ssa_op+1)->op1_def == var) { in zend_inference_propagate_range()
1478 ssa_op++; in zend_inference_propagate_range()
1491 if (ssa_op->op1_def == var || ssa_op->result_def == var) { in zend_inference_propagate_range()
1493 op_array, ssa, opline, ssa_op, in zend_inference_propagate_range()
1499 if (ssa_op->op1_def == var) { in zend_inference_propagate_range()
1519 if (ssa_op->result_def == var) { in zend_inference_propagate_range()
1535 if (ssa_op->result_def == var) { in zend_inference_propagate_range()
1561 if (ssa_op->result_def == var) { in zend_inference_propagate_range()
2434 …nfo(const zend_op_array *op_array, zend_ssa *ssa, const zend_op *opline, const zend_ssa_op *ssa_op) in zend_fetch_prop_info() argument
2442 } else if (ssa_op->op1_use >= 0) { in zend_fetch_prop_info()
2443 ce = ssa->var_info[ssa_op->op1_use].ce; in zend_fetch_prop_info()
2505 static bool result_may_be_separated(zend_ssa *ssa, zend_ssa_op *ssa_op) in result_may_be_separated() argument
2507 int tmp_var = ssa_op->result_def; in result_may_be_separated()
2514 if (use_op == ssa_op + 1) { in result_may_be_separated()
2530 zend_ssa_op *ssa_op, in _zend_update_type_info() argument
2544 ssa_op--; in _zend_update_type_info()
2555 || (ssa_op->result_use >= 0 && !(RES_USE_INFO() & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_CLASS))) in _zend_update_type_info()
2563 if (ssa_op->result_def >= 0 && !(ssa_var_info[ssa_op->result_def].type & MAY_BE_REF)) { in _zend_update_type_info()
2564 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2566 if (ssa_op->op1_def >= 0 && !(ssa_var_info[ssa_op->op1_def].type & MAY_BE_REF)) { in _zend_update_type_info()
2567 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2569 if (ssa_op->op2_def >= 0 && !(ssa_var_info[ssa_op->op2_def].type & MAY_BE_REF)) { in _zend_update_type_info()
2570 UPDATE_SSA_TYPE(tmp, ssa_op->op2_def); in _zend_update_type_info()
2577 if ((ssa_op+1)->op1_def >= 0 && !(ssa_var_info[(ssa_op+1)->op1_def].type & MAY_BE_REF)) { in _zend_update_type_info()
2578 UPDATE_SSA_TYPE(tmp, (ssa_op+1)->op1_def); in _zend_update_type_info()
2597 tmp = binary_op_result_type(ssa, opline->opcode, t1, t2, ssa_op->result_def, optimization_level); in _zend_update_type_info()
2598 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2614 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2617 UPDATE_SSA_TYPE(MAY_BE_LONG, ssa_op->result_def); in _zend_update_type_info()
2641 UPDATE_SSA_TYPE(MAY_BE_FALSE|MAY_BE_TRUE, ssa_op->result_def); in _zend_update_type_info()
2644 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
2654 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2655 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
2689 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2695 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
2700 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2701 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
2724 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2725 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->result_def); in _zend_update_type_info()
2738 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2750 prop_info = zend_fetch_prop_info(op_array, ssa, opline, ssa_op); in _zend_update_type_info()
2773 opline->opcode == ZEND_ASSIGN_OP ? ssa_op->op1_def : -1, optimization_level); in _zend_update_type_info()
2784 UPDATE_SSA_TYPE(orig, ssa_op->op1_def); in _zend_update_type_info()
2785 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
2790 UPDATE_SSA_TYPE(orig, ssa_op->op1_def); in _zend_update_type_info()
2791 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
2796 if (opline->opcode == ZEND_ASSIGN_OP && ssa_op->result_def >= 0 && (tmp & MAY_BE_RC1)) { in _zend_update_type_info()
2799 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2801 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
2867 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2869 UPDATE_SSA_OBJ_TYPE(ce, 1, ssa_op->result_def); in _zend_update_type_info()
2879 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
2884 if (!ssa_var_info[ssa_op->op1_use].has_range || in _zend_update_type_info()
2886 (ssa_var_info[ssa_op->op1_use].range.underflow || in _zend_update_type_info()
2887 ssa_var_info[ssa_op->op1_use].range.min == ZEND_LONG_MIN)) || in _zend_update_type_info()
2889 (ssa_var_info[ssa_op->op1_use].range.overflow || in _zend_update_type_info()
2890 ssa_var_info[ssa_op->op1_use].range.max == ZEND_LONG_MAX))) { in _zend_update_type_info()
2915 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
2916 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2918 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
2922 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2927 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
2936 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2946 if (!ssa_var_info[ssa_op->op1_use].has_range || in _zend_update_type_info()
2948 (ssa_var_info[ssa_op->op1_use].range.underflow || in _zend_update_type_info()
2949 ssa_var_info[ssa_op->op1_use].range.min == ZEND_LONG_MIN)) || in _zend_update_type_info()
2951 (ssa_var_info[ssa_op->op1_use].range.overflow || in _zend_update_type_info()
2952 ssa_var_info[ssa_op->op1_use].range.max == ZEND_LONG_MAX))) { in _zend_update_type_info()
2977 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
2978 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2984 …tmp |= ssa->var_info[ssa_op->op1_def].type & (MAY_BE_ARRAY_PACKED|MAY_BE_ARRAY_NUMERIC_HASH|MAY_BE… in _zend_update_type_info()
2985 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2986 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
2988 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3011 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3013 if ((ssa_op+1)->op1_def >= 0) { in _zend_update_type_info()
3015 ssa_op++; in _zend_update_type_info()
3022 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3028 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3029 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
3031 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3034 zend_fetch_prop_info(op_array, ssa, opline, ssa_op), &ce); in _zend_update_type_info()
3035 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3037 UPDATE_SSA_OBJ_TYPE(ce, 1, ssa_op->result_def); in _zend_update_type_info()
3040 if ((ssa_op+1)->op1_def >= 0) { in _zend_update_type_info()
3042 ssa_op++; in _zend_update_type_info()
3047 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3051 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3053 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3055 if ((ssa_op+1)->op1_def >= 0) { in _zend_update_type_info()
3057 ssa_op++; in _zend_update_type_info()
3062 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3071 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3072 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
3074 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3077 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3081 if (ssa_op->op2_def >= 0) { in _zend_update_type_info()
3086 UPDATE_SSA_TYPE(tmp, ssa_op->op2_def); in _zend_update_type_info()
3105 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
3106 if (ssa_var_info[ssa_op->op1_def].use_as_double) { in _zend_update_type_info()
3110 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3111 COPY_SSA_OBJ_TYPE(ssa_op->op2_use, ssa_op->op1_def); in _zend_update_type_info()
3113 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3122 if (ssa->vars[ssa_op->result_def].use_chain < 0 in _zend_update_type_info()
3123 || opline + 1 != op_array->opcodes + ssa->vars[ssa_op->result_def].use_chain) { in _zend_update_type_info()
3127 if (ssa->vars[ssa_op->result_def].use_chain < 0 in _zend_update_type_info()
3128 || opline + 1 != ssa_opcodes[ssa->vars[ssa_op->result_def].use_chain]) { in _zend_update_type_info()
3133 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3134 COPY_SSA_OBJ_TYPE(ssa_op->op2_use, ssa_op->result_def); in _zend_update_type_info()
3144 UPDATE_SSA_TYPE(tmp, ssa_op->op2_def); in _zend_update_type_info()
3154 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3155 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3156 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3165 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3166 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
3178 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3179 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3183 ssa_op++; in _zend_update_type_info()
3188 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3192 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3193 UPDATE_SSA_TYPE(MAY_BE_REF, ssa_op->result_def); in _zend_update_type_info()
3197 ssa_op++; in _zend_update_type_info()
3198 UPDATE_SSA_TYPE(MAY_BE_REF, ssa_op->op1_def); in _zend_update_type_info()
3204 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3212 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3216 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3219 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
3224 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3225 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
3229 if (ssa_op->op2_def >= 0) { in _zend_update_type_info()
3238 UPDATE_SSA_TYPE(tmp, ssa_op->op2_def); in _zend_update_type_info()
3239 COPY_SSA_OBJ_TYPE(ssa_op->op2_use, ssa_op->op2_def); in _zend_update_type_info()
3243 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
3252 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3253 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
3255 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3258 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3263 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
3265 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3269 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
3271 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3275 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
3287 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3294 UPDATE_SSA_TYPE(MAY_BE_STRING|MAY_BE_RC1|MAY_BE_RCN, ssa_op->result_def); in _zend_update_type_info()
3318 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3320 UPDATE_SSA_OBJ_TYPE(ce, 1, ssa_op->result_def); in _zend_update_type_info()
3322 UPDATE_SSA_OBJ_TYPE(NULL, 0, ssa_op->result_def); in _zend_update_type_info()
3327 UPDATE_SSA_TYPE(MAY_BE_CLASS, ssa_op->result_def); in _zend_update_type_info()
3329 UPDATE_SSA_OBJ_TYPE(ce, 0, ssa_op->result_def); in _zend_update_type_info()
3333 UPDATE_SSA_TYPE(MAY_BE_CLASS, ssa_op->result_def); in _zend_update_type_info()
3338 UPDATE_SSA_OBJ_TYPE(op_array->scope, 0, ssa_op->result_def); in _zend_update_type_info()
3340 UPDATE_SSA_OBJ_TYPE(NULL, 0, ssa_op->result_def); in _zend_update_type_info()
3345 UPDATE_SSA_OBJ_TYPE(op_array->scope->parent, 0, ssa_op->result_def); in _zend_update_type_info()
3347 UPDATE_SSA_OBJ_TYPE(NULL, 0, ssa_op->result_def); in _zend_update_type_info()
3352 UPDATE_SSA_OBJ_TYPE(NULL, 0, ssa_op->result_def); in _zend_update_type_info()
3359 UPDATE_SSA_OBJ_TYPE(ce, 0, ssa_op->result_def); in _zend_update_type_info()
3361 UPDATE_SSA_OBJ_TYPE(NULL, 0, ssa_op->result_def); in _zend_update_type_info()
3364 COPY_SSA_OBJ_TYPE(ssa_op->op2_use, ssa_op->result_def); in _zend_update_type_info()
3371 UPDATE_SSA_OBJ_TYPE(ce, 0, ssa_op->result_def); in _zend_update_type_info()
3372 } else if ((t1 & MAY_BE_CLASS) && ssa_op->op1_use >= 0 && ssa_var_info[ssa_op->op1_use].ce) { in _zend_update_type_info()
3373 …UPDATE_SSA_OBJ_TYPE(ssa_var_info[ssa_op->op1_use].ce, ssa_var_info[ssa_op->op1_use].is_instanceof,… in _zend_update_type_info()
3375 UPDATE_SSA_OBJ_TYPE(NULL, 0, ssa_op->result_def); in _zend_update_type_info()
3377 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3380 UPDATE_SSA_TYPE(MAY_BE_RC1|MAY_BE_RCN|MAY_BE_OBJECT, ssa_op->result_def); in _zend_update_type_info()
3381 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->result_def); in _zend_update_type_info()
3385 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
3404 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3406 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3425 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3429 tmp = ssa_var_info[ssa_op->result_use].type; in _zend_update_type_info()
3435 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3443 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3447 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
3448 UPDATE_SSA_TYPE(t1, ssa_op->op1_def); in _zend_update_type_info()
3449 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
3454 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
3461 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3462 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
3474 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3475 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->result_def); in _zend_update_type_info()
3511 UPDATE_SSA_TYPE(tmp, ssa_op->op2_def); in _zend_update_type_info()
3512 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3513 tmp = (ssa_op->result_use >= 0) ? RES_USE_INFO() : 0; in _zend_update_type_info()
3525 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3536 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
3606 j = ssa_vars[ssa_op->result_def].use_chain; in _zend_update_type_info()
3687 j = zend_ssa_next_use(ssa->ops, ssa_op->result_def, j); in _zend_update_type_info()
3704 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3709 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
3727 if (ssa->vars[ssa_op->result_def].use_chain < 0 in _zend_update_type_info()
3728 || opline + 1 != op_array->opcodes + ssa->vars[ssa_op->result_def].use_chain) { in _zend_update_type_info()
3732 if (ssa->vars[ssa_op->result_def].use_chain < 0 in _zend_update_type_info()
3733 || opline + 1 != ssa_opcodes[ssa->vars[ssa_op->result_def].use_chain]) { in _zend_update_type_info()
3738 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3742 UPDATE_SSA_OBJ_TYPE(op_array->scope, 1, ssa_op->result_def); in _zend_update_type_info()
3744 UPDATE_SSA_TYPE(MAY_BE_RCN|MAY_BE_OBJECT, ssa_op->result_def); in _zend_update_type_info()
3752 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3760 const zend_property_info *prop_info = zend_fetch_prop_info(op_array, ssa, opline, ssa_op); in _zend_update_type_info()
3773 } else if (ssa_op->op1_use >= 0 && !ssa->var_info[ssa_op->op1_use].is_instanceof) { in _zend_update_type_info()
3774 ce = ssa->var_info[ssa_op->op1_use].ce; in _zend_update_type_info()
3781 && !result_may_be_separated(ssa, ssa_op)) { in _zend_update_type_info()
3790 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3792 UPDATE_SSA_OBJ_TYPE(ce, 1, ssa_op->result_def); in _zend_update_type_info()
3812 if (!result_may_be_separated(ssa, ssa_op)) { in _zend_update_type_info()
3819 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3821 UPDATE_SSA_OBJ_TYPE(ce, 1, ssa_op->result_def); in _zend_update_type_info()
3828 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3843 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3845 UPDATE_SSA_OBJ_TYPE(ce, ce_is_instanceof, ssa_op->result_def); in _zend_update_type_info()
3850 UPDATE_SSA_TYPE(MAY_BE_OBJECT | MAY_BE_RC1 | MAY_BE_RCN, ssa_op->result_def); in _zend_update_type_info()
3851 UPDATE_SSA_OBJ_TYPE(zend_ce_closure, /* is_instanceof */ false, ssa_op->result_def); in _zend_update_type_info()
3855 …YPE(MAY_BE_RC1|MAY_BE_RCN|MAY_BE_ANY|MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY, ssa_op->result_def); in _zend_update_type_info()
3860 UPDATE_SSA_TYPE(MAY_BE_LONG, ssa_op->result_def); in _zend_update_type_info()
3863 …E_RCN|MAY_BE_ARRAY|MAY_BE_ARRAY_EMPTY|MAY_BE_ARRAY_PACKED|MAY_BE_ARRAY_OF_ANY, ssa_op->result_def); in _zend_update_type_info()
3867 UPDATE_SSA_TYPE(MAY_BE_STRING|MAY_BE_RCN, ssa_op->result_def); in _zend_update_type_info()
3870 UPDATE_SSA_TYPE(MAY_BE_STRING|MAY_BE_RC1|MAY_BE_RCN, ssa_op->result_def); in _zend_update_type_info()
3887 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3891 UPDATE_SSA_TYPE(MAY_BE_FALSE|MAY_BE_TRUE, ssa_op->result_def); in _zend_update_type_info()
3909 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3911 UPDATE_SSA_OBJ_TYPE(ce, 1, ssa_op->op1_def); in _zend_update_type_info()
3913 UPDATE_SSA_OBJ_TYPE(NULL, 0, ssa_op->op1_def); in _zend_update_type_info()
3916 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3918 UPDATE_SSA_OBJ_TYPE(ce, 1, ssa_op->result_def); in _zend_update_type_info()
3920 UPDATE_SSA_OBJ_TYPE(NULL, 0, ssa_op->result_def); in _zend_update_type_info()
3926 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3927 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
3928 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3937 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
3939 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3941 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3976 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3989 zend_ssa_op *ssa_op, in zend_update_type_info() argument
3993 …return _zend_update_type_info(op_array, ssa, script, NULL, opline, ssa_op, ssa_opcodes, optimizati… in zend_update_type_info()
4190 zend_ssa_op *ssa_op = &ssa->ops[use]; in can_convert_to_double() local
4192 if (zend_ssa_is_no_val_use(opline, ssa_op, var_num)) { in can_convert_to_double()
4201 type = ssa->var_info[ssa_op->result_def].type; in can_convert_to_double()
4225 if (ssa_op->op1_use == var_num) { in can_convert_to_double()
4238 if (ssa_op->op2_use == var_num) { in can_convert_to_double()
4286 if (!can_convert_to_double(op_array, ssa, ssa_op->result_def, &orig_result, visited)) { in can_convert_to_double()
4462 zend_ssa_op *ssa_op = ssa->ops ? &ssa->ops[opline - op_array->opcodes] : NULL; in zend_func_return_info() local
4463 if (!recursive && ssa_op && info->ssa.var_info && in zend_func_return_info()
4464 ssa_op->op1_use >= 0 && in zend_func_return_info()
4465 info->ssa.var_info[ssa_op->op1_use].recursive) { in zend_func_return_info()
4486 if (ssa_op && info->ssa.var_info && in zend_func_return_info()
4487 ssa_op->op1_use >= 0 && !(t1 & MAY_BE_REF) && in zend_func_return_info()
4488 info->ssa.var_info[ssa_op->op1_use].ce) { in zend_func_return_info()
4489 arg_ce = info->ssa.var_info[ssa_op->op1_use].ce; in zend_func_return_info()
4490 arg_is_instanceof = info->ssa.var_info[ssa_op->op1_use].is_instanceof; in zend_func_return_info()
4529 } else if (ssa_op && info->ssa.var_info && ssa_op->op1_use >= 0) { in zend_func_return_info()
4530 if (info->ssa.var_info[ssa_op->op1_use].has_range) { in zend_func_return_info()
4533 tmp_range = info->ssa.var_info[ssa_op->op1_use].range; in zend_func_return_info()
4536 if (info->ssa.var_info[ssa_op->op1_use].range.underflow) { in zend_func_return_info()
4540 tmp_range.min = MIN(tmp_range.min, info->ssa.var_info[ssa_op->op1_use].range.min); in zend_func_return_info()
4542 if (info->ssa.var_info[ssa_op->op1_use].range.overflow) { in zend_func_return_info()
4546 tmp_range.max = MAX(tmp_range.max, info->ssa.var_info[ssa_op->op1_use].range.max); in zend_func_return_info()
4791 ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op, const zend_op_arr… in zend_may_throw_ex() argument
4917 return zend_may_throw(opline + 1, ssa_op ? ssa_op + 1 : NULL, op_array, ssa); in zend_may_throw_ex()
5054 if (_ssa_op1_info(op_array, ssa, opline+1, ssa_op+1) & MAY_BE_UNDEF) { in zend_may_throw_ex()
5068 if (_ssa_op1_info(op_array, ssa, opline+1, ssa_op+1) & MAY_BE_UNDEF) { in zend_may_throw_ex()
5072 if (ssa_op->op1_use) { in zend_may_throw_ex()
5073 const zend_ssa_var_info *var_info = ssa->var_info + ssa_op->op1_use; in zend_may_throw_ex()
5203 ZEND_API bool zend_may_throw(const zend_op *opline, const zend_ssa_op *ssa_op, const zend_op_array … in zend_may_throw() argument
5205 return zend_may_throw_ex(opline, ssa_op, op_array, ssa, OP1_INFO(), OP2_INFO()); in zend_may_throw()