https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105260
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |16.0
Resolution|--- |FIXED
Blocks| |121364
Status|ASSIGNED |RESOLVED
--- Comment #10 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #9)
> In forwprop2 we have:
> un.value = D.4709;
> dummyFunc (un.value);
>
> Which is something I have a patch for.
Simplified
dummyFunc (MEM[(const struct Foo &)&un]);
after previous
un.value = D.3397;
into
dummyFunc (VIEW_CONVERT_EXPR<const struct Foo>(D.3397));
So fixed after r16-3934-g09e1ba1cc0f62a.
We get now:
"deserializeAndInvoke(unsigned char const*)":
.LFB19:
.cfi_startproc
mov rax, rdi
mov edi, DWORD PTR [rdi]
mov eax, DWORD PTR [rax+4]
bswap edi
mov edi, edi
bswap eax
sal rax, 32
or rdi, rax
jmp "dummyFunc(Foo)"
Which looks very good.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121364
[Bug 121364] [meta-bug] copy prop for aggregates