This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][GlobalISel] Simplify/nuke the merge/unmerge legalizer rules.
ClosedPublic

Authored by aemerson on Aug 11 2021, 4:31 PM.

Details

Summary

These rules were originally written when the new predicate based legalizer was introduced in an attempt to preserve existing behaviour. It wasn't properly kept up to date as things like vector support was split out into G_CONCAT_VECTORS, and frankly, even if it was, it was too complex.

It's much easier to start from scratch with what we can actually support, which is just a few type combinations. Anything illegal we should either legalize, or should be eliminated as a side effect of artifact combination.

Diff Detail

Event Timeline

aemerson created this revision.Aug 11 2021, 4:31 PM
aemerson requested review of this revision.Aug 11 2021, 4:31 PM
Herald added a project: Restricted Project. · View Herald TranscriptAug 11 2021, 4:31 PM
paquette accepted this revision.Aug 11 2021, 4:32 PM

I feel like a demon has been exorcised from the codebase

This revision is now accepted and ready to land.Aug 11 2021, 4:32 PM
This revision was landed with ongoing or failed builds.Aug 11 2021, 4:45 PM
This revision was automatically updated to reflect the committed changes.