summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2015-10-02 19:38:47 +0000
committerDan Gohman <dan433584@gmail.com>2015-10-02 19:38:47 +0000
commitd4c5fb597d214f247a970a9225e81576c573c38e (patch)
tree6744b280ea7c2693478963d4dc6e99fb73cef676 /clang
parent7757224466a224e7bf19d506b2bf460ac285884d (diff)
downloadbcm5719-llvm-d4c5fb597d214f247a970a9225e81576c573c38e.tar.gz
bcm5719-llvm-d4c5fb597d214f247a970a9225e81576c573c38e.zip
[WebAssembly] Add a __builtin_wasm_memory_size() intrinsic.
llvm-svn: 249176
Diffstat (limited to 'clang')
-rw-r--r--clang/include/clang/Basic/BuiltinsWebAssembly.def1
-rw-r--r--clang/lib/CodeGen/CGBuiltin.cpp5
-rw-r--r--clang/test/CodeGen/builtins-wasm.c6
3 files changed, 12 insertions, 0 deletions
diff --git a/clang/include/clang/Basic/BuiltinsWebAssembly.def b/clang/include/clang/Basic/BuiltinsWebAssembly.def
index 5c67bdfbb49..060d5548e4f 100644
--- a/clang/include/clang/Basic/BuiltinsWebAssembly.def
+++ b/clang/include/clang/Basic/BuiltinsWebAssembly.def
@@ -17,5 +17,6 @@
// The format of this database matches clang/Basic/Builtins.def.
BUILTIN(__builtin_wasm_page_size, "z", "nc")
+BUILTIN(__builtin_wasm_memory_size, "z", "nc")
#undef BUILTIN
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp
index 27dd5b5728d..ff2cef9b02c 100644
--- a/clang/lib/CodeGen/CGBuiltin.cpp
+++ b/clang/lib/CodeGen/CGBuiltin.cpp
@@ -7048,6 +7048,11 @@ Value *CodeGenFunction::EmitWebAssemblyBuiltinExpr(unsigned BuiltinID,
Value *Callee = CGM.getIntrinsic(Intrinsic::wasm_page_size, ResultType);
return Builder.CreateCall(Callee);
}
+ case WebAssembly::BI__builtin_wasm_memory_size: {
+ llvm::Type *ResultType = ConvertType(E->getType());
+ Value *Callee = CGM.getIntrinsic(Intrinsic::wasm_memory_size, ResultType);
+ return Builder.CreateCall(Callee);
+ }
default:
return nullptr;
diff --git a/clang/test/CodeGen/builtins-wasm.c b/clang/test/CodeGen/builtins-wasm.c
index 93a66d0a337..d8da8d73a27 100644
--- a/clang/test/CodeGen/builtins-wasm.c
+++ b/clang/test/CodeGen/builtins-wasm.c
@@ -8,3 +8,9 @@ __SIZE_TYPE__ f0(void) {
// WEBASSEMBLY32: call {{i.*}} @llvm.wasm.page.size.i32()
// WEBASSEMBLY64: call {{i.*}} @llvm.wasm.page.size.i64()
}
+
+__SIZE_TYPE__ f1(void) {
+ return __builtin_wasm_memory_size();
+// WEBASSEMBLY32: call {{i.*}} @llvm.wasm.memory.size.i32()
+// WEBASSEMBLY64: call {{i.*}} @llvm.wasm.memory.size.i64()
+}
OpenPOWER on IntegriCloud