HomePhabricator

[SVE][IR] Scalable Vector size queries and IR instruction support

Description

[SVE][IR] Scalable Vector size queries and IR instruction support

  • Adds a TypeSize struct to represent the known minimum size of a type along with a flag to indicate that the runtime size is a integer multiple of that size
  • Converts existing size query functions from Type.h and DataLayout.h to return a TypeSize result
  • Adds convenience methods (including a transparent conversion operator to uint64_t) so that most existing code 'just works' as if the return values were still scalars.
  • Uses the new size queries along with ElementCount to ensure that all supported instructions used with scalable vectors can be constructed in IR.

Reviewers: hfinkel, lattner, rkruppe, greened, rovka, rengolin, sdesmalen

Reviewed By: rovka, sdesmalen

Differential Revision: https://reviews.llvm.org/D53137

Details

Committed
huntergrOct 8 2019, 5:53 AM
Reviewer
rovka
Differential Revision
D53137: Scalable vector core instruction support + size queries
Parents
rL374041: AMDGPU: Propagate undef flag during pre-RA exec mask optimizations
Branches
Unknown
Tags
Unknown