Convert float_binary_op_range_finish to use sub-ranges.
Refactors range analysis to use sub-ranges and `contains_zero_p`, improving accuracy.
The float_binary_op_range_finish function has been refactored to use sub-ranges and the contains_zero_p check. This change improves the precision of range analysis by examining sub-ranges of the left-hand side (lhs) rather than just the hull endpoints. This is particularly useful for floating-point operations where sub-range analysis can lead to more accurate results.
In Details
The float_binary_op_range_finish function in range-op-float.cc now uses contains_zero_p on the lhs operand to determine the overall range, instead of inspecting the hull endpoints directly. This change implies a shift towards processing franges as a collection of sub-ranges, potentially improving precision for floating-point operations.
- float_binary_op_range_finish
- A function likely involved in determining the resulting range of a binary floating-point operation after range analysis has been performed.
- contains_zero_p
- A predicate function that checks if a given range includes the value zero. This is important for various mathematical properties and optimizations.
- sub-ranges
- Smaller, contiguous portions of a larger range. Analyzing operations on sub-ranges can provide more precise results than analyzing the entire range at once.
- lhs
- Left-hand side. Refers to the operand on the left of a binary operator.