aboutsummaryrefslogtreecommitdiff
path: root/clang/bindings
diff options
context:
space:
mode:
authorQiu Chaofan <qiucofan@cn.ibm.com>2021-09-06 17:49:23 +0800
committerQiu Chaofan <qiucofan@cn.ibm.com>2021-09-06 18:00:58 +0800
commitfae0dfa6421ea6c02f86ba7292fa782e1e2b69d1 (patch)
tree709fcdac25195781a15660d74e8588a1707248df /clang/bindings
parent96f6785bc9fe3219e9486ff09b22b31fa0c73b34 (diff)
downloadllvm-fae0dfa6421ea6c02f86ba7292fa782e1e2b69d1.zip
llvm-fae0dfa6421ea6c02f86ba7292fa782e1e2b69d1.tar.gz
llvm-fae0dfa6421ea6c02f86ba7292fa782e1e2b69d1.tar.bz2
[Clang] Add __ibm128 type to represent ppc_fp128
Currently, we have no front-end type for ppc_fp128 type in IR. PowerPC target generates ppc_fp128 type from long double now, but there's option (-mabi=(ieee|ibm)longdouble) to control it and we're going to do transition from IBM extended double-double ppc_fp128 to IEEE fp128 in the future. This patch adds type __ibm128 which always represents ppc_fp128 in IR, as what GCC did for that type. Without this type in Clang, compilation will fail if compiling against future version of libstdcxx (which uses __ibm128 in headers). Although all operations in backend for __ibm128 is done by software, only PowerPC enables support for it. There's something not implemented in this commit, which can be done in future ones: - Literal suffix for __ibm128 type. w/W is suitable as GCC documented. - __attribute__((mode(IF))) should be for __ibm128. - Complex __ibm128 type. Reviewed By: rjmccall Differential Revision: https://reviews.llvm.org/D93377
Diffstat (limited to 'clang/bindings')
-rw-r--r--clang/bindings/python/clang/cindex.py1
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/bindings/python/clang/cindex.py b/clang/bindings/python/clang/cindex.py
index aceaa13..44bfba4 100644
--- a/clang/bindings/python/clang/cindex.py
+++ b/clang/bindings/python/clang/cindex.py
@@ -2059,6 +2059,7 @@ TypeKind.OBJCCLASS = TypeKind(28)
TypeKind.OBJCSEL = TypeKind(29)
TypeKind.FLOAT128 = TypeKind(30)
TypeKind.HALF = TypeKind(31)
+TypeKind.IBM128 = TypeKind(40)
TypeKind.COMPLEX = TypeKind(100)
TypeKind.POINTER = TypeKind(101)
TypeKind.BLOCKPOINTER = TypeKind(102)