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.
{
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