From: Dan Gohman Date: Thu, 5 Nov 2015 20:16:37 +0000 (+0000) Subject: [WebAssembly] Update wasm builtin functions to match spec changes. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f8c49657e44ac6b04664fca5e3192c2227ad537a;p=clang [WebAssembly] Update wasm builtin functions to match spec changes. The page_size operator has been removed from the spec, and the resize_memory operator has been changed to grow_memory. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@252201 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/BuiltinsWebAssembly.def b/include/clang/Basic/BuiltinsWebAssembly.def index 2f48d5d2b1..58171c8067 100644 --- a/include/clang/Basic/BuiltinsWebAssembly.def +++ b/include/clang/Basic/BuiltinsWebAssembly.def @@ -16,8 +16,7 @@ // The format of this database matches clang/Basic/Builtins.def. -BUILTIN(__builtin_wasm_page_size, "z", "nc") BUILTIN(__builtin_wasm_memory_size, "z", "nc") -BUILTIN(__builtin_wasm_resize_memory, "vz", "n") +BUILTIN(__builtin_wasm_grow_memory, "vz", "n") #undef BUILTIN diff --git a/lib/CodeGen/CGBuiltin.cpp b/lib/CodeGen/CGBuiltin.cpp index 425f7dbf8a..50535d386e 100644 --- a/lib/CodeGen/CGBuiltin.cpp +++ b/lib/CodeGen/CGBuiltin.cpp @@ -7274,19 +7274,14 @@ Value *CodeGenFunction::EmitNVPTXBuiltinExpr(unsigned BuiltinID, Value *CodeGenFunction::EmitWebAssemblyBuiltinExpr(unsigned BuiltinID, const CallExpr *E) { switch (BuiltinID) { - case WebAssembly::BI__builtin_wasm_page_size: { - llvm::Type *ResultType = ConvertType(E->getType()); - 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); } - case WebAssembly::BI__builtin_wasm_resize_memory: { + case WebAssembly::BI__builtin_wasm_grow_memory: { Value *X = EmitScalarExpr(E->getArg(0)); - Value *Callee = CGM.getIntrinsic(Intrinsic::wasm_resize_memory, X->getType()); + Value *Callee = CGM.getIntrinsic(Intrinsic::wasm_grow_memory, X->getType()); return Builder.CreateCall(Callee, X); } diff --git a/test/CodeGen/builtins-wasm.c b/test/CodeGen/builtins-wasm.c index 2de08c71c8..15f2e9dbf3 100644 --- a/test/CodeGen/builtins-wasm.c +++ b/test/CodeGen/builtins-wasm.c @@ -3,12 +3,6 @@ // RUN: %clang_cc1 -triple wasm64-unknown-unknown -O3 -emit-llvm -o - %s \ // RUN: | FileCheck %s -check-prefix=WEBASSEMBLY64 -__SIZE_TYPE__ f0(void) { - return __builtin_wasm_page_size(); -// 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() @@ -16,7 +10,7 @@ __SIZE_TYPE__ f1(void) { } void f2(long delta) { - __builtin_wasm_resize_memory(delta); -// WEBASSEMBLY32: call void @llvm.wasm.resize.memory.i32(i32 %{{.*}}) -// WEBASSEMBLY64: call void @llvm.wasm.resize.memory.i64(i64 %{{.*}}) + __builtin_wasm_grow_memory(delta); +// WEBASSEMBLY32: call void @llvm.wasm.grow.memory.i32(i32 %{{.*}}) +// WEBASSEMBLY64: call void @llvm.wasm.grow.memory.i64(i64 %{{.*}}) }