> 
> Running IPA transforms will mess up current_pass (and reset it
> to NULL), ICEing later for IPA PTA.  I also don't see any
> code that would avoid doing IPA transforms twice in case
> we put another small IPA pass in the late IPA pass queue.  Honza,
> I guess we need to add some PROP_ipa_transforms_applied and
> simply make the late IPA passes depend on that?

Well, the transforms are added into cgraph node at a time IPA pass is run and
then when non-IPA pass is run the transform is applied and removed from the
list.

The passmanager was originally intended to allow arbitrary ping-pong in between
ipa/small-ipa and local passes doing the right thing (i.e. applying the ipa
passes run since last non-IPA pass first time non-IPA pass is executed after a
sequence of IPA passes.

So the transforms are not run twice with IPA-PTA even if apply_ipa_transforms 
is.

Honza

Reply via email to