On Fri, Sep 17, 2021 at 12:03 PM Richard Biener <richard.guent...@gmail.com> wrote: > > On Fri, Sep 17, 2021 at 11:43 AM Kewen.Lin <li...@linux.ibm.com> wrote: > > > > Hi, > > > > When changing target_info with bitfield, I happened to find this > > inconsistent streaming in and out. We have the streaming in: > > > > bp_pack_value (&bp, info->inlinable, 1); > > bp_pack_value (&bp, false, 1); > > bp_pack_value (&bp, info->fp_expressions, 1); > > > > while the streaming out: > > > > info->inlinable = bp_unpack_value (&bp, 1); > > info->fp_expressions = bp_unpack_value (&bp, 1) > > > > The cleanup of Cilk Plus support seemed to miss to remove the bit > > streaming out but change with streaming false. > > > > By hacking fp_expression_p to return true always, I can see it > > reads the wrong fp_expressions value (false) out in wpa dumping. > > > > Bootstrapped and regress-tested on powerpc64le-linux-gnu Power9. > > > > Is it ok for trunk? > > OK for trunk and all affected branches (note we need to bump the > LTO minor version there). The issue comes from the removal > of cilk+ in r8-4956 which removed the bp_unpack but replaced > the bp_pack ... > > It's a correctness issue as we'll read fp_expressions as always 'false'
Btw, on branches we could also simply unpack a dummy bit to avoid changing the format. > Thanks, > Richard. > > > > > BR, > > Kewen > > ----- > > gcc/ChangeLog: > > > > * ipa-fnsummary.c (ipa_fn_summary_write): Remove inconsistent > > bitfield streaming out. > > > > diff --git a/gcc/ipa-fnsummary.c b/gcc/ipa-fnsummary.c > > index 2470937460f..31199919405 100644 > > --- a/gcc/ipa-fnsummary.c > > +++ b/gcc/ipa-fnsummary.c > > @@ -4652,7 +4652,6 @@ ipa_fn_summary_write (void) > > info->time.stream_out (ob); > > bp = bitpack_create (ob->main_stream); > > bp_pack_value (&bp, info->inlinable, 1); > > - bp_pack_value (&bp, false, 1); > > bp_pack_value (&bp, info->fp_expressions, 1); > > streamer_write_bitpack (&bp); > > streamer_write_uhwi (ob, vec_safe_length (info->conds));