From 2a040e982945a5795081e81be35094b604d596d3 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Wed, 11 May 2022 13:34:37 +0200 Subject: [PATCH] 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 PR rtl-optimization/105559 * cfgrtl.cc (delete_insn_and_edges): Only perform search to BB_END for non-debug insns. (cherry picked from commit 37a8220fa9188470c677abfef50c1b120c0b6c76) --- gcc/cfgrtl.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/cfgrtl.cc b/gcc/cfgrtl.cc index 74ea14efc615..06be46d75df5 100644 --- a/gcc/cfgrtl.cc +++ b/gcc/cfgrtl.cc @@ -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) -- 2.47.2