diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2021-09-03 10:11:28 +0200 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2021-09-03 15:42:22 +0200 |
commit | b237eb9dfdada49d3f2bdfa98aa4a0b67fc1829d (patch) | |
tree | 881b26fd2ca68e63c748be2118ac727fd3bc84fb /gcc/tree-ssa-threadedge.c | |
parent | 9fa5ba4c56ef558bc740e56654622d70f4166e48 (diff) | |
download | gcc-b237eb9dfdada49d3f2bdfa98aa4a0b67fc1829d.zip gcc-b237eb9dfdada49d3f2bdfa98aa4a0b67fc1829d.tar.gz gcc-b237eb9dfdada49d3f2bdfa98aa4a0b67fc1829d.tar.bz2 |
Do not release state location until after path registry.
We are popping state and then calling the registry code. This causes
the registry to have incorrect information. This isn't visible in
current trunk, but will be an issue when I submit further enhancements
to the threading code. However, it is a cleanup on its own so I am
pushing it now.
Tested on x86-64 Linux.
gcc/ChangeLog:
* tree-ssa-threadedge.c (jump_threader::thread_across_edge):
Move pop until after a thread is registered.
Diffstat (limited to 'gcc/tree-ssa-threadedge.c')
-rw-r--r-- | gcc/tree-ssa-threadedge.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c index 37ee5c1..8a48512 100644 --- a/gcc/tree-ssa-threadedge.c +++ b/gcc/tree-ssa-threadedge.c @@ -1155,9 +1155,9 @@ jump_threader::thread_across_edge (edge e) { propagate_threaded_block_debug_into (path->last ()->e->dest, e->dest); - m_state->pop (); BITMAP_FREE (visited); m_registry->register_jump_thread (path); + m_state->pop (); return; } else |