Lines Matching refs:ssa_op

566 		zend_op *opline, zend_ssa_op *ssa_op, zend_uchar opcode, zend_ssa_range *tmp) {  in zend_inference_calc_binary_op_range()  argument
853 zend_ssa_op *ssa_op; in zend_inference_calc_range() local
992 ssa_op = &ssa->ops[line]; in zend_inference_calc_range()
994 return zend_inference_propagate_range(op_array, ssa, opline, ssa_op, var, tmp); in zend_inference_calc_range()
997 …st zend_op_array *op_array, zend_ssa *ssa, zend_op *opline, zend_ssa_op* ssa_op, int var, zend_ssa… in zend_inference_propagate_range() argument
1012 if (ssa_op->result_def == var) { in zend_inference_propagate_range()
1014 op_array, ssa, opline, ssa_op, opline->opcode, tmp); in zend_inference_propagate_range()
1019 if (ssa_op->result_def == var) { in zend_inference_propagate_range()
1036 if (ssa_op->op1_def == var) { in zend_inference_propagate_range()
1037 if (ssa_op->op1_def >= 0) { in zend_inference_propagate_range()
1046 } else if (ssa_op->result_def == var) { in zend_inference_propagate_range()
1064 if (ssa_op->op1_def == var) { in zend_inference_propagate_range()
1065 if (ssa_op->op1_def >= 0) { in zend_inference_propagate_range()
1075 if (ssa_op->result_def == var) { in zend_inference_propagate_range()
1086 if (ssa_op->op1_def == var) { in zend_inference_propagate_range()
1087 if (ssa_op->op1_def >= 0) { in zend_inference_propagate_range()
1099 if (ssa_op->op1_def == var || ssa_op->result_def == var) { in zend_inference_propagate_range()
1118 if (ssa_op->op1_def == var || ssa_op->result_def == var) { in zend_inference_propagate_range()
1137 if (ssa_op->op1_def == var || ssa_op->result_def == var) { in zend_inference_propagate_range()
1143 if (ssa_op->result_def == var) { in zend_inference_propagate_range()
1159 if (ssa_op->op1_def == var || ssa_op->result_def == var) { in zend_inference_propagate_range()
1165 if (ssa_op->result_def == var) { in zend_inference_propagate_range()
1182 if (ssa_op->op1_def == var) { in zend_inference_propagate_range()
1195 if (ssa_op->op1_def == var || ssa_op->op2_def == var || ssa_op->result_def == var) { in zend_inference_propagate_range()
1211 if ((ssa_op+1)->op1_def == var) { in zend_inference_propagate_range()
1213 ssa_op++; in zend_inference_propagate_range()
1226 if (ssa_op->op1_def == var || ssa_op->result_def == var) { in zend_inference_propagate_range()
1228 op_array, ssa, opline, ssa_op, in zend_inference_propagate_range()
1234 if (ssa_op->op1_def == var) { in zend_inference_propagate_range()
1254 if (ssa_op->result_def == var) { in zend_inference_propagate_range()
1270 if (ssa_op->result_def == var) { in zend_inference_propagate_range()
1296 if (ssa_op->result_def == var) { in zend_inference_propagate_range()
2108 …fetch_prop_info(const zend_op_array *op_array, zend_ssa *ssa, zend_op *opline, zend_ssa_op *ssa_op) in zend_fetch_prop_info() argument
2116 } else if (ssa_op->op1_use >= 0) { in zend_fetch_prop_info()
2117 ce = ssa->var_info[ssa_op->op1_use].ce; in zend_fetch_prop_info()
2194 static zend_bool result_may_be_separated(zend_ssa *ssa, zend_ssa_op *ssa_op) in result_may_be_separated() argument
2196 int tmp_var = ssa_op->result_def; in result_may_be_separated()
2203 if (use_op == ssa_op + 1) { in result_may_be_separated()
2219 zend_ssa_op *ssa_op, in _zend_update_type_info() argument
2233 ssa_op--; in _zend_update_type_info()
2245 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
2246 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2248 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
2249 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2251 if (ssa_op->op2_def >= 0) { in _zend_update_type_info()
2252 UPDATE_SSA_TYPE(tmp, ssa_op->op2_def); in _zend_update_type_info()
2270 tmp = binary_op_result_type(ssa, opline->opcode, t1, t2, ssa_op->result_def, optimization_level); in _zend_update_type_info()
2271 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2287 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2290 UPDATE_SSA_TYPE(MAY_BE_LONG, ssa_op->result_def); in _zend_update_type_info()
2314 UPDATE_SSA_TYPE(MAY_BE_FALSE|MAY_BE_TRUE, ssa_op->result_def); in _zend_update_type_info()
2317 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
2327 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2328 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
2359 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2365 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
2370 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2371 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
2391 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2392 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->result_def); in _zend_update_type_info()
2403 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2414 prop_info = zend_fetch_prop_info(op_array, ssa, opline, ssa_op); in _zend_update_type_info()
2437 opline->opcode == ZEND_ASSIGN_OP ? ssa_op->op1_def : -1, optimization_level); in _zend_update_type_info()
2448 UPDATE_SSA_TYPE(orig, ssa_op->op1_def); in _zend_update_type_info()
2449 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
2454 UPDATE_SSA_TYPE(orig, ssa_op->op1_def); in _zend_update_type_info()
2455 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
2460 if (opline->opcode == ZEND_ASSIGN_OP && ssa_op->result_def >= 0 && (tmp & MAY_BE_RC1)) { in _zend_update_type_info()
2463 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2465 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
2503 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2505 UPDATE_SSA_OBJ_TYPE(ce, 1, ssa_op->result_def); in _zend_update_type_info()
2518 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
2523 if (!ssa_var_info[ssa_op->op1_use].has_range || in _zend_update_type_info()
2525 (ssa_var_info[ssa_op->op1_use].range.underflow || in _zend_update_type_info()
2526 ssa_var_info[ssa_op->op1_use].range.min == ZEND_LONG_MIN)) || in _zend_update_type_info()
2528 (ssa_var_info[ssa_op->op1_use].range.overflow || in _zend_update_type_info()
2529 ssa_var_info[ssa_op->op1_use].range.max == ZEND_LONG_MAX))) { in _zend_update_type_info()
2554 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
2555 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2557 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
2558 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2563 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
2572 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2582 if (!ssa_var_info[ssa_op->op1_use].has_range || in _zend_update_type_info()
2584 (ssa_var_info[ssa_op->op1_use].range.underflow || in _zend_update_type_info()
2585 ssa_var_info[ssa_op->op1_use].range.min == ZEND_LONG_MIN)) || in _zend_update_type_info()
2587 (ssa_var_info[ssa_op->op1_use].range.overflow || in _zend_update_type_info()
2588 ssa_var_info[ssa_op->op1_use].range.max == ZEND_LONG_MAX))) { in _zend_update_type_info()
2613 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
2614 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2620 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2621 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
2623 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
2646 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2648 if ((ssa_op+1)->op1_def >= 0) { in _zend_update_type_info()
2650 ssa_op++; in _zend_update_type_info()
2657 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2663 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2664 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
2666 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
2669 zend_fetch_prop_info(op_array, ssa, opline, ssa_op), &ce); in _zend_update_type_info()
2670 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2672 UPDATE_SSA_OBJ_TYPE(ce, 1, ssa_op->result_def); in _zend_update_type_info()
2675 if ((ssa_op+1)->op1_def >= 0) { in _zend_update_type_info()
2677 ssa_op++; in _zend_update_type_info()
2682 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2686 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
2688 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2690 if ((ssa_op+1)->op1_def >= 0) { in _zend_update_type_info()
2692 ssa_op++; in _zend_update_type_info()
2697 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2706 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2707 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
2709 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
2712 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2716 if (ssa_op->op2_def >= 0) { in _zend_update_type_info()
2721 UPDATE_SSA_TYPE(tmp, ssa_op->op2_def); in _zend_update_type_info()
2740 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
2741 if (ssa_var_info[ssa_op->op1_def].use_as_double) { in _zend_update_type_info()
2745 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2746 COPY_SSA_OBJ_TYPE(ssa_op->op2_use, ssa_op->op1_def); in _zend_update_type_info()
2748 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
2757 if (ssa->vars[ssa_op->result_def].use_chain < 0 in _zend_update_type_info()
2758 || opline + 1 != op_array->opcodes + ssa->vars[ssa_op->result_def].use_chain) { in _zend_update_type_info()
2762 if (ssa->vars[ssa_op->result_def].use_chain < 0 in _zend_update_type_info()
2763 || opline + 1 != ssa_opcodes[ssa->vars[ssa_op->result_def].use_chain]) { in _zend_update_type_info()
2768 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2769 COPY_SSA_OBJ_TYPE(ssa_op->op2_use, ssa_op->result_def); in _zend_update_type_info()
2779 UPDATE_SSA_TYPE(tmp, ssa_op->op2_def); in _zend_update_type_info()
2789 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2790 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
2791 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2800 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2801 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
2813 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
2814 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2818 ssa_op++; in _zend_update_type_info()
2823 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2827 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
2828 UPDATE_SSA_TYPE(MAY_BE_REF, ssa_op->result_def); in _zend_update_type_info()
2832 ssa_op++; in _zend_update_type_info()
2833 UPDATE_SSA_TYPE(MAY_BE_REF, ssa_op->op1_def); in _zend_update_type_info()
2839 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2847 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2850 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
2855 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2856 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
2860 if (ssa_op->op2_def >= 0) { in _zend_update_type_info()
2869 UPDATE_SSA_TYPE(tmp, ssa_op->op2_def); in _zend_update_type_info()
2870 COPY_SSA_OBJ_TYPE(ssa_op->op2_use, ssa_op->op2_def); in _zend_update_type_info()
2874 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
2883 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2884 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
2886 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
2889 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2894 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
2896 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2900 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
2902 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2906 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
2918 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
2925 UPDATE_SSA_TYPE(MAY_BE_STRING|MAY_BE_RC1|MAY_BE_RCN, ssa_op->result_def); in _zend_update_type_info()
2949 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
2951 UPDATE_SSA_OBJ_TYPE(ce, 1, ssa_op->result_def); in _zend_update_type_info()
2953 UPDATE_SSA_OBJ_TYPE(NULL, 0, ssa_op->result_def); in _zend_update_type_info()
2958 UPDATE_SSA_TYPE(MAY_BE_CLASS, ssa_op->result_def); in _zend_update_type_info()
2960 UPDATE_SSA_OBJ_TYPE(ce, 0, ssa_op->result_def); in _zend_update_type_info()
2964 UPDATE_SSA_TYPE(MAY_BE_CLASS, ssa_op->result_def); in _zend_update_type_info()
2969 UPDATE_SSA_OBJ_TYPE(op_array->scope, 0, ssa_op->result_def); in _zend_update_type_info()
2971 UPDATE_SSA_OBJ_TYPE(NULL, 0, ssa_op->result_def); in _zend_update_type_info()
2976 UPDATE_SSA_OBJ_TYPE(op_array->scope->parent, 0, ssa_op->result_def); in _zend_update_type_info()
2978 UPDATE_SSA_OBJ_TYPE(NULL, 0, ssa_op->result_def); in _zend_update_type_info()
2983 UPDATE_SSA_OBJ_TYPE(NULL, 0, ssa_op->result_def); in _zend_update_type_info()
2990 UPDATE_SSA_OBJ_TYPE(ce, 0, ssa_op->result_def); in _zend_update_type_info()
2992 UPDATE_SSA_OBJ_TYPE(NULL, 0, ssa_op->result_def); in _zend_update_type_info()
2995 COPY_SSA_OBJ_TYPE(ssa_op->op2_use, ssa_op->result_def); in _zend_update_type_info()
3002 UPDATE_SSA_OBJ_TYPE(ce, 0, ssa_op->result_def); in _zend_update_type_info()
3003 } else if ((t1 & MAY_BE_CLASS) && ssa_op->op1_use >= 0 && ssa_var_info[ssa_op->op1_use].ce) { in _zend_update_type_info()
3004 …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()
3006 UPDATE_SSA_OBJ_TYPE(NULL, 0, ssa_op->result_def); in _zend_update_type_info()
3008 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3011 UPDATE_SSA_TYPE(MAY_BE_RC1|MAY_BE_RCN|MAY_BE_OBJECT, ssa_op->result_def); in _zend_update_type_info()
3012 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->result_def); in _zend_update_type_info()
3016 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
3035 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3037 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3039 if (ssa_op->result_use >= 0) { in _zend_update_type_info()
3040 tmp |= ssa_var_info[ssa_op->result_use].type; in _zend_update_type_info()
3070 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3074 tmp = ssa_var_info[ssa_op->result_use].type; in _zend_update_type_info()
3083 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3091 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3095 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
3096 UPDATE_SSA_TYPE(t1, ssa_op->op1_def); in _zend_update_type_info()
3097 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
3102 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
3109 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3110 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
3122 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3123 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->result_def); in _zend_update_type_info()
3150 UPDATE_SSA_TYPE(tmp, ssa_op->op2_def); in _zend_update_type_info()
3151 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3152 tmp = (ssa_op->result_use >= 0) ? RES_USE_INFO() : 0; in _zend_update_type_info()
3164 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3175 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
3227 j = ssa_vars[ssa_op->result_def].use_chain; in _zend_update_type_info()
3297 j = zend_ssa_next_use(ssa->ops, ssa_op->result_def, j); in _zend_update_type_info()
3307 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3312 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3314 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
3331 if (ssa->vars[ssa_op->result_def].use_chain < 0 in _zend_update_type_info()
3332 || opline + 1 != op_array->opcodes + ssa->vars[ssa_op->result_def].use_chain) { in _zend_update_type_info()
3336 if (ssa->vars[ssa_op->result_def].use_chain < 0 in _zend_update_type_info()
3337 || opline + 1 != ssa_opcodes[ssa->vars[ssa_op->result_def].use_chain]) { in _zend_update_type_info()
3342 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3345 UPDATE_SSA_OBJ_TYPE(op_array->scope, 1, ssa_op->result_def); in _zend_update_type_info()
3346 UPDATE_SSA_TYPE(MAY_BE_RCN|MAY_BE_OBJECT, ssa_op->result_def); in _zend_update_type_info()
3354 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3355 zend_property_info *prop_info = zend_fetch_prop_info(op_array, ssa, opline, ssa_op); in _zend_update_type_info()
3365 } else if (ssa_op->op1_use >= 0 && !ssa->var_info[ssa_op->op1_use].is_instanceof) { in _zend_update_type_info()
3366 ce = ssa->var_info[ssa_op->op1_use].ce; in _zend_update_type_info()
3371 if (ce && !ce->create_object && !result_may_be_separated(ssa, ssa_op)) { in _zend_update_type_info()
3375 if (ce && !ce->create_object && !ce->__get && !result_may_be_separated(ssa, ssa_op)) { in _zend_update_type_info()
3384 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3386 UPDATE_SSA_OBJ_TYPE(ce, 1, ssa_op->result_def); in _zend_update_type_info()
3400 } else if (!result_may_be_separated(ssa, ssa_op)) { in _zend_update_type_info()
3403 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3405 UPDATE_SSA_OBJ_TYPE(ce, 1, ssa_op->result_def); in _zend_update_type_info()
3412 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3427 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3429 UPDATE_SSA_OBJ_TYPE(ce, ce_is_instanceof, ssa_op->result_def); in _zend_update_type_info()
3435 …_STRING|MAY_BE_RESOURCE|MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY, ssa_op->result_def); in _zend_update_type_info()
3442 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3446 UPDATE_SSA_TYPE(MAY_BE_LONG, ssa_op->result_def); in _zend_update_type_info()
3449 …Y_BE_RC1|MAY_BE_RCN| MAY_BE_ARRAY | MAY_BE_ARRAY_PACKED | MAY_BE_ARRAY_OF_ANY, ssa_op->result_def); in _zend_update_type_info()
3453 UPDATE_SSA_TYPE(MAY_BE_FALSE|MAY_BE_STRING|MAY_BE_RCN, ssa_op->result_def); in _zend_update_type_info()
3456 UPDATE_SSA_TYPE(MAY_BE_STRING|MAY_BE_RC1|MAY_BE_RCN, ssa_op->result_def); in _zend_update_type_info()
3460 UPDATE_SSA_TYPE(MAY_BE_FALSE|MAY_BE_TRUE, ssa_op->result_def); in _zend_update_type_info()
3471 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3473 UPDATE_SSA_OBJ_TYPE(ce, 1, ssa_op->op1_def); in _zend_update_type_info()
3475 UPDATE_SSA_OBJ_TYPE(NULL, 0, ssa_op->op1_def); in _zend_update_type_info()
3478 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3480 UPDATE_SSA_OBJ_TYPE(ce, 1, ssa_op->result_def); in _zend_update_type_info()
3482 UPDATE_SSA_OBJ_TYPE(NULL, 0, ssa_op->result_def); in _zend_update_type_info()
3488 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3489 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
3490 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3499 if (ssa_op->op1_def >= 0) { in _zend_update_type_info()
3501 UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); in _zend_update_type_info()
3503 if (ssa_op->result_def >= 0) { in _zend_update_type_info()
3536 UPDATE_SSA_TYPE(tmp, ssa_op->result_def); in _zend_update_type_info()
3549 zend_ssa_op *ssa_op, in zend_update_type_info() argument
3553 …return _zend_update_type_info(op_array, ssa, script, NULL, opline, ssa_op, ssa_opcodes, optimizati… in zend_update_type_info()
3738 zend_ssa_op *ssa_op = &ssa->ops[use]; in can_convert_to_double() local
3740 if (zend_ssa_is_no_val_use(opline, ssa_op, var_num)) { in can_convert_to_double()
3749 type = ssa->var_info[ssa_op->result_def].type; in can_convert_to_double()
3773 if (ssa_op->op1_use == var_num) { in can_convert_to_double()
3786 if (ssa_op->op2_use == var_num) { in can_convert_to_double()
3834 if (!can_convert_to_double(op_array, ssa, ssa_op->result_def, &orig_result, visited)) { in can_convert_to_double()
3981 zend_ssa_op *ssa_op = ssa->ops ? &ssa->ops[opline - op_array->opcodes] : NULL; in zend_func_return_info() local
3982 if (!recursive && ssa_op && info->ssa.var_info && in zend_func_return_info()
3983 ssa_op->op1_use >= 0 && in zend_func_return_info()
3984 info->ssa.var_info[ssa_op->op1_use].recursive) { in zend_func_return_info()
4005 if (ssa_op && info->ssa.var_info && in zend_func_return_info()
4006 ssa_op->op1_use >= 0 && in zend_func_return_info()
4007 info->ssa.var_info[ssa_op->op1_use].ce) { in zend_func_return_info()
4008 arg_ce = info->ssa.var_info[ssa_op->op1_use].ce; in zend_func_return_info()
4009 arg_is_instanceof = info->ssa.var_info[ssa_op->op1_use].is_instanceof; in zend_func_return_info()
4093 } else if (ssa_op && info->ssa.var_info && ssa_op->op1_use >= 0) { in zend_func_return_info()
4094 if (info->ssa.var_info[ssa_op->op1_use].has_range) { in zend_func_return_info()
4097 tmp_range = info->ssa.var_info[ssa_op->op1_use].range; in zend_func_return_info()
4100 if (info->ssa.var_info[ssa_op->op1_use].range.underflow) { in zend_func_return_info()
4104 tmp_range.min = MIN(tmp_range.min, info->ssa.var_info[ssa_op->op1_use].range.min); in zend_func_return_info()
4106 if (info->ssa.var_info[ssa_op->op1_use].range.overflow) { in zend_func_return_info()
4110 tmp_range.max = MAX(tmp_range.max, info->ssa.var_info[ssa_op->op1_use].range.max); in zend_func_return_info()
4250 int zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op, const zend_op_array *op_arr… in zend_may_throw_ex() argument
4374 return zend_may_throw(opline + 1, ssa_op + 1, op_array, ssa); in zend_may_throw_ex()
4504 if (_ssa_op1_info(op_array, ssa, opline+1, ssa_op+1) & MAY_BE_UNDEF) { in zend_may_throw_ex()
4515 if (_ssa_op1_info(op_array, ssa, opline+1, ssa_op+1) & MAY_BE_UNDEF) { in zend_may_throw_ex()
4519 if (ssa_op->op1_use) { in zend_may_throw_ex()
4520 zend_ssa_var_info *var_info = ssa->var_info + ssa_op->op1_use; in zend_may_throw_ex()
4639 int zend_may_throw(const zend_op *opline, const zend_ssa_op *ssa_op, const zend_op_array *op_array,… in zend_may_throw() argument
4641 return zend_may_throw_ex(opline, ssa_op, op_array, ssa, OP1_INFO(), OP2_INFO()); in zend_may_throw()