]> granicus.if.org Git - llvm/commit
[SVE][IR] Scalable Vector IR Type
authorGraham Hunter <graham.hunter@arm.com>
Wed, 29 May 2019 12:22:54 +0000 (12:22 +0000)
committerGraham Hunter <graham.hunter@arm.com>
Wed, 29 May 2019 12:22:54 +0000 (12:22 +0000)
commitd049378e616131b59121cd72c4555d8dc7de316c
treef0199993337eeb7f9a63ec21a27622d5908305a9
parentd80696cb37b8ce8237471d99dbabe1ffd4b67d3e
[SVE][IR] Scalable Vector IR Type

* Adds a 'scalable' flag to VectorType
* Adds an 'ElementCount' class to VectorType to pass (possibly scalable) vector lengths, with overloaded operators.
* Modifies existing helper functions to use ElementCount
* Adds support for serializing/deserializing to/from both textual and bitcode IR formats
* Extends the verifier to reject global variables of scalable types
* Updates documentation

See the latest version of the RFC here: http://lists.llvm.org/pipermail/llvm-dev/2018-July/124396.html

Reviewers: rengolin, lattner, echristo, chandlerc, hfinkel, rkruppe, samparker, SjoerdMeijer, greened, sebpop

Reviewed By: hfinkel, sebpop

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361953 91177308-0d34-0410-b5e6-96231b3b80d8
19 files changed:
docs/LangRef.rst
include/llvm/ADT/DenseMapInfo.h
include/llvm/IR/DerivedTypes.h
include/llvm/IR/Type.h
include/llvm/Support/ScalableSize.h [new file with mode: 0644]
lib/AsmParser/LLLexer.cpp
lib/AsmParser/LLParser.cpp
lib/AsmParser/LLToken.h
lib/Bitcode/Reader/BitcodeReader.cpp
lib/Bitcode/Writer/BitcodeWriter.cpp
lib/IR/AsmWriter.cpp
lib/IR/LLVMContextImpl.h
lib/IR/Type.cpp
lib/IR/Verifier.cpp
test/Bitcode/compatibility.ll
test/Verifier/scalable-aggregates.ll [new file with mode: 0644]
test/Verifier/scalable-global-vars.ll [new file with mode: 0644]
unittests/IR/CMakeLists.txt
unittests/IR/VectorTypesTest.cpp [new file with mode: 0644]