rtl-optimization/105559 - avoid quadratic behavior in delete_insn_and_edges

When the insn to delete is a debug insn there's no point in figuring
out whether it might be the last real insn and thus we have to purge
dead edges.

2022-05-11  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/105559
	* cfgrtl.cc (delete_insn_and_edges): Only perform search to BB_END
	for non-debug insns.

(cherry picked from commit 37a8220fa9)
This commit is contained in:
Richard Biener 2022-05-11 13:34:37 +02:00
parent a53eff4ad0
commit 2a040e9829

View File

@ -235,7 +235,7 @@ delete_insn_and_edges (rtx_insn *insn)
{
bool purge = false;
if (INSN_P (insn) && BLOCK_FOR_INSN (insn))
if (NONDEBUG_INSN_P (insn) && BLOCK_FOR_INSN (insn))
{
basic_block bb = BLOCK_FOR_INSN (insn);
if (BB_END (bb) == insn)