In my ongoing plumbing work on Dan Berlin's Operator Strength
Reduction implementation, I've encountered what seems to me like a
bug. On IRC yesterday everyone seemed to agree that it was a bug.
Zdenek, OTOH, says it is not a bug.

I would like it to be a bug (so it will get fixed everywhere), so I'm
interested in getting consensus here. Hopefully Zdenek will speak up
and explain why he thinks it needs to be allowed.

The situation is that some SSA_NAMEs are disused (removed from the
code) without being released onto the free list by release_ssa_name().
I have found only one place where this happens, but Zdenek claims
there are other places. The result is that it is apparently impossible
to tell by iterating over the vector of SSA_NAMEs whether any
particular SSA_NAME is currently in use by the code. What I would like
is for the SSA_NAME_IN_FREE_LIST bit to indicate reliably whether the
SSA_NAME is unused. If there is no way to deduce what I want by
looking at an SSA_NAME, it will be necessary to walk over the code
whenever we simply want to iterate over SSA_NAMEs that are in use.

Please discuss.

       -- Robert Kennedy

Reply via email to