This is an archive of the discontinued LLVM Phabricator instance.

RegisterCoalescer: Fix joinReservedPhysReg()
ClosedPublic

Authored by MatzeB on Feb 6 2017, 4:51 PM.

Details

Summary

Wei correctly pointed out in the discussion of D29436 that we cannot properly deal with control flow even with the fixes proposed there. This is also hard to fix as we do not track liveness for reserved registers (we only have the defs but no full live ranges available). So instead of trying to fix things for control flow we should simply abort:

joinReservedPhysReg() can only deal with a liverange in a single basic
block when copying from a vreg into a physreg.

Diff Detail

Repository
rL LLVM

Event Timeline

MatzeB created this revision.Feb 6 2017, 4:51 PM
wmi accepted this revision.Feb 6 2017, 5:24 PM

LGTM with A nitpick.

test/CodeGen/AArch64/regcoal-physreg.mir
91

The testcase is to check COPY to reserved physregs instead of from.

This revision is now accepted and ready to land.Feb 6 2017, 5:24 PM
MatzeB closed this revision.Jun 26 2017, 7:51 PM

I think this landed in r294268