diff options
author | Paulo Matos <pmatos@igalia.com> | 2023-01-09 15:15:12 +0100 |
---|---|---|
committer | Paulo Matos <pmatos@igalia.com> | 2023-01-31 17:34:01 +0100 |
commit | eb66833d19573df97034a81279eda31b8d19815b (patch) | |
tree | fd42f2041cac031d7c0778cde3016a644b618e2d /clang/lib/CodeGen/CGDebugInfo.cpp | |
parent | 48b5a06dfcab12cf093a1a3df42cb5b684e2be4c (diff) | |
download | llvm-eb66833d19573df97034a81279eda31b8d19815b.zip llvm-eb66833d19573df97034a81279eda31b8d19815b.tar.gz llvm-eb66833d19573df97034a81279eda31b8d19815b.tar.bz2 |
[clang][WebAssembly] Initial support for reference type externref in clang
This patch introduces a new type __externref_t that denotes a WebAssembly opaque
reference type. It also implements builtin __builtin_wasm_ref_null_extern(),
that returns a null value of __externref_t. This lays the ground work
for further builtins and reference types.
Differential Revision: https://reviews.llvm.org/D122215
Diffstat (limited to 'clang/lib/CodeGen/CGDebugInfo.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGDebugInfo.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp index e05c157..fafc0f8 100644 --- a/clang/lib/CodeGen/CGDebugInfo.cpp +++ b/clang/lib/CodeGen/CGDebugInfo.cpp @@ -817,6 +817,17 @@ llvm::DIType *CGDebugInfo::CreateType(const BuiltinType *BT) { return DBuilder.createVectorType(/*Size=*/0, Align, ElemTy, SubscriptArray); } + +#define WASM_REF_TYPE(Name, MangledName, Id, SingletonId, AS) \ + case BuiltinType::Id: { \ + if (!SingletonId) \ + SingletonId = \ + DBuilder.createForwardDecl(llvm::dwarf::DW_TAG_structure_type, \ + MangledName, TheCU, TheCU->getFile(), 0); \ + return SingletonId; \ + } +#include "clang/Basic/WebAssemblyReferenceTypes.def" + case BuiltinType::UChar: case BuiltinType::Char_U: Encoding = llvm::dwarf::DW_ATE_unsigned_char; |