https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106746
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org, | |vmakarov at gcc dot gnu.org --- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I doubt the trigger is exactly CONCAT/CONCATN, I don't see those mentioned anywhere in the scheduler nor in i386 backend code related to scheduling. But the DEBUG_INSN with CONCATN in this case contains 16 MEMs, perhaps something defers some insns for later if that DEBUG_INSN is scheduled. Not very familiar with the scheduling dumps though. With: ./xgcc -B ./ -S -O2 -fsched2-use-superblocks -fcompare-debug pr106746.c -Wno-psabi --param min-nondebug-insn-uid=10000 -fdump-tree-all -da -fsched-verbose=8 I see that it is tick 24 in which insn 10148 is scheduled with -g0 and not otherwise, already in tick 21 it is: ;; 21--> 10090 xmm7=[dx*0x4+sp+0x8] :hsw_decodern,hsw_p23 +;; dependencies resolved: insn 10148 +;; tick updated: insn 10148 into ready ;; dependencies resolved: insn 10203 ;; tick updated: insn 10203 into ready ;; dependencies resolved: insn 10202 ;; tick updated: insn 10202 into ready ;; dependencies resolved: insn 10201 ;; tick updated: insn 10201 into ready But why, I'm not sure.