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 18:34, law@redhat.com wrote:
> In message <1071184128.14253.289.camel@p4>, Andrew MacLeod writes:
>  >On Thu, 2003-12-11 at 14:30, law@redhat.com wrote:
>  >> In message <1071016677.17667.2918.camel@p4>, Andrew MacLeod writes:
>  >>  >
>  >>  >I have array of pointers to trees.
>  >>  >
>  >>  >so 
>  >>  >
>  >>  >tree **defs;
>  >> Really pointers to pointers to trees.
>  >> 
>  >> 
>  >>  >I don't want what defs points to to be marked, since they are marked
>  >>  >otherwise, I just need the defs vector itself collected:
>  >> Is that really the reason why you're going through these contortions?  Does
>  >> it really buy us any measurable improvement?
>  >> 
>  >
>  >ACtually, no, the contortions are just to get the GC system to *let* me
>  >have this vector. I have since punted.
> Hmmm, don't we just need an array of pointers to trees?  ie
> 
> tree *defs?
> 
> instead of
> 
> tree **defs?
> 
> Or am I missing something?


If it was just tree *def, we would have access to read the defs and
uses, but if we wanted to actually change the value of the def or use
operands in the originating stmt, you dont have a handle on the pointer
in the stmt which points at that operand, so you cant change it without
structure copying the tree structure.And we dont want to do that :-)
tree **def lets us get a tthe things which points at the operand.

vdefs and vuses are the actual tree value, so an array of trees works
for them. They dont occur anywhere else. We have one extra level of
indirection for stmt real operands.

Andrew




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