This is an archive of the discontinued LLVM Phabricator instance.

RegisterCoalscer: Only coalesce complete reserved registers.

Authored by MatzeB on Nov 15 2016, 11:49 AM.



The coalescer eliminates copies from reserved registers of the form:

%vregX = COPY %rY

when %rY is a reserved physreg. However this transformation may be invalid if %rY has non-reserved subregister for which we will miss liveness information. Be conservative in this case and do not coalesce.

The test requires to work.

Diff Detail


Event Timeline

MatzeB updated this revision to Diff 78046.Nov 15 2016, 11:49 AM
MatzeB retitled this revision from to RegisterCoalscer: Only coalesce complete reserved registers..
MatzeB updated this object.
MatzeB added a reviewer: qcolombet.
MatzeB set the repository for this revision to rL LLVM.
MatzeB added a subscriber: llvm-commits.
qcolombet accepted this revision.Nov 15 2016, 4:09 PM
qcolombet edited edge metadata.


This revision is now accepted and ready to land.Nov 15 2016, 4:09 PM
This revision was automatically updated to reflect the committed changes.