Thanks for catching, Jakub! The update listed below, will integrate it with next revision patch.
gcc/ChangeLog 2019-04-24 Kewen Lin <li...@gcc.gnu.org> PR middle-end/80791 * target.def (predict_doloop_p): New hook. * targhooks.h (default_predict_doloop_p): New declaration. * targhooks.c (default_predict_doloop_p): New function. * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook. * doc/tm.texi: Regenerate. * config/rs6000/rs6000.c (invalid_insn_for_doloop_p): New function. (costly_iter_for_doloop_p): Likewise. (rs6000_predict_doloop_p): Likewise. (TARGET_PREDICT_DOLOOP_P): New macro. * expr.c (produce_memory_decl_rtl): New function. (prepare_decl_rtl): Likewise. * expr.h (produce_memory_decl_rtl): New declaration. (prepare_decl_rtl): Likewise. * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_loop): Call predict_doloop_p hook. (tailor_cmp_uses): New function. (preserve_ivs_for_use): New function. (computation_cost): Call refactored prepare_decl_rtl, consider zero cost iv use. (dump_use): Dump zero_cost_p field. (record_use): Init zero_cost_p field. (produce_memory_decl_rtl): Remove. (prepare_decl_rtl): Remove. gcc/testsuite/ChangeLog 2019-04-24 Kewen Lin <li...@gcc.gnu.org> PR middle-end/80791 * gcc.dg/tree-ssa/ivopts-lt.c : Adjust. on 2019/4/24 下午4:48, Jakub Jelinek wrote: > On Wed, Apr 24, 2019 at 04:41:01PM +0800, Kewen.Lin wrote: >> gcc/ChangeLog > > Not a review, just ChangeLog nits. > >> 2019-04-24 Kewen Lin <li...@gcc.gnu.org> >> >> PR middle-end/80791 >> * target.def (predict_doloop_p): New. >> * targhooks.h (default_predict_doloop_p): New. >> * targhooks.c (default_predict_doloop_p): Likewise. >> * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New. >> * doc/tm.texi: Regenerate. >> * config/rs6000/rs6000.c (invalid_insn_for_doloop_p): New. >> (costly_iter_for_doloop_p): New. >> (rs6000_predict_doloop_p): New. > > There should be no leading spaces after the tab on the lines that don't > contain > a filename, so: > * config/rs6000/rs6000.c (invalid_insn_for_doloop_p): New. > (costly_iter_for_doloop_p): New. > (rs6000_predict_doloop_p): New. > instead (and instead of saying just New. usually we write what kind of > new thing it is, so New function., New declaration. (or Declare.), New > macro. (or Define.), New method. etc. > >> * gcc/expr.c (produce_memory_decl_rtl): New. > > The gcc/ prefixes don't belong into gcc/ChangeLog, the filenames are always > relative to the ChangeLog file referencing those. > > Jakub >