diff options
| author | Dan Gohman <dan433584@gmail.com> | 2015-10-02 19:38:47 +0000 |
|---|---|---|
| committer | Dan Gohman <dan433584@gmail.com> | 2015-10-02 19:38:47 +0000 |
| commit | d4c5fb597d214f247a970a9225e81576c573c38e (patch) | |
| tree | 6744b280ea7c2693478963d4dc6e99fb73cef676 /clang | |
| parent | 7757224466a224e7bf19d506b2bf460ac285884d (diff) | |
| download | bcm5719-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.def | 1 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CGBuiltin.cpp | 5 | ||||
| -rw-r--r-- | clang/test/CodeGen/builtins-wasm.c | 6 |
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() +} |

