diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2021-09-21 09:04:20 +0200 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2021-09-21 18:55:14 +0200 |
commit | f46d33637c71165622aa4c55008798cbd91a8696 (patch) | |
tree | b623530c77549d9c837cfa8bfaf267019e2dc570 /gcc/fortran/array.c | |
parent | 198bc5ece960557044483b1c72417759b4630f04 (diff) | |
download | gcc-f46d33637c71165622aa4c55008798cbd91a8696.zip gcc-f46d33637c71165622aa4c55008798cbd91a8696.tar.gz gcc-f46d33637c71165622aa4c55008798cbd91a8696.tar.bz2 |
path solver: Add relation support.
This patch adds relational support to the path solver. It uses a
path_oracle that keeps track of relations within a path which are
augmented by relations on entry to the path. With it, range_of_stmt,
range_of_expr, and friends can give relation aware answers.
gcc/ChangeLog:
* gimple-range-fold.h (class fur_source): Make oracle protected.
* gimple-range-path.cc (path_range_query::path_range_query): Add
resolve argument. Initialize oracle.
(path_range_query::~path_range_query): Delete oracle.
(path_range_query::range_of_stmt): Adapt to use relations.
(path_range_query::precompute_ranges): Pre-compute relations.
(class jt_fur_source): New
(jt_fur_source::jt_fur_source): New.
(jt_fur_source::register_relation): New.
(jt_fur_source::query_relation): New.
(path_range_query::precompute_relations): New.
(path_range_query::precompute_phi_relations): New.
* gimple-range-path.h (path_range_query): Add resolve argument.
Add oracle, precompute_relations, precompute_phi_relations.
* tree-ssa-threadbackward.c (back_threader::back_threader): Pass
resolve argument to solver.
Diffstat (limited to 'gcc/fortran/array.c')
0 files changed, 0 insertions, 0 deletions