https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112374
--- Comment #36 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Actually, while i386-expand.o compilation fails with -fcompare-debug even after the above patch, seems that is only because of the discriminator issue, the *.gkd difference is then: --- i386-expand.cc.gkd 2023-11-16 09:57:22.666238096 +0100 +++ i386-expand.gk.cc.gkd 2023-11-16 09:59:09.207704622 +0100 @@ -245675,14 +245675,14 @@ Declarations used by ix86_expand_vector_ (note # 0 0 NOTE_INSN_DELETED) (insn:TI # 0 0 11 (set (reg:QI 0 ax [360]) (mem:QI (plus:DI (reg/f:DI 0 ax [orig:192 rt ] [192]) - (const_int 3 [0x3])) [ MEM <unsigned char> [(struct rtx_def *)tmp_295 + 3B]+0 S1 A8])) "../../gcc/config/i386/i386-expand.cc":17709:451 discrim 6# {*movqi_internal} + (const_int 3 [0x3])) [ MEM <unsigned char> [(struct rtx_def *)tmp_295 + 3B]+0 S1 A8])) "../../gcc/config/i386/i386-expand.cc":17709:451 discrim 5# {*movqi_internal} (nil)) (insn:TI # 0 0 11 (parallel [ (set (reg:SI 0 ax [360]) (and:SI (reg:SI 0 ax [360]) (const_int -29 [0xffffffffffffffe3]))) (clobber (reg:CC 17 flags)) - ]) "../../gcc/config/i386/i386-expand.cc":17709:451 discrim 6# {*andsi_1} + ]) "../../gcc/config/i386/i386-expand.cc":17709:451 discrim 5# {*andsi_1} (expr_list:REG_UNUSED (reg:CC 17 flags) (nil))) (insn:TI # 0 0 11 (parallel [ @@ -245690,12 +245690,12 @@ Declarations used by ix86_expand_vector_ (ior:SI (reg:SI 0 ax [360]) (const_int 24 [0x18]))) (clobber (reg:CC 17 flags)) - ]) "../../gcc/config/i386/i386-expand.cc":17709:451 discrim 6# {*iorsi_1} + ]) "../../gcc/config/i386/i386-expand.cc":17709:451 discrim 5# {*iorsi_1} (expr_list:REG_UNUSED (reg:CC 17 flags) (nil))) (insn:TI # 0 0 11 (set (mem:QI (plus:DI (reg/v/f:DI 3 bx [orig:192 rt ] [192]) (const_int 3 [0x3])) [ MEM <unsigned char> [(struct rtx_def *)tmp_295 + 3B]+0 S1 A8]) - (reg:QI 0 ax [362])) "../../gcc/config/i386/i386-expand.cc":17709:451 discrim 6# {*movqi_internal} + (reg:QI 0 ax [362])) "../../gcc/config/i386/i386-expand.cc":17709:451 discrim 5# {*movqi_internal} (expr_list:REG_DEAD (reg:QI 0 ax [362]) (nil))) (jump_insn # 0 0 11 (set (pc) So, this should no longer fail normal bootstrap comparison (but of course fail -fcompare-debug bootstrap). And with -fcompare-debug -gno-statement-frontiers it compiles fine.