This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix thunk expansion (PR ipa/64896)


> Hi
> 
> On 9 March 2015 at 17:07, Yvan Roux <yvan.roux@linaro.org> wrote:
> > Hi,
> >
> > As added in the PR, this issue is also present on 4.9 branch and
> > affects at least arm-linux-gnueabihf target (as reported in PR61207).
> >
> > I've backported it in the 4.9 branch with the attached patch.  The
> > difference with the trunk code is due the code introduced by PR63587
> > fix (I didn't checked on power7, on which the PR was initially
> > reported, but I didn't managed to reproduce the issue for arm targets
> > on 4.9 branch).
> >
> > Boostrapped on x86_64, and tested on arm/aarch64 targets (regression
> > testing is ongoing). is ok for 4.9 branch when  validation is done ?
> 
> So bootstrapped/regtested on x86_64 and cross-compiled/regtested on
> aarch64-linux-gnu
> arm-linux-gnueabihf
> armeb-linux-gnueabihf
> i686-linux-gnu

This is OK. note that cgraph_node::expand_thunk has gathered quite few
extra fixes that may be resonable for backporting.  Looking across
changes after ipa-icf was enabled I think we should look into
these:

        PR ipa/65236
        * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot
        opt.

        PR ipa/64813
        * cgraphunit.c (cgraph_node::expand_thunk): Do not create
        a return value for call to a function that is noreturn.

        PR ipa/63595
        * cgraphunit.c (cgraph_node::expand_thunk): DECL_BY_REFERENCE
        is correctly handled for thunks created by IPA ICF.

        PR ipa/63587
        * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
        to local declarations.
        * function.c (add_local_decl): Implementation moved from header
        file, assert introduced for tree type.
        * function.h: Likewise.

While these bugs was triggered by ipa-icf, they all IMO can be reproduced by
thunks on targets that do not define assembler thunks.
(most are about return values and those are not excercised on main targets with
MI thunks because covariant thunks always returns pointer)

Honza


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]