ipa-fnsummary: Remove inconsistent bp_pack_value
authorKewen Lin <linkw@linux.ibm.com>
Tue, 21 Sep 2021 02:00:04 +0000 (21:00 -0500)
committerKewen Lin <linkw@linux.ibm.com>
Tue, 21 Sep 2021 02:00:04 +0000 (21:00 -0500)
There is one inconsistent bit-field streaming out and in.
On the side of streaming in:

    bp_pack_value (&bp, info->inlinable, 1);
    bp_pack_value (&bp, false, 1);
    bp_pack_value (&bp, info->fp_expressions, 1);

while on the side of the streaming out:

    info->inlinable = bp_unpack_value (&bp, 1);
    info->fp_expressions = bp_unpack_value (&bp, 1)

The removal of Cilk Plus support r8-4956 missed to remove
the streaming out of the bit, instead just change the value
for streaming out to be always false.

By hacking fp_expression_p to always return true, I can see
it reads the wrong fp_expressions value (false) out in wpa.

gcc/ChangeLog:

* ipa-fnsummary.c (ipa_fn_summary_write): Remove inconsistent
bitfield stream out.

gcc/ipa-fnsummary.c

index 2470937..3119991 100644 (file)
@@ -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));