diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2022-10-18 16:29:49 -0400 |
---|---|---|
committer | Andrew MacLeod <amacleod@redhat.com> | 2022-10-19 20:37:11 -0400 |
commit | 53e6d7a3102409f0f2a5a9ffbfbeaa62c135d991 (patch) | |
tree | 4a51214bd66f7d9ce476499a83cf4232b22feca4 /ltsugar.m4 | |
parent | 87f9c4a433523a41bcb314bdce91b55a98d00e28 (diff) | |
download | gcc-53e6d7a3102409f0f2a5a9ffbfbeaa62c135d991.zip gcc-53e6d7a3102409f0f2a5a9ffbfbeaa62c135d991.tar.gz gcc-53e6d7a3102409f0f2a5a9ffbfbeaa62c135d991.tar.bz2 |
Add assume support to VRP.
This provides an assume_query class using rangers GORI module to
determine what ranges would be applied to any SSA NAMES in the function
if the return value were [1, 1]. Any parameter ranges are stored in
the SSA_NAME_RANGE_INFO field, and ranger's inferred range machinery is
then used to look these up and match them to assume call parameteres
in the bodies of other functions..
PR c++/106654
gcc/
* gimple-range-gori.h (compute_operand_range): Make public.
* gimple-range-infer.cc (gimple_infer_range::check_assume_func): New.
(gimple_infer_range::gimple_infer_range): Check for assume calls.
* gimple-range-infer.h (check_assume_func): Add prototype.
* gimple-range.cc (assume_query::assume_range_p): New.
(assume_query::range_of_expr): New.
(assume_query::assume_query): New.
(assume_query::calculate_op): New.
(assume_query::calculate_phi): New.
(assume_query::check_taken_edge): New.
(assume_query::calculate_stmt): New.
(assume_query::dump): New.
* gimple-range.h (class assume_query): New.
* tree-vrp.cc (pass_assumptions::execute): Add processing.
gcc/testsuite/
* g++.dg/cpp23/attr-assume-opt.C: New.
Diffstat (limited to 'ltsugar.m4')
0 files changed, 0 insertions, 0 deletions