[Bug target/93270] [8/9/10 Regression] DSE removes store incorrectly
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jan 15 08:01:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93270
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
And pasting from my ml analysis:
So clearly something is wrong:
<component_ref 0x7ffff695d240
type <real_type 0x7ffff682d3f0 long double sizes-gimplified XF
size <integer_cst 0x7ffff680dd20 constant 128>
unit-size <integer_cst 0x7ffff680dd38 constant 16>
align:128 warn_if_not_align:0 symtab:0 alias-set 2
canonical-type 0x7ffff682d3f0 precision:80
pointer_to_this <pointer_type 0x7ffff682d930>>
and thus GET_MODE_SIZE (XFmode) == 16. The target cannot possibly
just store 12 bytes here,
it lies. Why's XFmode not 12 bytes but with 8/16 byte alignment?
Does the ABI say sizeof(long double) is 16?
That said, a mode-has-padding or whatever should be reflected in
TYPE_SIZE & friends as well, inconsistencies
there just make things worse. Now they're at least consistently wrong.
More information about the Gcc-bugs
mailing list