On 10/25/14 01:48, Marc Glisse wrote:

Without the liveness patch, their lifetime should mean that they don't
coalesce with anything. But I would expect they get their own partition
then (I am forgetting these details way too fast...). With the liveness
patch which gives them an empty lifetime, they should all coalesce with
at least one other ssa_name.

What happens when we expand them?  I guess they get a new pseudo since
they're a distinct partition?  If we had a sensible story for
expansion, then I could probably get on board with this patch.

As I mentioned in my message, I don't know. Last time I looked I
couldn't find how coalescing was actually performed. tree-outof-ssa.c
has a function rewrite_trees with a promising comment but an empty body :-/
I agree that we need to understand what happens at expansion time when
the variables are not coalesced before pushing a patch that prevents
coalescing. I was kind of hoping someone would have a pointer...
Matz changed all the out-of-ssa stuff a while back. Basically instead of actually rewriting things to reflect going out of SSA, we just record the partitions and refer back to the partitions representative element during expansion.

So all we really need to do is verify reasonable partitions are built and that should answer any questions around expansion.


I don't really want to avoid gsi_replace, but I am willing to do it if
it makes reviewers nervous to call such a high-level function in the
cleanup code between passes (Richard in particular was unhappy about it).
Ah, I thought it was something you'd wanted, but sounds like it was Richi's request.



To clarify things so I know what to test and re-post, we are talking
about the patch in
https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01787.html and we can
forget about the coalescing thing in
https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01830.html ?
(I'd be happy with that :-)
Yes, those are the ones I was referring to.

jeff

Reply via email to