aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2021-11-04 11:34:55 +0100
committerAldy Hernandez <aldyh@redhat.com>2021-11-04 15:37:35 +0100
commite4411622690654cdc530c6262c7115a9e15dc359 (patch)
treeb85bf7a4a2323863c830bf1b26c9530eff218f54 /gcc
parent5ea1ce43b6070aaa94882e8b15f3340344aaa6b2 (diff)
downloadgcc-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.c12
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.