This is an archive of the discontinued LLVM Phabricator instance.

[RegisterCoalescer] Make resolveConflicts aware of earlyclobber
ClosedPublic

Authored by arcbbb on Jul 9 2021, 2:07 AM.

Details

Summary

Prior to this patch, it skipped the instruction defining VNI when checking if the tainted lanes are used.
In the given example, VRGATHER is an illegal instruction because its DstReg overlaps with SrcReg.

Therefore we need to check the defining instruction as well when there is an earlyclobber constraint.

Diff Detail

Event Timeline

arcbbb created this revision.Jul 9 2021, 2:07 AM
arcbbb requested review of this revision.Jul 9 2021, 2:07 AM
Herald added a project: Restricted Project. · View Herald TranscriptJul 9 2021, 2:07 AM
arcbbb updated this revision to Diff 357448.Jul 9 2021, 2:20 AM
arcbbb edited the summary of this revision. (Show Details)

update a test case to show the difference

arcbbb edited the summary of this revision. (Show Details)Jul 9 2021, 2:33 AM
arcbbb updated this revision to Diff 357459.Jul 9 2021, 2:46 AM

clang-formatted

arcbbb updated this revision to Diff 357842.Jul 11 2021, 11:40 PM

Avoid postfix increment operator.

@qcolombet, can you take a look at this?

This revision is now accepted and ready to land.Jul 21 2021, 9:58 AM
This revision was landed with ongoing or failed builds.Jul 21 2021, 9:11 PM
This revision was automatically updated to reflect the committed changes.