[Bug tree-optimization/88739] [7/8/9 Regression] Big-endian union bug

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Jan 25 10:03:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88739

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #45523|0                           |1
        is obsolete|                            |

--- Comment #50 from Richard Biener <rguenth at gcc dot gnu.org> ---
Created attachment 45532
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45532&action=edit
adjusted patch

This adjusts the workaround to use type_has_mode_precision_p on all targets.
It also includes IL verification (definitely not to be backported).

As of pessimizing cases it's merely cases like the testcase where we might
fail to elide a memory object that is initialized only via
!type_has_mode_precision_p stores but read in byte-size chunks.
The existing VN trick for unknown reason limits itself to
multiples of BITS_PER_UNIT sized accesses in addition to the
check that somewhat resembles type_has_mode_precision_p but applied
to the load we want to elide given other constraints on the BIT_FIELD_REF IL.

We may want to elide the multiple_p (ref->size, BITS_PER_UNIT) check for GCC
10.


More information about the Gcc-bugs mailing list