https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101641
--- Comment #7 from Richard Biener ---
Wow, and this time it's even combine coming into play!
(insn 10 9 11 2 (set (reg/v:DI 82 [ xy ])
(mem/j:DI (reg/v/f:DI 86 [ pu ]) [2 pu_6(D)->y+0 S8 A64])) "t.i":12:8
76 {*movdi_internal}
(nil
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101641
Richard Biener changed:
What|Removed |Added
CC||davmac at davmac dot org
--- Comment #
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101641
--- Comment #5 from Martin Uecker ---
(In reply to Richard Biener from comment #3)
>
> What we know from the union read is that the dynamic type is either the
> union type (so the read can pun) or the dynamic type is the union member
> type (the
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101641
--- Comment #4 from Richard Biener ---
Just some more brain-dumps from thinking about a fix.
- we can annotate the alias_set_entry with a flag whether it was created for
a union type and use that to improve the logic
- we can introduce some
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101641
--- Comment #3 from Richard Biener ---
With union punning we've basically opened up a way to change the dynamic type
of storage in a way that expects us from generating no code from a "virtual"
read-write cycle involving the previous and the nex
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101641
--- Comment #2 from Richard Biener ---
And the DOM copy has been split out to refs_same_for_tbaa_p, now also used
by RTL CSE and DSE (which do the same transform), see the fix for PR93946.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101641
Richard Biener changed:
What|Removed |Added
Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot
gnu.org