This is an archive of the discontinued LLVM Phabricator instance.

RegisterCoalescer: Report impossible for erasable implicit defs
AbandonedPublic

Authored by arsenm on Nov 2 2018, 2:34 PM.

Details

Reviewers
MatzeB
kparzysz
Summary

When mapValues was called on one half, this was reporting CR_Erase.
For the second value, it would see the value live out of the block
and report CR_Impossible. Check if it's live out when clearing
ErasableImplicitDef to avoid reporting inconsistent results.

I'm not very confident this is the right way to fix this. Changing
ErasableImplicitDef in the middle of this seems strange to me.

Diff Detail

Event Timeline

arsenm created this revision.Nov 2 2018, 2:34 PM

I have another case that fails from the same fundamental problem of reporting OK for one side, and then aborting on the range check on the other side, so this might not be the right place to put this check

arsenm abandoned this revision.Nov 15 2018, 9:02 PM

D54551 solves this more completely