Lines Matching refs:var_info

100 		    !(ssa->var_info[_var].type & MAY_BE_REF)) { \
108 !(ssa->var_info[_var].type & MAY_BE_REF) && \
1104 if (ssa->var_info[src1].has_range) { in zend_inference_calc_range()
1105 *tmp = ssa->var_info[src1].range; in zend_inference_calc_range()
1124 && ssa->var_info[p->sources[0]].has_range in zend_inference_calc_range()
1125 && ssa->var_info[p->sources[0]].range.min > constraint->range.max) { in zend_inference_calc_range()
1138 && ssa->var_info[p->sources[0]].has_range in zend_inference_calc_range()
1139 && ssa->var_info[p->sources[0]].range.max < constraint->range.min) { in zend_inference_calc_range()
1156 ssa->var_info[p->ssa_var].has_range) { in zend_inference_calc_range()
1160 ssa->var_info[p->ssa_var].range.min, in zend_inference_calc_range()
1161 ssa->var_info[p->ssa_var].range.max, in zend_inference_calc_range()
1177 } else if (ssa->var_info[p->sources[0]].has_range) { in zend_inference_calc_range()
1179 *tmp = ssa->var_info[p->sources[0]].range; in zend_inference_calc_range()
1184 } else if (narrowing && ssa->var_info[constraint->min_ssa_var].has_range) { in zend_inference_calc_range()
1185 tmp->underflow = ssa->var_info[constraint->min_ssa_var].range.underflow && tmp->underflow; in zend_inference_calc_range()
1186 … if (!add_will_overflow(ssa->var_info[constraint->min_ssa_var].range.min, constraint->range.min)) { in zend_inference_calc_range()
1187 …tmp->min = MAX(ssa->var_info[constraint->min_ssa_var].range.min + constraint->range.min, tmp->min); in zend_inference_calc_range()
1195 } else if (narrowing && ssa->var_info[constraint->max_ssa_var].has_range) { in zend_inference_calc_range()
1196 … if (!add_will_overflow(ssa->var_info[constraint->max_ssa_var].range.max, constraint->range.max)) { in zend_inference_calc_range()
1197 …tmp->max = MIN(ssa->var_info[constraint->max_ssa_var].range.max + constraint->range.max, tmp->max); in zend_inference_calc_range()
1199 tmp->overflow = ssa->var_info[constraint->max_ssa_var].range.overflow && tmp->overflow; in zend_inference_calc_range()
1207 } else if (narrowing && ssa->var_info[constraint->min_ssa_var].has_range) { in zend_inference_calc_range()
1208 … if (add_will_overflow(ssa->var_info[constraint->min_ssa_var].range.min, constraint->range.min)) { in zend_inference_calc_range()
1212 tmp->underflow = ssa->var_info[constraint->min_ssa_var].range.underflow; in zend_inference_calc_range()
1213 tmp->min = ssa->var_info[constraint->min_ssa_var].range.min + constraint->range.min; in zend_inference_calc_range()
1224 } else if (narrowing && ssa->var_info[constraint->max_ssa_var].has_range) { in zend_inference_calc_range()
1225 … if (add_will_overflow(ssa->var_info[constraint->max_ssa_var].range.max, constraint->range.max)) { in zend_inference_calc_range()
1229 tmp->max = ssa->var_info[constraint->max_ssa_var].range.max + constraint->range.max; in zend_inference_calc_range()
1230 tmp->overflow = ssa->var_info[constraint->max_ssa_var].range.overflow; in zend_inference_calc_range()
1241 if (ssa->var_info[p->sources[i]].has_range) { in zend_inference_calc_range()
1243 tmp->underflow |= ssa->var_info[p->sources[i]].range.underflow; in zend_inference_calc_range()
1244 tmp->min = MIN(tmp->min, ssa->var_info[p->sources[i]].range.min); in zend_inference_calc_range()
1245 tmp->max = MAX(tmp->max, ssa->var_info[p->sources[i]].range.max); in zend_inference_calc_range()
1246 tmp->overflow |= ssa->var_info[p->sources[i]].range.overflow; in zend_inference_calc_range()
1631 ssa->var_info[var].has_range = 1; in zend_inference_init_range()
1632 ssa->var_info[var].range.underflow = underflow; in zend_inference_init_range()
1633 ssa->var_info[var].range.min = min; in zend_inference_init_range()
1634 ssa->var_info[var].range.max = max; in zend_inference_init_range()
1635 ssa->var_info[var].range.overflow = overflow; in zend_inference_init_range()
1639 static int zend_inference_widening_meet(zend_ssa_var_info *var_info, zend_ssa_range *r) in zend_inference_widening_meet() argument
1641 if (!var_info->has_range) { in zend_inference_widening_meet()
1642 var_info->has_range = 1; in zend_inference_widening_meet()
1645 var_info->range.underflow || in zend_inference_widening_meet()
1646 r->min < var_info->range.min) { in zend_inference_widening_meet()
1651 var_info->range.overflow || in zend_inference_widening_meet()
1652 r->max > var_info->range.max) { in zend_inference_widening_meet()
1656 if (var_info->range.min == r->min && in zend_inference_widening_meet()
1657 var_info->range.max == r->max && in zend_inference_widening_meet()
1658 var_info->range.underflow == r->underflow && in zend_inference_widening_meet()
1659 var_info->range.overflow == r->overflow) { in zend_inference_widening_meet()
1663 var_info->range = *r; in zend_inference_widening_meet()
1672 if (zend_inference_widening_meet(&ssa->var_info[var], &tmp)) { in zend_ssa_range_widening()
1680 static int zend_inference_narrowing_meet(zend_ssa_var_info *var_info, zend_ssa_range *r) in zend_inference_narrowing_meet() argument
1682 if (!var_info->has_range) { in zend_inference_narrowing_meet()
1683 var_info->has_range = 1; in zend_inference_narrowing_meet()
1686 !var_info->range.underflow && in zend_inference_narrowing_meet()
1687 var_info->range.min < r->min) { in zend_inference_narrowing_meet()
1688 r->min = var_info->range.min; in zend_inference_narrowing_meet()
1691 !var_info->range.overflow && in zend_inference_narrowing_meet()
1692 var_info->range.max > r->max) { in zend_inference_narrowing_meet()
1693 r->max = var_info->range.max; in zend_inference_narrowing_meet()
1701 if (var_info->range.min == r->min && in zend_inference_narrowing_meet()
1702 var_info->range.max == r->max && in zend_inference_narrowing_meet()
1703 var_info->range.underflow == r->underflow && in zend_inference_narrowing_meet()
1704 var_info->range.overflow == r->overflow) { in zend_inference_narrowing_meet()
1708 var_info->range = *r; in zend_inference_narrowing_meet()
1717 if (zend_inference_narrowing_meet(&ssa->var_info[var], &tmp)) { in zend_ssa_range_narrowing()
1778 && !(ssa->var_info[j].type & MAY_BE_REF)) { in zend_infer_ranges_warmup()
1790 ssa->var_info[j].has_range && in zend_infer_ranges_warmup()
1799 if (tmp.min == ssa->var_info[j].range.min && in zend_infer_ranges_warmup()
1800 tmp.max == ssa->var_info[j].range.max) { in zend_infer_ranges_warmup()
1805 } else if (tmp.min == ssa->var_info[j].range.min && in zend_infer_ranges_warmup()
1806 tmp.max == ssa->var_info[j].range.max + 1 && in zend_infer_ranges_warmup()
1817 } else if (tmp.max == ssa->var_info[j].range.max && in zend_infer_ranges_warmup()
1818 tmp.min == ssa->var_info[j].range.min - 1 && in zend_infer_ranges_warmup()
1835 if (zend_inference_narrowing_meet(&ssa->var_info[j], &tmp)) { in zend_infer_ranges_warmup()
1879 if (ssa->var_info[j].type & MAY_BE_REF) { in zend_infer_ranges()
1891 && !(ssa->var_info[j].type & MAY_BE_REF)) { in zend_infer_ranges()
1901 if (!(ssa->var_info[j].type & MAY_BE_REF)) { in zend_infer_ranges()
1917 if (!ssa->var_info[j].has_range in zend_infer_ranges()
1918 && !(ssa->var_info[j].type & MAY_BE_REF)) { in zend_infer_ranges()
1935 && !(ssa->var_info[j].type & MAY_BE_REF)) { in zend_infer_ranges()
2253 !ssa->var_info[result_var].has_range || in binary_op_result_type()
2254 ssa->var_info[result_var].range.underflow || in binary_op_result_type()
2255 ssa->var_info[result_var].range.overflow) { in binary_op_result_type()
2280 !ssa->var_info[result_var].has_range || in binary_op_result_type()
2281 ssa->var_info[result_var].range.underflow || in binary_op_result_type()
2282 ssa->var_info[result_var].range.overflow) { in binary_op_result_type()
2422 ce = ssa->var_info[ssa_op->op1_use].ce; in zend_fetch_prop_info()
2517 zend_ssa_var_info *ssa_var_info = ssa->var_info; in _zend_update_type_info()
2925 …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()
3700 } else if (ssa_op->op1_use >= 0 && !ssa->var_info[ssa_op->op1_use].is_instanceof) { in _zend_update_type_info()
3701 ce = ssa->var_info[ssa_op->op1_use].ce; in _zend_update_type_info()
3959 zend_ssa_var_info *ssa_var_info = ssa->var_info; in zend_infer_types_ex()
4103 type = ssa->var_info[ssa_op->result_def].type; in can_convert_to_double()
4196 type = ssa->var_info[phi->ssa_var].type; in can_convert_to_double()
4224 if ((ssa->var_info[v].type & (MAY_BE_REF | MAY_BE_ANY | MAY_BE_UNDEF)) != MAY_BE_LONG) continue; in zend_type_narrowing()
4237 ssa->var_info[v].use_as_double = 1; in zend_type_narrowing()
4241 ssa->var_info[i].type &= ~MAY_BE_ANY; in zend_type_narrowing()
4363 if (!recursive && ssa_op && info->ssa.var_info && in zend_func_return_info()
4365 info->ssa.var_info[ssa_op->op1_use].recursive) { in zend_func_return_info()
4386 if (ssa_op && info->ssa.var_info && in zend_func_return_info()
4388 info->ssa.var_info[ssa_op->op1_use].ce) { in zend_func_return_info()
4389 arg_ce = info->ssa.var_info[ssa_op->op1_use].ce; in zend_func_return_info()
4390 arg_is_instanceof = info->ssa.var_info[ssa_op->op1_use].is_instanceof; in zend_func_return_info()
4474 } else if (ssa_op && info->ssa.var_info && ssa_op->op1_use >= 0) { in zend_func_return_info()
4475 if (info->ssa.var_info[ssa_op->op1_use].has_range) { in zend_func_return_info()
4478 tmp_range = info->ssa.var_info[ssa_op->op1_use].range; in zend_func_return_info()
4481 if (info->ssa.var_info[ssa_op->op1_use].range.underflow) { in zend_func_return_info()
4485 tmp_range.min = MIN(tmp_range.min, info->ssa.var_info[ssa_op->op1_use].range.min); in zend_func_return_info()
4487 if (info->ssa.var_info[ssa_op->op1_use].range.overflow) { in zend_func_return_info()
4491 tmp_range.max = MAX(tmp_range.max, info->ssa.var_info[ssa_op->op1_use].range.max); in zend_func_return_info()
4641 } else if (ssa->var_info[var].type & MAY_BE_REF) { in zend_mark_cv_references()
4651 …ssa->var_info[var].type |= MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_REF | MAY_BE_ANY | MAY_BE_ARRAY_KEY_AN… in zend_mark_cv_references()
4656 if (!(ssa->var_info[p->ssa_var].type & MAY_BE_REF)) { in zend_mark_cv_references()
4668 if (!(ssa->var_info[op->op1_def].type & MAY_BE_REF)) { in zend_mark_cv_references()
4678 if (!(ssa->var_info[op->op2_def].type & MAY_BE_REF)) { in zend_mark_cv_references()
4683 if (!(ssa->var_info[op->result_def].type & MAY_BE_REF)) { in zend_mark_cv_references()
4700 if (!ssa->var_info) { in zend_ssa_inference()
4701 ssa->var_info = zend_arena_calloc(arena, ssa->vars_count, sizeof(zend_ssa_var_info)); in zend_ssa_inference()
4703 ssa_var_info = ssa->var_info; in zend_ssa_inference()
5019 zend_ssa_var_info *var_info = ssa->var_info + ssa_op->op1_use; in zend_may_throw_ex() local
5020 zend_class_entry *ce = var_info->ce; in zend_may_throw_ex()
5022 if (var_info->is_instanceof || in zend_may_throw_ex()