From fca1c5787dfb3578018dee72bb03efa1dc441953 Mon Sep 17 00:00:00 2001 From: jakub Date: Sat, 27 Jan 2018 06:28:15 +0000 Subject: [PATCH] PR middle-end/84040 * sched-deps.c (sched_macro_fuse_insns): Return immediately for debug insns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@257119 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/sched-deps.c | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bcf3ffd079f..f2699e0c0d0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2018-01-27 Jakub Jelinek + + PR middle-end/84040 + * sched-deps.c (sched_macro_fuse_insns): Return immediately for + debug insns. + 2018-01-26 Jim Wilson * config/riscv/riscv.h (MAX_FIXED_MODE_SIZE): New. diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index 3971861e5ef..2d0199d5837 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -2834,10 +2834,16 @@ static void sched_macro_fuse_insns (rtx_insn *insn) { rtx_insn *prev; + /* No target hook would return true for debug insn as any of the + hook operand, and with very large sequences of only debug insns + where on each we call sched_macro_fuse_insns it has quadratic + compile time complexity. */ + if (DEBUG_INSN_P (insn)) + return; prev = prev_nonnote_nondebug_insn (insn); if (!prev) return; - + if (any_condjump_p (insn)) { unsigned int condreg1, condreg2; -- 2.11.4.GIT