On Wed, Jul 17, 2024 at 9:07 PM Rubin Gerritsen <rubin...@hotmail.com> wrote: > > Sorry for the inconvenience, here the patch is attached as an attachment.
Pushed as r15-2134-gcee56fe0ba757c > Rubin > ________________________________ > From: Richard Biener <richard.guent...@gmail.com> > Sent: 17 July 2024 1:01 PM > To: rubin.gerritsen <rubin...@hotmail.com> > Cc: gcc-patches@gcc.gnu.org <gcc-patches@gcc.gnu.org> > Subject: Re: [PATCH v2] gimple-fold: consistent dump of builtin call > simplifications > > On Wed, Jul 17, 2024 at 12:47 PM Richard Biener > <richard.guent...@gmail.com> wrote: > > > > On Tue, Jul 16, 2024 at 9:30 PM rubin.gerritsen <rubin...@hotmail.com> > > wrote: > > > > > > Changes since v1: > > > * Added DCO signoff > > > * Removed tabs from commit message > > > > > > -- > > > Previously only simplifications of the `__st[xrp]cpy_chk` > > > were dumped. Now all call replacement simplifications are > > > dumped. > > > > > > Examples of statements with corresponding dumpfile entries: > > > > > > `printf("mystr\n");`: > > > optimized: simplified printf to __builtin_puts > > > `printf("%c", 'a');`: > > > optimized: simplified printf to __builtin_putchar > > > `printf("%s\n", "mystr");`: > > > optimized: simplified printf to __builtin_puts > > > > > > The below test suites passed for this patch > > > * The x86 bootstrap test. > > > * Manual testing with some small example code manually > > > examining dump logs, outputting the lines mentioned above. > > > > OK. > > > > I'll push this for you. > > Can you please post the patch as generated by > git format-patch and attach it? I have problems with your > mailer wrapping lines and even with that fixed the patch > not applying with git am. > > Richard. > > > Richard. > > > > > gcc/ChangeLog: > > > > > > * gimple-fold.cc (dump_transformation): Moved definition. > > > (replace_call_with_call_and_fold): Calls dump_transformation. > > > (gimple_fold_builtin_stxcpy_chk): Removes call to > > > dump_transformation, now in replace_call_with_call_and_fold. > > > (gimple_fold_builtin_stxncpy_chk): Removes call to > > > dump_transformation, now in replace_call_with_call_and_fold. > > > > > > Signed-off-by: Rubin Gerritsen <rubin.gerrit...@gmail.com> > > > --- > > > gcc/gimple-fold.cc | 22 ++++++++++------------ > > > 1 file changed, 10 insertions(+), 12 deletions(-) > > > > > > diff --git a/gcc/gimple-fold.cc b/gcc/gimple-fold.cc > > > index 7c534d56bf1..b20d3a2ff9a 100644 > > > --- a/gcc/gimple-fold.cc > > > +++ b/gcc/gimple-fold.cc > > > @@ -802,6 +802,15 @@ gimplify_and_update_call_from_tree > > > (gimple_stmt_iterator *si_p, tree expr) > > > gsi_replace_with_seq_vops (si_p, stmts); > > > } > > > > > > +/* Print a message in the dump file recording transformation of FROM to > > > TO. */ > > > + > > > +static void > > > +dump_transformation (gcall *from, gcall *to) > > > +{ > > > + if (dump_enabled_p ()) > > > + dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, from, "simplified %T to > > > %T\n", > > > + gimple_call_fn (from), gimple_call_fn (to)); > > > +} > > > > > > /* Replace the call at *GSI with the gimple value VAL. */ > > > > > > @@ -835,6 +844,7 @@ static void > > > replace_call_with_call_and_fold (gimple_stmt_iterator *gsi, gimple *repl) > > > { > > > gimple *stmt = gsi_stmt (*gsi); > > > + dump_transformation (as_a <gcall *> (stmt), as_a <gcall *> (repl)); > > > gimple_call_set_lhs (repl, gimple_call_lhs (stmt)); > > > gimple_set_location (repl, gimple_location (stmt)); > > > gimple_move_vops (repl, stmt); > > > @@ -3090,16 +3100,6 @@ gimple_fold_builtin_memory_chk > > > (gimple_stmt_iterator *gsi, > > > return true; > > > } > > > > > > -/* Print a message in the dump file recording transformation of FROM to > > > TO. */ > > > - > > > -static void > > > -dump_transformation (gcall *from, gcall *to) > > > -{ > > > - if (dump_enabled_p ()) > > > - dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, from, "simplified %T to > > > %T\n", > > > - gimple_call_fn (from), gimple_call_fn (to)); > > > -} > > > - > > > /* Fold a call to the __st[rp]cpy_chk builtin. > > > DEST, SRC, and SIZE are the arguments to the call. > > > IGNORE is true if return value can be ignored. FCODE is the > > > BUILT_IN_* > > > @@ -3189,7 +3189,6 @@ gimple_fold_builtin_stxcpy_chk > > > (gimple_stmt_iterator *gsi, > > > return false; > > > > > > gcall *repl = gimple_build_call (fn, 2, dest, src); > > > - dump_transformation (stmt, repl); > > > replace_call_with_call_and_fold (gsi, repl); > > > return true; > > > } > > > @@ -3235,7 +3234,6 @@ gimple_fold_builtin_stxncpy_chk > > > (gimple_stmt_iterator *gsi, > > > return false; > > > > > > gcall *repl = gimple_build_call (fn, 3, dest, src, len); > > > - dump_transformation (stmt, repl); > > > replace_call_with_call_and_fold (gsi, repl); > > > return true; > > > } > > > -- > > > 2.34.1 > > >