diff --git a/builtins/util-nvptx.m4 b/builtins/util-nvptx.m4 index ede70860..891e2760 100644 --- a/builtins/util-nvptx.m4 +++ b/builtins/util-nvptx.m4 @@ -1954,46 +1954,24 @@ declare void @llvm.memcpy.p0i8.p0i8.i32(i8* %dest, i8* %src, declare void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest, i8* %src, i64 %len, i32 %align, i1 %isvolatile) -define void @__memcpy32(i8 * %dst, i8 * %src, i32 %len) alwaysinline { - call void @llvm.memcpy.p0i8.p0i8.i32(i8 * %dst, i8 * %src, i32 %len, i32 0, i1 0) - ret void -} - -define void @__memcpy64(i8 * %dst, i8 * %src, i64 %len) alwaysinline { - call void @llvm.memcpy.p0i8.p0i8.i64(i8 * %dst, i8 * %src, i64 %len, i32 0, i1 0) - ret void -} +declare void @__memcpy32(i8 * %dst, i8 * %src, i32 %len) alwaysinline; +declare void @__memcpy64(i8 * %dst, i8 * %src, i64 %len) alwaysinline; declare void @llvm.memmove.p0i8.p0i8.i32(i8* %dest, i8* %src, i32 %len, i32 %align, i1 %isvolatile) declare void @llvm.memmove.p0i8.p0i8.i64(i8* %dest, i8* %src, i64 %len, i32 %align, i1 %isvolatile) -define void @__memmove32(i8 * %dst, i8 * %src, i32 %len) alwaysinline { - call void @llvm.memmove.p0i8.p0i8.i32(i8 * %dst, i8 * %src, i32 %len, i32 0, i1 0) - ret void -} - -define void @__memmove64(i8 * %dst, i8 * %src, i64 %len) alwaysinline { - call void @llvm.memmove.p0i8.p0i8.i64(i8 * %dst, i8 * %src, i64 %len, i32 0, i1 0) - ret void -} - +declare void @__memmove32(i8 * %dst, i8 * %src, i32 %len) alwaysinline; +declare void @__memmove64(i8 * %dst, i8 * %src, i64 %len) alwaysinline declare void @llvm.memset.p0i8.i32(i8* %dest, i8 %val, i32 %len, i32 %align, i1 %isvolatile) declare void @llvm.memset.p0i8.i64(i8* %dest, i8 %val, i64 %len, i32 %align, i1 %isvolatile) -define void @__memset32(i8 * %dst, i8 %val, i32 %len) alwaysinline { - call void @llvm.memset.p0i8.i32(i8 * %dst, i8 %val, i32 %len, i32 0, i1 0) - ret void -} - -define void @__memset64(i8 * %dst, i8 %val, i64 %len) alwaysinline { - call void @llvm.memset.p0i8.i64(i8 * %dst, i8 %val, i64 %len, i32 0, i1 0) - ret void -} +declare void @__memset32(i8 * %dst, i8 %val, i32 %len) alwaysinline ; +declare void @__memset64(i8 * %dst, i8 %val, i64 %len) alwaysinline; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/stmt.cpp b/stmt.cpp index 327bb4fc..0f84215f 100644 --- a/stmt.cpp +++ b/stmt.cpp @@ -268,8 +268,8 @@ DeclStmt::EmitCode(FunctionEmitContext *ctx) const { if (sym->storageClass == SC_STATIC) { if (g->target->getISA() == Target::NVPTX && !sym->type->IsConstType()) - Error(sym->pos, - "Non-constant static variable ""\"%s\" is not supported with ""\"nvptx\" target.", + PerformanceWarning(sym->pos, + "Non-constant static variable ""\"%s\" is stored in __global address sace with ""\"nvptx\" target.", sym->name.c_str()); if (g->target->getISA() == Target::NVPTX && sym->type->IsVaryingType()) PerformanceWarning(sym->pos,