This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
RE: [tree-ssa][ GC, Virtual operands, and GCing between passes
- From: Andrew MacLeod <amacleod at redhat dot com>
- To: "S. Bosscher" <S dot Bosscher at student dot tudelft dot nl>
- Cc: "'Geoff Keating '" <geoffk at geoffk dot org>, "'gcc mailing list '" <gcc at gcc dot gnu dot org>
- Date: 11 Dec 2003 09:27:45 -0500
- Subject: RE: [tree-ssa][ GC, Virtual operands, and GCing between passes
- References: <4195D82C2DB1D211B9910008C7C9B06F01F373EC@lr0nt3.lr.tudelft.nl>
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