Optimised tree expression check moved to a numbered definition.
A tree expression check for non-negativity is moved for better symbol lookup.
The tree_expr_nonnegative_p function, used for checking if a tree expression is non-negative, has been moved to a numbered alias (tree_expr_nonnegative_p@1). This change simplifies pattern matching and symbol resolution within the compiler’s internal representation, as indicated by PR tree-optimization/126087.
In Details
In the GCC tree-optimization subsystem, this commit refactors the match.pd file by re-establishing tree_expr_nonnegative_p under the numbered pattern tree_expr_nonnegative_p@1. This change is part of ongoing efforts to simplify pattern matching definitions and improve the lookup of predicates used in various optimization passes. It was bootstrapped and tested on x86_64-pc-linux-gnu.
- tree
- GCC's internal representation of code, structured as a parse tree where nodes represent expressions, statements, and declarations.
- pattern matching
- A technique used in compilers to find and manipulate structures within the intermediate representation (IR) of code. This is crucial for optimizations and code generation.
- symbol resolution
- The process of associating symbolic names in a program with their corresponding memory addresses or definitions. In GCC, this is related to how internal functions and data structures are identified and accessed.
- compiler pass
- A stage in the compilation process where the compiler performs specific transformations or analyses on the intermediate representation of the code.