llvm-project/clang/tools
Richard Sandiford eb485fbc71 Add SVE opaque built-in types
This patch adds the SVE built-in types defined by the Procedure Call
Standard for the Arm Architecture:

   https://developer.arm.com/docs/100986/0000

It handles the types in all relevant places that deal with built-in types.
At the moment, some of these places bail out with an error, including:

   (1) trying to generate LLVM IR for the types
   (2) trying to generate debug info for the types
   (3) trying to mangle the types using the Microsoft C++ ABI
   (4) trying to @encode the types in Objective C

(1) and (2) are fixed by follow-on patches but (unlike this patch)
they deal mostly with target-specific LLVM details, so seemed like
a logically separate change.  There is currently no spec for (3) and
(4), so reporting an error seems like the correct behaviour for now.

The intention is that the types will become sizeless types:

   http://lists.llvm.org/pipermail/cfe-dev/2019-June/062523.html

The main purpose of the sizeless type extension is to diagnose
impossible or dangerous uses of the types, such as any that would
require sizeof to have a meaningful defined value.

Until then, the patch sets the alignments of the types to the values
specified in the link above.  It also sets the sizes of the types to
zero, which is chosen to be consistently wrong and shouldn't affect
correctly-written code (i.e. code that would compile even with the
sizeless type extension).

The patch adds the common subset of functionality needed to test the
sizeless type extension on the one hand and to provide SVE intrinsic
functions on the other.  After this patch, the two pieces of work are
essentially independent.

The patch is based on one by Graham Hunter:

   https://reviews.llvm.org/D59245

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

llvm-svn: 368413
2019-08-09 08:52:54 +00:00
..
arcmt-test cmake: Add CLANG_LINK_CLANG_DYLIB option 2019-07-03 22:45:55 +00:00
c-arcmt-test [CMake] Use PRIVATE in target_link_libraries for executables 2017-12-05 21:49:56 +00:00
c-index-test Print NULL as "(null)" in diagnostic message 2019-06-26 19:27:16 +00:00
clang-check cmake: Add CLANG_LINK_CLANG_DYLIB option 2019-07-03 22:45:55 +00:00
clang-diff cmake: Add CLANG_LINK_CLANG_DYLIB option 2019-07-03 22:45:55 +00:00
clang-extdef-mapping [CrossTU] Handle case when no USR could be generated during Decl search. 2019-08-06 12:10:16 +00:00
clang-format [clang] Adopt new FileManager error-returning APIs 2019-08-01 21:31:56 +00:00
clang-format-vs clang-format extension: Widen the supported versions range 2019-06-13 07:07:24 +00:00
clang-fuzzer [clang-fuzzer] Remove 'setUseOrcMCJITReplacement(false)' call. 2019-07-15 22:27:57 +00:00
clang-import-test [clang] Adopt new FileManager error-returning APIs 2019-08-01 21:31:56 +00:00
clang-offload-bundler Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
clang-refactor Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
clang-rename Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
clang-scan-deps [clang-scan-deps] Implementation of dependency scanner over minimized sources 2019-08-06 20:43:25 +00:00
clang-shlib Revert [clang-shlib] Fix clang-shlib for PRIVATE dependencies 2019-07-12 17:23:35 +00:00
diag-build
diagtool [diagtool] Use `operator<<(Colors)` to print out colored output. 2019-08-08 07:04:01 +00:00
driver [clang] Add no-warn support for Wa 2019-08-08 19:19:20 +00:00
libclang Add SVE opaque built-in types 2019-08-09 08:52:54 +00:00
scan-build [analyzer] Fix scan-build's plist output in plist-html mode. 2019-08-08 20:22:32 +00:00
scan-build-py [tools] Fix python DeprecationWarning: invalid escape sequence 2019-02-11 15:03:17 +00:00
scan-view [clang-scan-view] Force utf-8 when handling report (python2 only) 2019-07-16 08:56:47 +00:00
CMakeLists.txt [clang-scan-deps] initial outline of the tool that runs preprocessor to find 2019-06-12 21:32:49 +00:00