]> git.ipfire.org Git - thirdparty/gcc.git/commit
Virtualize fur_source and turn it into a proper API.
authorAndrew MacLeod <amacleod@redhat.com>
Tue, 8 Jun 2021 19:43:03 +0000 (15:43 -0400)
committerAndrew MacLeod <amacleod@redhat.com>
Wed, 9 Jun 2021 01:12:08 +0000 (21:12 -0400)
commit87f9ac937d6cfd81cbbe0a43518ba10781888d7c
treec23bc3c72bedad47b16ec475740ce1de5edb1629
parent087253b9951766cbd93286b804ebb1ab59197aa8
Virtualize fur_source and turn it into a proper API.

No more accessing the local info.  Also add fur_source/fold_stmt where ranges
are provided via being specified, or a vector to replace gimple_fold_range.

* gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Use a
fur_stmt source record.
* gimple-range.cc (fur_source::get_operand): Generic range query.
(fur_source::get_phi_operand): New.
(fur_source::register_dependency): New.
(fur_source::query): New.
(class fur_edge): New.  Edge source for operands.
(fur_edge::fur_edge): New.
(fur_edge::get_operand): New.
(fur_edge::get_phi_operand): New.
(fur_edge::query): New.
(fur_stmt::fur_stmt): New.
(fur_stmt::get_operand): New.
(fur_stmt::get_phi_operand): New.
(fur_stmt::query): New.
(class fur_depend): New.  Statement source and process dependencies.
(fur_depend::fur_depend): New.
(fur_depend::register_dependency): New.
(class fur_list): New.  List source for operands.
(fur_list::fur_list): New.
(fur_list::get_operand): New.
(fur_list::get_phi_operand): New.
(fold_range): New.  Instantiate appropriate fur_source class and fold.
(fold_using_range::range_of_range_op): Use new API.
(fold_using_range::range_of_address): Ditto.
(fold_using_range::range_of_phi): Ditto.
(imple_ranger::fold_range_internal): Use fur_depend class.
(fold_using_range::range_of_ssa_name_with_loop_info): Use new API.
* gimple-range.h (class fur_source): Now a base class.
(class fur_stmt): New.
(fold_range): New prototypes.
(fur_source::fur_source): Delete.
gcc/gimple-range-gori.cc
gcc/gimple-range.cc
gcc/gimple-range.h