intent in cfg_layout_initialize

Jan Hubicka hubicka@ucw.cz
Thu Apr 29 10:27:00 GMT 2004


> 
> In cfg_layout_initialize, there's a call to cleanup_cfg:
> 
>   cleanup_cfg (CLEANUP_CFGLAYOUT);
> 
> There's no comment here as to the intent.  Is it expected to do lots
> of (or any) optimizations?  Some are disabled in cfgcleanup.c when
> this flag is set, but not all.  Specifically, on an internal port I'm

The ones that are disabled are simply not needed in the form of CFG
where you can redirect edes, ie cleanup_cfg (CLEANUP_CFGLAYOUT) is as
strong as normal cleanup_cfg when in normal mode, just it ought to be a
tinny bit faster.

The intend is to gradually revamp whole compiler to use cfglayout mode.
> working on, enough optimization happens to invalidate the live
> registers list, and I get the ubiquitous "verify_local_live_at_start"
> error.
> 
> Should we (or could we) be passing CLEANUP_UPDATE_LIFE here?  Or
> should I dig into cfgcleanup.c and disable more optimizations?  Or is
> something else happening?
passing CLEANUP_UPDATE_LIFE would work.
You get the liveness invalidated when entering to cfglayout before
sched2, right?
I think best fix is to simply add parameter of cfglayout_initialize
specifying whether the liveness shall be preserved, as for tracer the
cfglayout_initialize is called before liveness is built.

Honza



More information about the Gcc mailing list