Lines Matching refs:constraint
1096 const zend_ssa_range_constraint *constraint = &p->constraint.range; in zend_inference_calc_range() local
1097 if (constraint->negative) { in zend_inference_calc_range()
1102 if (constraint->range.min == constraint->range.max in zend_inference_calc_range()
1103 && !constraint->range.underflow in zend_inference_calc_range()
1104 && !constraint->range.overflow in zend_inference_calc_range()
1105 && p->constraint.range.min_ssa_var < 0 in zend_inference_calc_range()
1106 && p->constraint.range.max_ssa_var < 0 in zend_inference_calc_range()
1121 && ssa->var_info[p->sources[0]].range.min > constraint->range.max) { in zend_inference_calc_range()
1122 tmp->min = constraint->range.max + 1; in zend_inference_calc_range()
1135 && ssa->var_info[p->sources[0]].range.max < constraint->range.min) { in zend_inference_calc_range()
1136 tmp->max = constraint->range.min - 1; in zend_inference_calc_range()
1150 if (constraint->min_ssa_var < 0 && in zend_inference_calc_range()
1151 constraint->max_ssa_var < 0 && in zend_inference_calc_range()
1160 if (constraint->negative == NEG_USE_LT && in zend_inference_calc_range()
1161 tmp->max >= constraint->range.min) { in zend_inference_calc_range()
1163 tmp->max = constraint->range.min - 1; in zend_inference_calc_range()
1165 } else if (constraint->negative == NEG_USE_GT && in zend_inference_calc_range()
1166 tmp->min <= constraint->range.max) { in zend_inference_calc_range()
1168 tmp->min = constraint->range.max + 1; in zend_inference_calc_range()
1176 if (constraint->min_ssa_var < 0) { in zend_inference_calc_range()
1177 tmp->underflow = constraint->range.underflow && tmp->underflow; in zend_inference_calc_range()
1178 tmp->min = MAX(constraint->range.min, tmp->min); in zend_inference_calc_range()
1180 } else if (narrowing && ssa->var_info[constraint->min_ssa_var].has_range) { in zend_inference_calc_range()
1181 tmp->underflow = ssa->var_info[constraint->min_ssa_var].range.underflow && tmp->underflow; in zend_inference_calc_range()
1182 … if (!add_will_overflow(ssa->var_info[constraint->min_ssa_var].range.min, constraint->range.min)) { in zend_inference_calc_range()
1183 …tmp->min = MAX(ssa->var_info[constraint->min_ssa_var].range.min + constraint->range.min, tmp->min); in zend_inference_calc_range()
1187 if (constraint->max_ssa_var < 0) { in zend_inference_calc_range()
1188 tmp->max = MIN(constraint->range.max, tmp->max); in zend_inference_calc_range()
1189 tmp->overflow = constraint->range.overflow && tmp->overflow; in zend_inference_calc_range()
1191 } else if (narrowing && ssa->var_info[constraint->max_ssa_var].has_range) { in zend_inference_calc_range()
1192 … if (!add_will_overflow(ssa->var_info[constraint->max_ssa_var].range.max, constraint->range.max)) { in zend_inference_calc_range()
1193 …tmp->max = MIN(ssa->var_info[constraint->max_ssa_var].range.max + constraint->range.max, tmp->max); in zend_inference_calc_range()
1195 tmp->overflow = ssa->var_info[constraint->max_ssa_var].range.overflow && tmp->overflow; in zend_inference_calc_range()
1199 if (constraint->min_ssa_var < 0) { in zend_inference_calc_range()
1200 tmp->underflow = constraint->range.underflow; in zend_inference_calc_range()
1201 tmp->min = constraint->range.min; in zend_inference_calc_range()
1203 } else if (narrowing && ssa->var_info[constraint->min_ssa_var].has_range) { in zend_inference_calc_range()
1204 … if (add_will_overflow(ssa->var_info[constraint->min_ssa_var].range.min, constraint->range.min)) { in zend_inference_calc_range()
1208 tmp->underflow = ssa->var_info[constraint->min_ssa_var].range.underflow; in zend_inference_calc_range()
1209 tmp->min = ssa->var_info[constraint->min_ssa_var].range.min + constraint->range.min; in zend_inference_calc_range()
1216 if (constraint->max_ssa_var < 0) { in zend_inference_calc_range()
1217 tmp->max = constraint->range.max; in zend_inference_calc_range()
1218 tmp->overflow = constraint->range.overflow; in zend_inference_calc_range()
1220 } else if (narrowing && ssa->var_info[constraint->max_ssa_var].has_range) { in zend_inference_calc_range()
1221 … if (add_will_overflow(ssa->var_info[constraint->max_ssa_var].range.max, constraint->range.max)) { in zend_inference_calc_range()
1225 tmp->max = ssa->var_info[constraint->max_ssa_var].range.max + constraint->range.max; in zend_inference_calc_range()
1226 tmp->overflow = ssa->var_info[constraint->max_ssa_var].range.overflow; in zend_inference_calc_range()
1781 ssa->vars[j].definition_phi->constraint.range.negative && in zend_infer_ranges_warmup()
1782 ssa->vars[j].definition_phi->constraint.range.min_ssa_var < 0 && in zend_infer_ranges_warmup()
1783 ssa->vars[j].definition_phi->constraint.range.max_ssa_var < 0) { in zend_infer_ranges_warmup()
1784 zend_ssa_range_constraint *constraint = in zend_infer_ranges_warmup() local
1785 &ssa->vars[j].definition_phi->constraint.range; in zend_infer_ranges_warmup()
1788 if (constraint->negative == NEG_INIT) { in zend_infer_ranges_warmup()
1790 constraint->negative = NEG_INVARIANT; in zend_infer_ranges_warmup()
1794 tmp.max < constraint->range.min) { in zend_infer_ranges_warmup()
1795 if (constraint->negative == NEG_INIT || in zend_infer_ranges_warmup()
1796 constraint->negative == NEG_INVARIANT) { in zend_infer_ranges_warmup()
1798 constraint->negative = NEG_USE_LT; in zend_infer_ranges_warmup()
1800 } else if (constraint->negative == NEG_USE_GT) { in zend_infer_ranges_warmup()
1802 constraint->negative = NEG_UNKNOWN; in zend_infer_ranges_warmup()
1806 tmp.min > constraint->range.max) { in zend_infer_ranges_warmup()
1807 if (constraint->negative == NEG_INIT || in zend_infer_ranges_warmup()
1808 constraint->negative == NEG_INVARIANT) { in zend_infer_ranges_warmup()
1810 constraint->negative = NEG_USE_GT; in zend_infer_ranges_warmup()
1812 } else if (constraint->negative == NEG_USE_LT) { in zend_infer_ranges_warmup()
1814 constraint->negative = NEG_UNKNOWN; in zend_infer_ranges_warmup()
1818 constraint->negative = NEG_UNKNOWN; in zend_infer_ranges_warmup()
4078 zend_ssa_type_constraint *constraint = &p->constraint.type; in zend_infer_types_ex() local
4079 tmp &= constraint->type_mask; in zend_infer_types_ex()
4083 if ((tmp & MAY_BE_OBJECT) && constraint->ce && ce != constraint->ce) { in zend_infer_types_ex()
4085 ce = constraint->ce; in zend_infer_types_ex()
4087 } else if (is_instanceof && safe_instanceof(constraint->ce, ce)) { in zend_infer_types_ex()
4088 ce = constraint->ce; in zend_infer_types_ex()