Only add inferred ranges if they change the value.
Do not add an inferred range if it is already incorprated in the current range of an SSA_NAME. PR tree-optimization/117467 * gimple-range-infer.cc (infer_range_manager::add_ranges): Check range_of_expr to see if the inferred range is needed.
This commit is contained in:
parent
faddf22942
commit
c7fd6c4369
1 changed files with 8 additions and 1 deletions
|
@ -400,7 +400,14 @@ void
|
|||
infer_range_manager::add_ranges (gimple *s, gimple_infer_range &infer)
|
||||
{
|
||||
for (unsigned x = 0; x < infer.num (); x++)
|
||||
add_range (infer.name (x), s, infer.range (x));
|
||||
{
|
||||
tree arg = infer.name (x);
|
||||
value_range r (TREE_TYPE (arg));
|
||||
m_query->range_of_expr (r, arg, s);
|
||||
// Only add the inferred range if it changes the current range.
|
||||
if (r.intersect (infer.range (x)))
|
||||
add_range (arg, s, infer.range (x));
|
||||
}
|
||||
}
|
||||
|
||||
// Add range R as an inferred range for NAME on stmt S.
|
||||
|
|
Loading…
Add table
Reference in a new issue