http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60911

--- Comment #3 from Martin Jambor <jamborm at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #2)
> Late IPA passes need all regular IPA transforms applied and clones
> materialized.

I agree that would make sense but it is not what we do.  Just look at
compile() in cgraphunit.c.  When late IPA passes run, clones are
already materialized but transformation phases of regular IPA passes
have not been run yet.  Apart from the fact that late-IPA passes do
not see the bodies transformed and inlining performed it also means
that call statements have not been updated to reflect call
redirections performed at analysis stage which is the problem here and
which is (for reasons I have never quite grasped) done as a part of
inlining transformation phase.

OTOH, I am all for moving the call to execute_all_ipa_transforms()
from expand_function() to compile(), at least in trunk.

Reply via email to