This is an archive of the discontinued LLVM Phabricator instance.

[RegisterCoalescer] Fixed inconsistent followCopyChain with subreg
ClosedPublic

Authored by tpr on Jul 19 2018, 3:28 AM.

Details

Summary

The behavior of followCopyChain with a subreg depends on the order in
which subranges appear in a live interval, which is bad.

This commit fixes that, and allows the copy chain to continue only if
all matching subranges that are not undefined take us to the same def.

I don't have a test for this; the reproducer I had on my branch with
various other local changes does not reproduce the problem on upstream
llvm. Also that reproducer was an ll test; attempting to convert it to a
mir test made the subranges appear in a different order and hid the
problem.

However I would argue that the old behavior was obviously wrong
and needs fixing.

Change-Id: Iee7936ef305918f3b498ac432e2cf651ae5cc2df

Diff Detail

Repository
rL LLVM