From: Richard Biener Date: Wed, 11 May 2022 11:34:37 +0000 (+0200) Subject: rtl-optimization/105559 - avoid quadratic behavior in delete_insn_and_edges X-Git-Tag: basepoints/gcc-14~6884 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=37a8220fa9188470c677abfef50c1b120c0b6c76;p=thirdparty%2Fgcc.git 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. --- diff --git a/gcc/cfgrtl.cc b/gcc/cfgrtl.cc index 74ea14efc61..06be46d75df 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)