diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2022-07-15 09:35:29 -0400 |
---|---|---|
committer | Andrew MacLeod <amacleod@redhat.com> | 2022-07-19 18:05:49 -0400 |
commit | b0cc57cd76f511f29cab233654249817312ec2a6 (patch) | |
tree | c8b6efb6e3bdff95e91cbd6e1ec9bfb0a043c8c9 /gcc/gimple-range-cache.h | |
parent | f838d15641d256e21ffc126c3277b290ed743928 (diff) | |
download | gcc-b0cc57cd76f511f29cab233654249817312ec2a6.zip gcc-b0cc57cd76f511f29cab233654249817312ec2a6.tar.gz gcc-b0cc57cd76f511f29cab233654249817312ec2a6.tar.bz2 |
Remove recursion from range_from_dom.
Avoid calling range_of_dom recursively by putting all nodes to be
calculated on the worklist, and figure out which kind they are
when removed from the list.
* gimple-range-cache.cc (ranger_cache::resolve_dom): New.
(ranger_cache::range_from_dom): Put all nodes to be calculated
in the worklist and resolve after the dom walk.
* gimple-range-cache.h (resolve_dom): New prototype.
Diffstat (limited to 'gcc/gimple-range-cache.h')
-rw-r--r-- | gcc/gimple-range-cache.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/gimple-range-cache.h b/gcc/gimple-range-cache.h index 0341192..45053b5 100644 --- a/gcc/gimple-range-cache.h +++ b/gcc/gimple-range-cache.h @@ -107,6 +107,7 @@ private: RFD_FILL // Scan DOM tree, updating important nodes. }; bool range_from_dom (vrange &r, tree name, basic_block bb, enum rfd_mode); + void resolve_dom (vrange &r, tree name, basic_block bb); void range_of_def (vrange &r, tree name, basic_block bb = NULL); void entry_range (vrange &r, tree expr, basic_block bb, enum rfd_mode); void exit_range (vrange &r, tree expr, basic_block bb, enum rfd_mode); |