This is an archive of the discontinued LLVM Phabricator instance.

GlobalISel: Move getLLTForMVT/getMVTForLLT
ClosedPublic

Authored by arsenm on Jan 9 2020, 8:00 AM.

Details

Summary

As an intermediate step, some TLI functions can be converted to using
LLT instead of MVT. Move this somewhere out of GlobalISel so DAG
functions can use these.

Diff Detail

Event Timeline

arsenm created this revision.Jan 9 2020, 8:00 AM
aemerson accepted this revision.Jan 9 2020, 9:35 AM

LGTM.

This revision is now accepted and ready to land.Jan 9 2020, 9:35 AM

Can you add a comment noting the deficiencies of these conversions?

In particular:

  1. MVT can't distinguish pointers from integers, and LLT cannot distinguish floating-point from integers. Therefore, only integer scalars and vectors will result from these conversions.
  2. LLT cannot represent scalable vector types (yet?), so getLLTForMVT will assert if provided such an MVT.