On Wed, Apr 7, 2021 at 11:17 AM Xionghu Luo <luo...@linux.ibm.com> wrote: > > > On 2021/4/7 14:57, Richard Biener wrote: > > On Wed, Apr 7, 2021 at 7:42 AM Xionghu Luo <luo...@linux.ibm.com> wrote: > >> > >> print_rtl will dump the rtx_insn from current until LAST. But it is only > >> useful to see the particular insn that called by print_rtx_insn_vec, > >> Let's call print_rtl_single to display that insn in the gcse and > >> store-motion > >> pass dump. > > > > Can you cite a before/after dump snippet to clarify? > > Before the patch, pr24257.c.258r.store_motion dumps: > > Pattern ( 1): (mem:SI (plus:DI (reg/v/f:DI 124 [ s ]) > (const_int 4 [0x4])) [1 s_2(D)->left+0 S4 A32]) > ANTIC stores : {(insn 18 17 19 3 (set (mem:SI (plus:DI > (reg/v/f:DI 124 [ s ]) > (const_int 4 [0x4])) [1 s_2(D)->left+0 S4 A32]) > (reg:SI 131)) 516 {*movsi_internal1} > (expr_list:REG_DEAD (reg:SI 131) > (nil))) > > (code_label 19 18 20 4 2 (nil) [1 uses]) > > (note 20 19 21 4 [bb 4] NOTE_INSN_BASIC_BLOCK) > > (insn 21 20 22 4 (set (reg:SI 132) > (const_int 0 [0])) "pr24257.c":16:9 516 {*movsi_internal1} > (nil)) > > (insn 22 21 0 4 (set (mem:SI (reg/v/f:DI 124 [ s ]) [1 s_2(D)->buf+0 S4 > A32]) > (reg:SI 132)) "pr24257.c":16:9 516 {*movsi_internal1} > (expr_list:REG_DEAD (reg:SI 132) > (expr_list:REG_DEAD (reg/v/f:DI 124 [ s ]) > (nil)))) > } > AVAIL stores : {(insn 7 4 10 2 (set (mem:SI (plus:DI > (reg/v/f:DI 124 [ s ]) > (const_int 4 [0x4])) [1 s_2(D)->left+0 S4 A32]) > (subreg/s/u:SI (reg/v:DI 125 [ n ]) 0)) "pr24257.c":23:11 516 > {*movsi_internal1} > (nil)) > > (insn 10 7 11 2 (set (reg:CC 126) > (compare:CC (subreg/s/u:SI (reg/v:DI 125 [ n ]) 0) > (const_int 31 [0x1f]))) "pr24257.c":10:18 751 {*cmpsi_signed} > (nil)) > > (jump_insn 11 10 12 2 (set (pc) > (if_then_else (gt (reg:CC 126) > (const_int 0 [0])) > (label_ref 19) > (pc))) "pr24257.c":10:18 834 {*cbranch} > (expr_list:REG_DEAD (reg:CC 126) > (int_list:REG_BR_PROB 118111604 (nil))) > -> 19) > > (note 12 11 13 3 [bb 3] NOTE_INSN_BASIC_BLOCK) > > (insn 13 12 14 3 (parallel [ > (set (reg:SI 127) > (minus:SI (const_int 31 [0x1f]) > (subreg/u:SI (reg/v:DI 125 [ n ]) 0))) > (clobber (reg:SI 98 ca)) > ]) "pr24257.c":12:15 100 {subfsi3_imm} > (expr_list:REG_UNUSED (reg:SI 98 ca) > (nil))) > (insn 14 13 15 3 (set (reg:SI 128) > (lshiftrt:SI (reg:SI 127) > (const_int 3 [0x3]))) "pr24257.c":12:15 273 {lshrsi3} > (expr_list:REG_DEAD (reg:SI 127) > (nil))) > > (insn 15 14 16 3 (set (reg:SI 129) > (ashift:SI (reg:SI 128) > (const_int 3 [0x3]))) "pr24257.c":12:15 263 {ashlsi3} > (expr_list:REG_DEAD (reg:SI 128) > (nil))) > > (insn 16 15 17 3 (set (reg:SI 130) > (plus:SI (subreg/s/u:SI (reg/v:DI 125 [ n ]) 0) > (const_int 8 [0x8]))) "pr24257.c":12:15 65 {*addsi3} > (expr_list:REG_DEAD (reg/v:DI 125 [ n ]) > (nil))) > > (insn 17 16 18 3 (set (reg:SI 131) > (plus:SI (reg:SI 129) > (reg:SI 130))) "pr24257.c":12:15 65 {*addsi3} > (expr_list:REG_DEAD (reg:SI 130) > (expr_list:REG_DEAD (reg:SI 129) > (nil)))) > > (insn 18 17 19 3 (set (mem:SI (plus:DI (reg/v/f:DI 124 [ s ]) > (const_int 4 [0x4])) [1 s_2(D)->left+0 S4 A32]) > (reg:SI 131)) 516 {*movsi_internal1} > (expr_list:REG_DEAD (reg:SI 131) > (nil))) > > (code_label 19 18 20 4 2 (nil) [1 uses]) > > (note 20 19 21 4 [bb 4] NOTE_INSN_BASIC_BLOCK) > > (insn 21 20 22 4 (set (reg:SI 132) > (const_int 0 [0])) "pr24257.c":16:9 516 {*movsi_internal1} > (nil)) > > (insn 22 21 0 4 (set (mem:SI (reg/v/f:DI 124 [ s ]) [1 s_2(D)->buf+0 S4 > A32]) > (reg:SI 132)) "pr24257.c":16:9 516 {*movsi_internal1} > (expr_list:REG_DEAD (reg:SI 132) > (expr_list:REG_DEAD (reg/v/f:DI 124 [ s ]) > (nil)))) > , (insn 18 17 19 3 (set (mem:SI (plus:DI (reg/v/f:DI 124 [ s ]) > (const_int 4 [0x4])) [1 s_2(D)->left+0 S4 A32]) > (reg:SI 131)) 516 {*movsi_internal1} > (expr_list:REG_DEAD (reg:SI 131) > (nil))) > > (code_label 19 18 20 4 2 (nil) [1 uses]) > > (note 20 19 21 4 [bb 4] NOTE_INSN_BASIC_BLOCK) > > (insn 21 20 22 4 (set (reg:SI 132) > (const_int 0 [0])) "pr24257.c":16:9 516 {*movsi_internal1} > (nil)) > > (insn 22 21 0 4 (set (mem:SI (reg/v/f:DI 124 [ s ]) [1 s_2(D)->buf+0 S4 > A32]) > (reg:SI 132)) "pr24257.c":16:9 516 {*movsi_internal1} > (expr_list:REG_DEAD (reg:SI 132) > (expr_list:REG_DEAD (reg/v/f:DI 124 [ s ]) > (nil)))) > } > > > > With this patch, it only dumps instructions we care about for > ANTIC stores and AVAIL stores: > > > > Pattern ( 1): (mem:SI (plus:DI (reg/v/f:DI 124 [ s ]) > (const_int 4 [0x4])) [1 s_2(D)->left+0 S4 A32]) > ANTIC stores : {(insn 18 17 19 3 (set (mem:SI (plus:DI > (reg/v/f:DI 124 [ s ]) > (const_int 4 [0x4])) [1 s_2(D)->left+0 S4 A32]) > (reg:SI 131)) 516 {*movsi_internal1} > (expr_list:REG_DEAD (reg:SI 131) > (nil))) > } > AVAIL stores : {(insn 7 4 10 2 (set (mem:SI (plus:DI > (reg/v/f:DI 124 [ s ]) > (const_int 4 [0x4])) [1 s_2(D)->left+0 S4 A32]) > (subreg/s/u:SI (reg/v:DI 125 [ n ]) 0)) "pr24257.c":23:11 516 > {*movsi_internal1} > (nil)) > , (insn 18 17 19 3 (set (mem:SI (plus:DI (reg/v/f:DI 124 [ s ]) > (const_int 4 [0x4])) [1 s_2(D)->left+0 S4 A32]) > (reg:SI 131)) 516 {*movsi_internal1} > (expr_list:REG_DEAD (reg:SI 131) > (nil))) > } > >
thanks - the patch is OK. > > > > >> 2021-04-07 Xionghu Luo <luo...@linux.ibm.com> > >> > >> gcc/ChangeLog: > >> > >> * fold-const.c (fold_single_bit_test): Fix typo. > >> * print-rtl.c (print_rtx_insn_vec): Call print_rtl_single > >> instead. > >> --- > >> gcc/fold-const.c | 2 +- > >> gcc/print-rtl.c | 2 +- > >> 2 files changed, 2 insertions(+), 2 deletions(-) > >> > >> diff --git a/gcc/fold-const.c b/gcc/fold-const.c > >> index d4c5a9c299f..2834278fd76 100644 > >> --- a/gcc/fold-const.c > >> +++ b/gcc/fold-const.c > >> @@ -7390,7 +7390,7 @@ fold_single_bit_test (location_t loc, enum tree_code > >> code, > >> return NULL_TREE; > >> } > >> > >> -/* Test whether it is preferable two swap two operands, ARG0 and > >> +/* Test whether it is preferable to swap two operands, ARG0 and > >> ARG1, for example because ARG0 is an integer constant and ARG1 > >> isn't. */ > >> > >> diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c > >> index 2a56823d3c1..c7982bce507 100644 > >> --- a/gcc/print-rtl.c > >> +++ b/gcc/print-rtl.c > >> @@ -1237,7 +1237,7 @@ print_rtx_insn_vec (FILE *file, const vec<rtx_insn > >> *> &vec) > >> unsigned int len = vec.length (); > >> for (unsigned int i = 0; i < len; i++) > >> { > >> - print_rtl (file, vec[i]); > >> + print_rtl_single (file, vec[i]); > >> if (i < len - 1) > >> fputs (", ", file); > >> } > >> -- > >> 2.25.1 > >> > > -- > Thanks, > Xionghu