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