diff options
author | Artem Belevich <tra@google.com> | 2017-07-20 21:16:03 +0000 |
---|---|---|
committer | Artem Belevich <tra@google.com> | 2017-07-20 21:16:03 +0000 |
commit | d7a73824e46ac8aae8b7ba03069c662fb32f0f20 (patch) | |
tree | 147d23119b0dc5c0824618ed3c4714e388357fe9 /clang/lib/Basic | |
parent | e5456ce5e515a77fa4e1b447d1286be25b5ab525 (diff) | |
download | bcm5719-llvm-d7a73824e46ac8aae8b7ba03069c662fb32f0f20.tar.gz bcm5719-llvm-d7a73824e46ac8aae8b7ba03069c662fb32f0f20.zip |
[NVPTX] Add lowering of i128 params.
The patch adds support of i128 params lowering. The changes are quite trivial to
support i128 as a "special case" of integer type. With this patch, we lower i128
params the same way as aggregates of size 16 bytes: .param .b8 _ [16].
Currently, NVPTX can't deal with the 128 bit integers:
* in some cases because of failed assertions like
ValVTs.size() == OutVals.size() && "Bad return value decomposition"
* in other cases emitting PTX with .i128 or .u128 types (which are not valid [1])
[1] http://docs.nvidia.com/cuda/parallel-thread-execution/index.html#fundamental-types
Differential Revision: https://reviews.llvm.org/D34555
Patch by: Denys Zariaiev (denys.zariaiev@gmail.com)
llvm-svn: 308675
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 8a5c47b3401..01137b66b38 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -1833,9 +1833,9 @@ public: GPU = CudaArch::SM_20; if (TargetPointerWidth == 32) - resetDataLayout("e-p:32:32-i64:64-v16:16-v32:32-n16:32:64"); + resetDataLayout("e-p:32:32-i64:64-i128:128-v16:16-v32:32-n16:32:64"); else - resetDataLayout("e-i64:64-v16:16-v32:32-n16:32:64"); + resetDataLayout("e-i64:64-i128:128-v16:16-v32:32-n16:32:64"); // If possible, get a TargetInfo for our host triple, so we can match its // types. |