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

Reply via email to