https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68930
--- Comment #5 from Jan Hubicka <hubicka at ucw dot cz> --- > But how would you represent this info? I don't see how it's going to > do better than the inliner inserting an extra initialization (of course > that might stay around if there are no cleanup opportunities and actually > make the code bigger & slower) Just keep the existing transformation data used by ipcp_modif_dom_walker and feed it into GVN at entry block. Consider code: foo (struct a) { struct b=a; return b.a; } this is a common case of post inlining code. Now the way ipa-prop works if we figure out that b.a=1 it won't update the copy b=a because it is not access to the field it knows value of so no transformation happens. GVN will figure out that the return is equivalent to a.a and if it knew that a.a==1 it would optimize the code. It is quite important bug that we work hard to figure out all those constants and then we drop them to the floor :) Honza