diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2021-11-04 11:34:55 +0100 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2021-11-04 15:37:35 +0100 |
commit | e4411622690654cdc530c6262c7115a9e15dc359 (patch) | |
tree | b85bf7a4a2323863c830bf1b26c9530eff218f54 /gcc | |
parent | 5ea1ce43b6070aaa94882e8b15f3340344aaa6b2 (diff) | |
download | gcc-e4411622690654cdc530c6262c7115a9e15dc359.zip gcc-e4411622690654cdc530c6262c7115a9e15dc359.tar.gz gcc-e4411622690654cdc530c6262c7115a9e15dc359.tar.bz2 |
Avoid repeating calculations in threader.
We already attempt to resolve the current path on entry to
find_paths_to_name(), so there's no need to do so again for each
exported range since nothing has changed.
Removing this redundant calculation avoids 22% of calls into the path
solver.
Tested on x86-64 and ppc64le Linux with the usual regstrap. I also
verified that the before and after number of threads was the same
in a suite of .ii files from a bootstrap.
gcc/ChangeLog:
PR tree-optimization/102943
* tree-ssa-threadbackward.c (back_threader::find_paths_to_names):
Avoid duplicate calculation of paths.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/tree-ssa-threadbackward.c | 12 |
1 files changed, 0 insertions, 12 deletions
diff --git a/gcc/tree-ssa-threadbackward.c b/gcc/tree-ssa-threadbackward.c index 29e9d6a..b7eaff9 100644 --- a/gcc/tree-ssa-threadbackward.c +++ b/gcc/tree-ssa-threadbackward.c @@ -443,18 +443,6 @@ back_threader::find_paths_to_names (basic_block bb, bitmap interesting) goto leave_bb; } } - // Examine blocks that define or export an interesting SSA, - // since they may compute a range which resolve this path. - if ((def_bb == bb - || bitmap_bit_p (m_ranger->gori ().exports (bb), i)) - && m_path.length () > 1) - { - if (maybe_register_path ()) - { - done = true; - goto leave_bb; - } - } } // If there are interesting names not yet processed, keep looking. |