Set current query in fold_using_range
Ensures correct range context is maintained during folding operations.
This commit updates fold_using_range to set the current query for range analysis. This ensures that the folding operation correctly uses the specified range context, preventing potential inaccuracies. A new test case is added to verify this fix.
In Details
In fold_using_range::fold_stmt in gimple-range-fold.cc, the current range query is temporarily replaced with the query provided to the function. This ensures that any folding operations performed within this scope operate under the intended range constraints, which is crucial for the correctness of range analysis and subsequent optimizations. This fixes a potential issue where the global or previously established range query might be used incorrectly.
- fold_using_range
- A function or method within GCC's tree optimizer that attempts to simplify expressions or statements by using range information.
- range query
- A request to the range analysis system to determine the possible values or bounds of an expression or variable.
- folding
- An optimization technique where constant expressions or known properties of variables are used to simplify code at compile time.
- GIMPLE
- GCC's Internal Machine-Independent Optimizations. A three-address intermediate representation used by GCC for optimization passes.