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: [tree-ssa] cfghooks questions


> 
> On Jan 13, 2004, at 7:18 AM, Zdenek Dvorak wrote:
> 
> >cfg_layout is just a layer over rtl that abstracts over some issues
> >on the raw rtl representation (explicit jumps, notes and insns not
> >belonging to any basic block).
> 
> I guess, I am still confused about why there are two set of hooks
> rtl_cfg_hooks and cfg_layout_rtl_cfg_hooks? As I understand,

Because basic block moving and duplication in the default RTL form is
convoluted enought that cfglayout mode has been discovered.  The
difference is that in CFGlayout mode the fallthru edges may point to
arbitary block (not to the next one like in linear RTL) and some ugly
RTL ideas (such as notes in between basic blocks) are hidden behind
scenes.

This is temporary situation, in longer run I hope to move everythin in
RTL backend to cfglayout mode and clean up remaining uglyness, but it
still needs some work.
(some parts of RTL optimizer are still ignoring the CFG and accessing
RTL instructions as single chain, but they are slowly dimishing)

The default trees are already having all nice properties of cfglayout
mode in RTL, so you don't need yet another hack.
Duplication can be done easily and reordering shall not be needed at
all.

Honza
> cfg_layout_rtl_cfg_hooks also maintains/updates cfg_layout. But
> I do not understand then why not use that set all the time for
> rtl IR (ie why we need rtl_cfg_hooks?). As you can see I am not
> very clear. It'd be useful if you can point me to a place in
> sources which can help me to clarify my confusion.
> 
> Thanks,
> --
> Devang


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