This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Critical edge splitting inconsistency




On Fri, 17 Sep 2004, Jan Hubicka wrote:

Hi,
while looking into unrelated problem on tree-profiling branch I noticed
that we currently split critical edges before PRE and then cleanup_cfg
iff PRE appears to modify CFG.  This means that sometimes we keep the
edges split after pre pass but sometimes we don't.  This just looks
inconsistent as someone might jump into assumption that edges are always
split in the later pass (or into reversed one).
Would be possible to take care of this somehow?  Perhaps the critical
edge spliteness can be made a property of CFG for the pass manager?

Sure. But here's the interesting part:

Right now, the pass manager is only verifying properties statically.
This means that even if the gating function for the pass makes it so the pass doesn't execute, it still assumes it provides the property.


So we can't tell if we actually need to redo something like critical edge splitting, in order to provide the necessary properties.

It's kind of like a property that we can regenerate any time it's necessary.


Honza




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]