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-cfg] BIND_EXPR removal


Hello,

> 
> >*************** tree_perform_ssapre (tree fndecl, enum t
> >*** 3001,3007 ****
> >  	  htab_delete (ephi_pindex_htab);
> >  	  ephi_pindex_htab = NULL;
> >  	}
> >!       ggc_collect ();
> >        if (redo_dominators)
> >  	{
> >  	  redo_dominators = false;
> >--- 3001,3007 ----
> >  	  htab_delete (ephi_pindex_htab);
> >  	  ephi_pindex_htab = NULL;
> >  	}
> >! /*      ggc_collect ();  */ /* This causes whole lot of trouble with 
> >temporary structures.  */
> >        if (redo_dominators)
> >  	{
> >  	  redo_dominators = false;
> 
> It should not.
> It does not on the main tree-ssa branch.
> We specifically ggc_push_context to avoid any problems, and this 
> guarnatees the only things destroyed are those created during each 
> expression's PRE'ing.
> 
> Any problems that you are experiencing are likely due to improper 
> marking of structures you have attached to trees, and *need* to be 
> fixed.

nope, both problems I have detected should also be on mainline. The
first is the dom_children allocated by gc (this I fixed).  The second
one is that dominance_info structure contains varray that is also
allocated by gc.  Both of these cause problems when dominators are
recomputed, since this is done after ggc_push_context.
I will of course do the proper fix once I have a time,
this is just a workaround to make the branch bootstrap.

Zdenek


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