> Hi > > On 9 March 2015 at 17:07, Yvan Roux <yvan.r...@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