]> granicus.if.org Git - clang/commit
[SVE][IR] Scalable Vector size queries and IR instruction support
authorGraham Hunter <graham.hunter@arm.com>
Tue, 8 Oct 2019 12:53:54 +0000 (12:53 +0000)
committerGraham Hunter <graham.hunter@arm.com>
Tue, 8 Oct 2019 12:53:54 +0000 (12:53 +0000)
commit01b473ed13c6833b486465568295bc424c69d471
tree9be8890a345d97a28ca27eb22dd9890b1d25a08a
parent31d30444a9da067d0f5728ec075789f42ccda236
[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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@374042 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGCall.cpp
lib/CodeGen/CGStmt.cpp
lib/CodeGen/CodeGenFunction.cpp