[all-commits] [llvm/llvm-project] 753aca: [AArch64] Add an error if SVE scalable vector type...
David Green via All-commits
all-commits at lists.llvm.org
Thu Jan 12 10:21:43 PST 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 753aca0a3ab0c1822ab3a95beaf8eaa91d7a157d
https://github.com/llvm/llvm-project/commit/753aca0a3ab0c1822ab3a95beaf8eaa91d7a157d
Author: David Green <david.green at arm.com>
Date: 2023-01-12 (Thu, 12 Jan 2023)
Changed paths:
M clang/include/clang/AST/Type.h
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/AST/Type.cpp
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/test/CodeGen/aarch64-targetattr-arch.c
A clang/test/Sema/arm-sve-target.cpp
Log Message:
-----------
[AArch64] Add an error if SVE scalable vector types are used in a context without sve
This adds an error message if the isSVESizelessBuiltinType like
__SVFloat32_t / __SVInt64_t / etc, which provide the backing for the
svfloat32_t / svint64_t / etc ACLE types, are used in a function without
SVE. The alternative is a crash in the backend, which is not capable of
handling scalable vector types.
When SVE is available, either through a -march=..+sve option or via a
target(sve) attribute, nothing should change. Without the sve feature,
this patch gives an error for any function arguments, return values and
variable declarations involving the scalable types. Struct/class members
and global variables already give an error. As this can be based on the
current function target attributes, the error sometimes needs to be
handled later than would otherwise if it was just based on the global
target.
Differential Revision: https://reviews.llvm.org/D131058
More information about the All-commits
mailing list