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

--- Comment #16 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Uroš Bizjak from comment #15)
> (In reply to H.J. Lu from comment #14)
> 
> > This is generated in the backend:
> 
> Yes, but the question is, why somehow similar testcase legitimizes the
> address correctly with -fpic, while the original testcase doesn't.

My impressions are most of PIC addresses like:

    6: r92:DI=[const(unspec[`G'] 2)]
    7: r91:DI=r92:DI
      REG_EQUAL `G'
    8: {r90:DI=r89:DI+r91:DI;clobber flags:CC;}

is generated by x86 backend vi ix86_expand_move and x86 backend was never
presented with other opportunities before.  X86 backend isn't prepared to
handle some RTL expansions from offload.

Reply via email to