https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120169
Andreas Schwab <sch...@linux-m68k.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|target |rtl-optimization --- Comment #4 from Andreas Schwab <sch...@linux-m68k.org> --- The cas pass turns: (insn 62 16 17 2 (set (reg:QI 1 %d1 [orig:67+3 ] [67]) (reg:QI 0 %d0 [orig:49 _18 ] [49])) "../.././gcc/m2/mc-boot/Gdecl.cc":6528:18 discrim 1 62 {*m68k.md:1131} (expr_list:REG_DEAD (reg:QI 0 %d0 [orig:49 _18 ] [49]) (nil))) (insn 17 62 63 2 (set (reg:SI 1 %d1 [67]) (sign_extend:SI (reg:QI 1 %d1 [orig:67+3 ] [67]))) "../.././gcc/m2/mc-boot/Gdecl.cc":6528:18 discrim 1 99 {*68k_extendqisi2} (expr_list:REG_ARGS_SIZE (const_int 4 [0x4]) (nil))) (insn 63 17 19 2 (set (mem:SI (pre_dec:SI (reg/f:SI 15 %sp)) [11 S1 A8]) (reg:SI 1 %d1 [67])) "../.././gcc/m2/mc-boot/Gdecl.cc":6528:18 discrim 1 55 {*movsi_m68k2} (expr_list:REG_DEAD (reg:SI 1 %d1 [67]) (nil))) (call_insn 19 63 20 2 (call (mem:QI (reg/f:SI 12 %a4 [46]) [0 mcDebug_assert S1 A8]) (const_int 4 [0x4])) "../.././gcc/m2/mc-boot/Gdecl.cc":6528:18 discrim 1 392 {*call} (expr_list:REG_CALL_DECL (symbol_ref:SI ("mcDebug_assert") [flags 0x41] <function_decl 0x7f265af0c800 mcDebug_assert>) (nil)) (nil)) (insn 20 19 21 2 (set (reg/f:SI 15 %sp) (plus:SI (reg/f:SI 15 %sp) (const_int 4 [0x4]))) "../.././gcc/m2/mc-boot/Gdecl.cc":24680:18 150 {*addsi3_internal} (expr_list:REG_ARGS_SIZE (const_int 0 [0]) (nil))) into: (insn 62 16 17 2 (set (reg:QI 1 %d1 [orig:67+3 ] [67]) (reg:QI 0 %d0 [orig:49 _18 ] [49])) "../.././gcc/m2/mc-boot/Gdecl.cc":6528:18 discrim 1 62 {*m68k.md:1131} (expr_list:REG_DEAD (reg:QI 0 %d0 [orig:49 _18 ] [49]) (nil))) (insn 17 62 63 2 (set (reg:SI 1 %d1 [67]) (sign_extend:SI (reg:QI 1 %d1 [orig:67+3 ] [67]))) "../.././gcc/m2/mc-boot/Gdecl.cc":6528:18 discrim 1 99 {*68k_extendqisi2} (expr_list:REG_ARGS_SIZE (const_int 4 [0x4]) (nil))) (insn 63 17 19 2 (set (mem:SI (reg/f:SI 15 %sp) [11 S1 A8]) (reg:SI 1 %d1 [67])) "../.././gcc/m2/mc-boot/Gdecl.cc":6528:18 discrim 1 54 {*movsi_m68k} (expr_list:REG_ARGS_SIZE (const_int 0 [0]) (expr_list:REG_DEAD (reg:SI 1 %d1 [67]) (nil)))) (call_insn 19 63 21 2 (call (mem:QI (reg/f:SI 12 %a4 [46]) [0 mcDebug_assert S1 A8]) (const_int 4 [0x4])) "../.././gcc/m2/mc-boot/Gdecl.cc":6528:18 discrim 1 392 {*call} (expr_list:REG_CALL_DECL (symbol_ref:SI ("mcDebug_assert") [flags 0x41] <function_decl 0x7f265af0c800 mcDebug_assert>) (nil)) (nil)) where a REG_ARGS_SIZE = 0 note is emitted before the call, even though the stack adjustment has been deleted (combined with the next call). Pure luck that the dwarf2 pass hasn't noted any inconsistencies so far.