> >If DECL_ARGUMENTS is not available at WPA stage then I see no other > >way than to put the types on the jump functions. > > > OK. I will record the type in jump function and send a revised patch.
It would be good to check how much of difference this makes to memory use of WPA for larger program (i.e. Firefox). I guess it doesn't need to be too bad given that most of those types are streamed for other reasons anyway. The type lookup always seemed like a kludge, so indeed saving types to jump functions makes sense to me. Thanks, Honza > > Thanks, > Kugan > > >>If just preferring DECL_ARGUMENTS is enough, then changing > >>ipa_get_callee_param_type to use that if is is available, as Richi > >>suggested, would indeed be preferable. But if even falling back on it > >>can cause errors, then I am not sure if it helps. > >> > >>In any event, thanks for diligently dealing with the fallout, > >> > >>Martin > >> > >> > >>> > >>>Bootstrapped and regression tested on x86_64-linux-gnu with no new > >>>regressions. Is this OK for trunk? > >>> > >>>Thanks, > >>>Kugan > >>> > >>>gcc/testsuite/ChangeLog: > >>> > >>>2016-11-18 Kugan Vivekanandarajah <kug...@linaro.org> > >>> > >>> PR IPA/78365 > >>> * gcc.dg/torture/pr78365.c: New test. > >>> > >>>gcc/ChangeLog: > >>> > >>>2016-11-18 Kugan Vivekanandarajah <kug...@linaro.org> > >>> > >>> PR IPA/78365 > >>> * ipa-cp.c (propagate_constants_accross_call): get param type from > >>> callees > >>> DECL_ARGUMENTS if available. > >>> * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise. > >>> (ipcp_update_vr): Remove now redundant conversion of precision for > >>> VR. > >>> * ipa-prop.h: Make ipa_get_callee_param_type local again.