This is an archive of the discontinued LLVM Phabricator instance.

RegisterCoalescer: Assume CR_Replace for SubRangeJoin
ClosedPublic

Authored by arsenm on Nov 14 2018, 3:39 PM.

Details

Summary

Currently it's possible for following
check on V.WriteLanes (which is not really meaningful
during SubRangeJoin) to pass for one half of the pair,
and then fall through to to one of the impossible
or unresolved states. This then fails as inconsistent
on the other half.

During the main range join, the check between V.WriteLanes
and OtherV.ValidLanes must have passed, meaning this
should be a CR_Replace.

Fixes most of the testcases in bugs 39542 and 39602

Diff Detail