This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] copy prop vs. debugging
- From: law at redhat dot com
- To: Andrew MacLeod <amacleod at redhat dot com>
- Cc: Jason Merrill <jason at redhat dot com>, Diego Novillo <dnovillo at redhat dot com>, gcc mailing list <gcc at gcc dot gnu dot org>
- Date: Thu, 10 Jul 2003 17:21:30 -0600
- Subject: Re: [tree-ssa] copy prop vs. debugging
In message <1057760521.29596.29.camel@p4>, Andrew MacLeod writes:
>I can do that when I add the stack-space reduction pass to the
>SSA->normal coalescer. Ie, when I try to merge various non-conflicting
>temporaries of the same type into a single variable. You certainly want
>to prioritize it to merge any which have a copy first (so we can
>eliminate the copy), and it should be simple enough to choose a user var
>over a compiler temporary to represent the merged location in those
>cases.
I looked at this pretty briefly. But it seems to me that:
What I was thinking about was:
1. Do all the coalescing we do now as-is. Basically meaning that we
try to coalesce renamed variables back to their root.
2. For each pair of objects that appears in a copy or in a PHI node
try to coalesce them (since they're copies or potential copies).
3. Try to coalesce unrelated temporaries of the same time to reduce
the number of temporaries we use.
>Does that also mean I shouldn't merge temporaries with user variables if
>there is not a copy?
Unsure. I think you should definitely merge them if they have a real
copy or a potential copy via a PHI node. When I was playing with Jason's
stuff (which uses a lot more temporaries) we end up with a lot of copies
between user vars and temp vars.
Jeff