This is an archive of the discontinued LLVM Phabricator instance.

[RegisterCoalescer] Fixup "Fixed inconsistent followCopyChain with subreg"
Needs ReviewPublic

Authored by tpr on Sep 10 2018, 12:40 AM.

Details

Summary

This fixes up my earlier fix D49535 rL338070.

In followCopyChain, the comparison I added to check that two subranges
arrived back at the same def point was bogus. Fixed here.

The test fails with a "Couldn't join subrange" assert without this fix,
because followCopyChain gives the wrong answer and makes a coalesce of A
and B appear impossible where there are copies A->C->B and A is a subreg
def.

Change-Id: I4257fb93800d3834d2b1894359d778f3fdb43f40

Diff Detail

Event Timeline

tpr created this revision.Sep 10 2018, 12:40 AM

Hi Tim,

Same comments as https://reviews.llvm.org/D51574.
The change looks good but the test case if not specific enough. We shouldn't require asserts and at least, we should check we coalesce the live-ranges in a sensible way.

Cheers,
-Quentin

tpr added a comment.Sep 13 2018, 2:45 PM

This is now superseded by D52061. If that one is approved, I will abandon this one.