This is the mail archive of the gcc-patches@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] Put CFG into GGC memory


> > 
> >     /* Instructions queued on the edge.  */
> > !   union edge_def_insns {
> >       rtx r;
> >       tree t;
> > !   } GTY ((skip (""))) insns;
> > 
> >  
> >     /* Auxiliary info specific to a pass.  */
> > !   PTR GTY ((skip (""))) aux;
> >   
> 
> I thought the whole point of making the CFG garbage collectable was that it
> would expose the code in the basic blocks to the GC marker routines.  What's
> really needed here is some kind of flag (enum?) to indicate what mode the CFG
> is in, and then use tags to say what can hang from the insns and aux fields of
> a basic block.

Aux pointers are really meant for temporary use inside the passes, so
there is no need to tell GGC about it, as GGC should never see aux set
to something.

About the edge_defs, i do have some plans about it, but would like to do
it incrementally.  it is not clear whehter we want global falg or
whether we want to go for CFG based RTL expansion that may be interested
doing this per basic block basis.

It is also used just internally for passes and should never be set in
between them so it does not cause any problems at the moment.
> 
> > *************** struct bb_ann_d
> > *** 313,319 ****
> >     int num_preds;
> >   
> >     /* Set of blocks immediately dominated by this node.  */
> > !   bitmap dom_children;
> >   
> >     /* Nonzero if this block is forwardable during cfg cleanups.  This is also
> >        used to detect loops during cfg cleanups.  */
> > --- 313,319 ----
> >     int num_preds;
> >   
> >     /* Set of blocks immediately dominated by this node.  */
> > !   bitmap GTY ((skip (""))) dom_children;
> >   
> >     /* Nonzero if this block is forwardable during cfg cleanups.  This is also
> >        used to detect loops during cfg cleanups.  */
> 
> Why not just make dom_children GGC allocated as well?  Same for all the regset
> bitmaps in the basic_block_def struct.

I would like to do this incrementally as needed.   This change is
disturptive enought and we should see the perofmrance indications first :)

Honza
> 
> Gr.
> Steven
> 


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