* gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer)
authorJeff Law <law@redhat.com>
Wed, 22 Nov 2017 20:31:14 +0000 (13:31 -0700)
committerJeff Law <law@gcc.gnu.org>
Wed, 22 Nov 2017 20:31:14 +0000 (13:31 -0700)
commita5de02e9e3efdcdacc5dc100b61d1fd45e719955
tree97da5bea9a9415baae6f7880c5b5f649e95dff73
parent16d24520af1ad5ff832d243f177d88f08a1ba012
* gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer)
Initialize vr_values.
(evrp_range_analyzer::try_find_new_range): Call methods attached to
vr_values via vr_values class instance rather than delegators.
(evrp_range_analyzer::record_ranges_from_phis): Likewise.
(evrp_range_analyzer::record_ranges_from_stmt): Likewise.
(evrp_range_analyzer::push_value_range): Likewise.
(evrp_range_analyzer::pop_value_range): Likewise.
* gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove
most delegators.  Those remaining are exposed as public interfaces.
Make vr_values a pointer and private.
(evrp_range_analyzer::~evrp_range_analyzer): Delete the attached
vr_values.
(evrp_range_analyzer::get_vr_value): New method.
* gimple-ssa-evrp.c (class evrp_folder): Use DISABLE_COPY_AND_ASSIGN.
(evrp_folder::evrp_folder): New ctor to initialize vr_values.
(class evrp_dom_walker): Attach evrp_folder class, initialize
it in the ctor.  Remove temporary delegators.
(evrp_dom_walker::before_dom_children): Call methods in attached
evrp_range_analyzer class via class instance pointer.  Use
free value_range_constant_singleton to remove need for
op_with_constant_singleton_value delegator method.  Do not
create a vrp_prop class instance for every call!  Narrow
scope of a couple variables.
(evrp_dom_walker::cleanup): Call methods in attached
evrp_range_analyzer class via class instance pointer.
* vr-values.h (class vr_values): Privatize many methods and
data members.

From-SVN: r255074
gcc/ChangeLog
gcc/gimple-ssa-evrp-analyze.c
gcc/gimple-ssa-evrp-analyze.h
gcc/gimple-ssa-evrp.c
gcc/vr-values.h