This is an archive of the discontinued LLVM Phabricator instance.

[GlobalISel] Add scalable property to LLT types.
ClosedPublic

Authored by sdesmalen on Jun 17 2021, 5:45 AM.

Details

Summary

This patch aims to add the scalable property to LLT. The rest of the
patch-series changes the interfaces to take/return ElementCount and
TypeSize, which both have the ability to represent the scalable property.

The changes are mostly mechanical and aim to be non-functional changes
for fixed-width vectors.

For scalable vectors some unit tests have been added, but no effort has
been put into making any of the GlobalISel algorithms work with scalable
vectors yet. That will be left as future work.

The work is split into a series of 5 patches to make reviews easier.

Diff Detail

Event Timeline

sdesmalen created this revision.Jun 17 2021, 5:45 AM
sdesmalen requested review of this revision.Jun 17 2021, 5:45 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 17 2021, 5:45 AM

LGTM as long as this isn't increasing LLT's size. If it is I would rather steal a bit from the size or elements

llvm/include/llvm/Support/LowLevelTypeImpl.h
273

Is this increasing the total LLT size beyond 64-bits?

a static_assert of the size for proof and documentation?

Matt added a subscriber: Matt.Jun 19 2021, 7:57 AM
sdesmalen updated this revision to Diff 353349.Jun 21 2021, 5:48 AM

Added static_assert to ensure the size of the LLT struct is unchanged.

arsenm accepted this revision.Jun 21 2021, 6:21 AM
This revision is now accepted and ready to land.Jun 21 2021, 6:21 AM
This revision was landed with ongoing or failed builds.Jun 22 2021, 1:24 AM
This revision was automatically updated to reflect the committed changes.