On Thu, Jul 10, 2014 at 8:22 PM, Jeff Law <l...@redhat.com> wrote: > On 07/10/14 09:48, Michael Matz wrote: >> >> Hi, >> >> On Thu, 10 Jul 2014, Richard Biener wrote: >> >>> Apart from the out-of-SSA patch you proposed elsewhere a possibility >>> is to simply never mark undefined SSA names as >>> SSA_NAME_OCCURS_IN_ABNORMAL_PHI ... (or not mark those >>> as must-coalesce). >> >> >> The insight to note is, that undefined SSA names should really be >> coalesced with something (otherwise you lost an optimization opportunity), >> but it doesn't matter with _what_ each use of the undefined name is >> coalesced, you can even identify different uses of them with different SSA >> names (e.g. the LHS of each using stmt). Requires some change in the >> order things are done in out-of-ssa. > > The last part is what I hinted might be problematical. If some undefined > SSA_NAME appears on the RHS of two PHIs and we want to coalesce that > undefined SSA_NAME with the LHS of each of those PHIs, then the LHS of those > two PHIs must coalesce as well. At least that's my recollection of how all > that stuff worked.
Yes, coalescing doesn't do "live-range splitting" to avoid coalescing the two PHI results. But they have to be coalesced anyway. I still think simply never recording conflicts for undefined SSA names is a proper "hack" to avoid this issue. > It was that realization that made me wonder if we should have a unique > SSA_NAME at each undefined use point. That would be unnecessarily expensive. Richard. > jeff >