]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Do not release state location until after path registry.
authorAldy Hernandez <aldyh@redhat.com>
Fri, 3 Sep 2021 08:11:28 +0000 (10:11 +0200)
committerAldy Hernandez <aldyh@redhat.com>
Fri, 3 Sep 2021 13:42:22 +0000 (15:42 +0200)
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.

gcc/tree-ssa-threadedge.c

index 37ee5c11be373d7affe5a7e0a3f0fdbd3968a2bc..8a485125ff5a9afca396d511251b026c29dc4b17 100644 (file)
@@ -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