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][ GC, Virtual operands, and GCing between passes


On Thu, 2003-12-11 at 09:14, S. Bosscher wrote:
> > The problem is that gengtype will not allow me to have vevotrs of type
> > tree **. It says its an unknown type.
> > 
> > typedef struct def_optype_d GTY(())
> > {
> >   unsigned num_defs;
> >   tree ** defs;
> > } def_optype_t;
> 
> Try this with http://gcc.gnu.org/ml/gcc-patches/2003-12/msg00593.html.
> 
> If that doesn't work, make it "PTR * GTY((skip ())) defs" (or just
> "void **" if you have that patch applied anyway) and cast to tree
> where needed.
> 
But when I use skip:
  
ptr * GTY((skip(""))) defs, 

its doesn't mark the vector, so it gets stomped all over. :


    typedef struct def_optype_d GTY(())
    {
      unsigned num_defs;
      tree * GTY((skip(""))) defs;
    } def_optype_t;

produces:

void
gt_ggc_mx_operands_d (void *x_p)
{
  struct operands_d * const x = (struct operands_d *)x_p;
  if (ggc_test_and_set_mark (x))
    {
    }
}


So that doesn't work for me either.

I am lothe to use the other patch until it is accepted by someone. OH, I
see Jim OK'd it. Has it been checked into mainline or the tree-ssa
branch?

Andrew



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