backthreader dump fix

This fixes odd SUCCEEDED dumps from the backthreader registry that
can happen even though register_jump_thread cancelled the thread
as invalid.

	* tree-ssa-threadbackward.cc (back_threader::maybe_register_path):
	Check whether the registry register_path rejected the path.
	(back_threader_registry::register_path): Return whether
	register_jump_thread succeeded.
This commit is contained in:
Richard Biener 2022-08-05 12:51:43 +02:00
parent 47964e7662
commit 6ca948264d
1 changed files with 3 additions and 5 deletions

View File

@ -243,10 +243,9 @@ back_threader::maybe_register_path ()
bool irreducible = false;
if (m_profit.profitable_path_p (m_path, m_name, taken_edge,
&irreducible)
&& debug_counter ())
&& debug_counter ()
&& m_registry.register_path (m_path, taken_edge))
{
m_registry.register_path (m_path, taken_edge);
if (irreducible)
vect_free_loop_info_assumptions (m_path[0]->loop_father);
}
@ -858,8 +857,7 @@ back_threader_registry::register_path (const vec<basic_block> &m_path,
}
push_edge (jump_thread_path, taken_edge, EDGE_NO_COPY_SRC_BLOCK);
register_jump_thread (jump_thread_path);
return true;
return register_jump_thread (jump_thread_path);
}
// Thread all suitable paths in the current function.