Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update for nocapture to captures(none) Attribute change #2980

Merged
merged 2 commits into from
Jan 31, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion lib/SPIRV/SPIRVInternal.h
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,6 @@ inline void SPIRVMap<Attribute::AttrKind, SPIRVFuncParamAttrKind>::init() {
add(Attribute::ByVal, FunctionParameterAttributeByVal);
add(Attribute::StructRet, FunctionParameterAttributeSret);
add(Attribute::NoAlias, FunctionParameterAttributeNoAlias);
add(Attribute::NoCapture, FunctionParameterAttributeNoCapture);
add(Attribute::ReadOnly, FunctionParameterAttributeNoWrite);
add(Attribute::ReadNone, FunctionParameterAttributeNoReadWrite);
}
Expand Down
5 changes: 5 additions & 0 deletions lib/SPIRV/SPIRVReader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3223,6 +3223,11 @@ void SPIRVToLLVM::transFunctionAttrs(SPIRVFunction *BF, Function *F) {
// OpenCL metadata
if (Kind == FunctionParameterAttributeRuntimeAlignedINTEL)
return;
if (Kind == FunctionParameterAttributeNoCapture) {
I->addAttr(Attribute::getWithCaptureInfo(F->getContext(),
CaptureInfo::none()));
return;
}
Attribute::AttrKind LLVMKind = SPIRSPIRVFuncParamAttrMap::rmap(Kind);
if (IllegalAttrs.contains(LLVMKind))
return;
Expand Down
2 changes: 1 addition & 1 deletion lib/SPIRV/SPIRVRegularizeLLVM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ void SPIRVRegularizeLLVMBase::lowerIntrinsicToFunction(
Intrinsic->setCalledFunction(F);
return;
}
// TODO copy arguments attributes: nocapture writeonly.
// TODO copy arguments attributes: captures(none) writeonly.
FunctionCallee FC =
M->getOrInsertFunction(FuncName, Intrinsic->getFunctionType());
auto IntrinsicID = Intrinsic->getIntrinsicID();
Expand Down
2 changes: 1 addition & 1 deletion test/DebugInfo/Generic/2010-10-01-crash.ll
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ entry:

declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone

declare void @llvm.memcpy.p0.p0.i32(ptr nocapture, ptr nocapture, i32, i1) nounwind
declare void @llvm.memcpy.p0.p0.i32(ptr captures(none), ptr captures(none), i32, i1) nounwind


!llvm.dbg.cu = !{!2}
Expand Down
10 changes: 5 additions & 5 deletions test/DebugInfo/Generic/c-and-cpp-mixed.ll
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,16 @@

; CHECK-LLVM: define spir_func void @foo() #0 !dbg ![[#Func1:]] {
; CHECK-LLVM: entry:
; CHECK-LLVM: %puts = call spir_func i32 @puts(ptr addrspace(1) nocapture @str) #0, !dbg ![[#Puts1Loc:]]
; CHECK-LLVM: %puts = call spir_func i32 @puts(ptr addrspace(1) captures(none) @str) #0, !dbg ![[#Puts1Loc:]]
; CHECK-LLVM: ret void, !dbg ![[#Ret1:]]
; CHECK-LLVM: }

; CHECK-LLVM: define spir_func i32 @main(i32 %argc, ptr nocapture %argv) #0 !dbg ![[#Func2:]] {
; CHECK-LLVM: define spir_func i32 @main(i32 %argc, ptr captures(none) %argv) #0 !dbg ![[#Func2:]] {
; CHECK-LLVM: entry:
; CHECK-LLVM: #dbg_value(i32 %argc, ![[#Fun2Param1:]], !DIExpression(), ![[#Fun2Param1Loc:]])
; CHECK-LLVM: #dbg_value(ptr %argv, ![[#Fun2Param2:]], !DIExpression(DW_OP_deref, DW_OP_deref), ![[#Fun2Param2Loc:]])
; CHECK-LLVM: %0 = bitcast ptr addrspace(1) @str1 to ptr addrspace(1), !dbg ![[#Puts2Loc:]]
; CHECK-LLVM: %puts = call spir_func i32 @puts(ptr addrspace(1) nocapture %0) #0, !dbg ![[#Puts2Loc]]
; CHECK-LLVM: %puts = call spir_func i32 @puts(ptr addrspace(1) captures(none) %0) #0, !dbg ![[#Puts2Loc]]
; CHECK-LLVM: call spir_func void @foo() #0, !dbg ![[#CallFoo:]]
; CHECK-LLVM: ret i32 0, !dbg ![[#Ret2:]]
; CHECK-LLVM: }
Expand Down Expand Up @@ -74,9 +74,9 @@ entry:
ret void, !dbg !25
}

declare i32 @puts(ptr addrspace(1) nocapture) nounwind
declare i32 @puts(ptr addrspace(1) captures(none)) nounwind

define i32 @main(i32 %argc, ptr nocapture %argv) nounwind !dbg !12 {
define i32 @main(i32 %argc, ptr captures(none) %argv) nounwind !dbg !12 {
entry:
tail call void @llvm.dbg.value(metadata i32 %argc, metadata !21, metadata !DIExpression()), !dbg !26
; Avoid talking about the pointer size in debug info because that's target dependent
Expand Down
2 changes: 1 addition & 1 deletion test/DebugInfo/Generic/debug-info-eis-option.ll
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ target triple = "spir64-unknown-unknown"
source_filename = "linear-dbg-value.ll"

; Function Attrs: nounwind readonly uwtable
define i32 @foo(ptr nocapture readonly %a, i32 %N) local_unnamed_addr #0 !dbg !6 {
define i32 @foo(ptr captures(none) readonly %a, i32 %N) local_unnamed_addr #0 !dbg !6 {
entry:
%cmp6 = icmp sgt i32 %N, 0, !dbg !11
br i1 %cmp6, label %for.body.preheader, label %for.cond.cleanup, !dbg !15
Expand Down
2 changes: 1 addition & 1 deletion test/DebugInfo/Generic/linear-dbg-value.ll
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ target triple = "spir64-unknown-unknown"
source_filename = "linear-dbg-value.ll"

; Function Attrs: nounwind readonly uwtable
define i32 @foo(ptr nocapture readonly %a, i32 %N) local_unnamed_addr #0 !dbg !6 {
define i32 @foo(ptr captures(none) readonly %a, i32 %N) local_unnamed_addr #0 !dbg !6 {
entry:
%cmp6 = icmp sgt i32 %N, 0, !dbg !11
br i1 %cmp6, label %for.body.preheader, label %for.cond.cleanup, !dbg !15
Expand Down
4 changes: 2 additions & 2 deletions test/DebugInfo/Generic/two-cus-from-same-file.ll
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ entry:
ret void, !dbg !25
}

declare i32 @puts(ptr addrspace(1) nocapture) nounwind
declare i32 @puts(ptr addrspace(1) captures(none)) nounwind

define i32 @main(i32 %argc, ptr nocapture %argv) nounwind !dbg !12 {
define i32 @main(i32 %argc, ptr captures(none) %argv) nounwind !dbg !12 {
entry:
tail call void @llvm.dbg.value(metadata i32 %argc, metadata !21, metadata !DIExpression()), !dbg !26
; Avoid talking about the pointer size in debug info because that's target dependent
Expand Down
4 changes: 2 additions & 2 deletions test/DebugInfo/NonSemantic/Shader200/FortranComplex.ll
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,10 @@ alloca_0:
ret void, !dbg !16
}

declare !llfort.intrin_id !17 !llfort.type_idx !18 i32 @for_set_fpe_(ptr addrspace(1) nocapture readonly) local_unnamed_addr
declare !llfort.intrin_id !17 !llfort.type_idx !18 i32 @for_set_fpe_(ptr addrspace(1) captures(none) readonly) local_unnamed_addr

; Function Attrs: nofree
declare !llfort.intrin_id !19 !llfort.type_idx !20 i32 @for_set_reentrancy(ptr addrspace(1) nocapture readonly) local_unnamed_addr
declare !llfort.intrin_id !19 !llfort.type_idx !20 i32 @for_set_reentrancy(ptr addrspace(1) captures(none) readonly) local_unnamed_addr

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare void @llvm.dbg.value(metadata, metadata, metadata)
Expand Down
4 changes: 2 additions & 2 deletions test/DebugInfo/RecursiveDebugInfo.ll
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ entry:
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1
declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #1

; Function Attrs: nounwind readnone speculatable willreturn
declare void @llvm.dbg.declare(metadata, metadata, metadata) #2
Expand All @@ -99,7 +99,7 @@ entry:
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1
declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #1

; Function Attrs: nounwind
define linkonce_odr dso_local spir_func void @_ZN8iteratorI6vectorEC2Ev(ptr addrspace(4) %this) unnamed_addr #4 comdat align 2 !dbg !62 {
Expand Down
2 changes: 1 addition & 1 deletion test/DebugInfo/X86/dbg-value-location.ll
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ if.else: ; preds = %entry
ret i32 0
}

declare hidden fastcc i32 @bar(i32, ptr nocapture) nounwind optsize ssp
declare hidden fastcc i32 @bar(i32, ptr captures(none)) nounwind optsize ssp
declare hidden fastcc i32 @bar2(i32) nounwind optsize ssp
declare hidden fastcc i32 @bar3(i32) nounwind optsize ssp
declare void @llvm.dbg.value(metadata, metadata, metadata) nounwind readnone
Expand Down
2 changes: 1 addition & 1 deletion test/DebugInfo/X86/dbg-value-range.ll
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ target triple = "spir64-unknown-unknown"

%struct.a = type { i32 }

define i32 @bar(ptr nocapture %b) nounwind ssp !dbg !0 {
define i32 @bar(ptr captures(none) %b) nounwind ssp !dbg !0 {
entry:
tail call void @llvm.dbg.value(metadata ptr %b, metadata !6, metadata !DIExpression()), !dbg !13
%tmp2 = load i32, ptr %b, align 4, !dbg !14
Expand Down
2 changes: 1 addition & 1 deletion test/DebugInfo/bitfields_packed.ll
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ define dso_local spir_func noundef i32 @_Z3fooii(i32 noundef %0, i32 noundef %1)
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p4.p1.i64(ptr addrspace(4) noalias nocapture writeonly, ptr addrspace(1) noalias nocapture readonly, i64, i1 immarg) #2
declare void @llvm.memcpy.p4.p1.i64(ptr addrspace(4) noalias captures(none) writeonly, ptr addrspace(1) noalias captures(none) readonly, i64, i1 immarg) #2

attributes #0 = { convergent mustprogress noinline norecurse nounwind optnone "approx-func-fp-math"="true" "frame-pointer"="all" "min-legal-vector-width"="0" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "sycl-module-id"="bitfields-packed.cpp" "unsafe-fp-math"="true" }
attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
Expand Down
4 changes: 2 additions & 2 deletions test/SpecConstants/long-spec-const-composite.ll
Original file line number Diff line number Diff line change
Expand Up @@ -65600,10 +65600,10 @@ entry:
}

; Function Attrs: argmemonly nofree nosync nounwind willreturn
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1
declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #1

; Function Attrs: argmemonly nofree nosync nounwind willreturn
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1
declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #1

declare float @_Z20__spirv_SpecConstantif(i32, float)

Expand Down
2 changes: 1 addition & 1 deletion test/capbility-kernel.ll
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ target triple = "spir64-unknown-unknown"

; CHECK-DAG: {{[0-9]*}} Capability Linkage
; Function Attrs: nounwind
define spir_func void @func_export(ptr addrspace(1) nocapture %a) #0 {
define spir_func void @func_export(ptr addrspace(1) captures(none) %a) #0 {
entry:
; CHECK-DAG: {{[0-9]*}} Capability Int64
%call = tail call spir_func i64 @_Z13get_global_idj(i32 0) #3
Expand Down
2 changes: 1 addition & 1 deletion test/constexpr_phi.ll
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ define dso_local i32 @_Z2f2i(i32 %0) {
ret i32 %2
}

define dso_local i64 @_Z3runiiPi(i32 %0, i32 %1, ptr nocapture %2) local_unnamed_addr {
define dso_local i64 @_Z3runiiPi(i32 %0, i32 %1, ptr captures(none) %2) local_unnamed_addr {
%4 = icmp slt i32 %0, 10
br i1 %4, label %5, label %7

Expand Down
4 changes: 2 additions & 2 deletions test/custom_class.ll
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ entry:
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1
declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #1

; Function Attrs: inlinehint norecurse
define internal spir_func void @"_ZZZ4mainENK3$_0clERN2cl4sycl7handlerEENKUlvE_clEv"(ptr addrspace(4) %this) #2 align 2 {
Expand All @@ -63,7 +63,7 @@ entry:
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1
declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #1

; Function Attrs: norecurse nounwind
define dso_local spir_func void @_ZN11CustomClassC2Ei(ptr addrspace(4) %this, i32 %value) unnamed_addr #3 align 2 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ declare spir_func i32 @_Z18__spirv_ocl_printfPU3AS3c(ptr addrspace(3)) #0
declare spir_func i32 @_Z18__spirv_ocl_printfPU3AS4c(ptr addrspace(4)) #0

; Function Attrs: nounwind
declare void @llvm.memcpy.p0.p2.i64(ptr nocapture, ptr addrspace(2) nocapture readonly, i64, i1) #0
declare void @llvm.memcpy.p0.p2.i64(ptr captures(none), ptr addrspace(2) captures(none) readonly, i64, i1) #0

attributes #0 = { nounwind }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ entry:
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1
declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #1

; Function Attrs: inlinehint norecurse
define internal spir_func void @"_ZZ4mainENK3$_0clEv"(ptr addrspace(4) %this) #2 align 2 {
Expand All @@ -264,7 +264,7 @@ entry:
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1
declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #1

; Function Attrs: norecurse nounwind
define linkonce_odr dso_local spir_func void @_Z4sqrtILi13ELi5ELb0ELi2ELi2EEvv() #3 comdat {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -493,7 +493,7 @@ define dso_local spir_kernel void @_ZTSZ4mainE15kernel_function() #0 !kernel_arg
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1
declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #1

; Function Attrs: inlinehint norecurse
define internal spir_func void @"_ZZ4mainENK3$_0clEv"(ptr addrspace(4) %0) #2 align 2 {
Expand Down Expand Up @@ -548,7 +548,7 @@ define internal spir_func void @"_ZZ4mainENK3$_0clEv"(ptr addrspace(4) %0) #2 al
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1
declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #1

; Function Attrs: norecurse nounwind
define linkonce_odr dso_local spir_func void @_Z13ap_float_castILi11ELi28ELi9ELi30EEvv() #3 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ target triple = "spir-unknown-unknown"
%structtype = type { float, float }

; Function Attrs: nounwind
define spir_func void @_Z19cmul_kernel_complexPSt7complexIfES1_S1_(ptr noalias nocapture readonly %a, ptr noalias nocapture readonly %b, ptr noalias nocapture %c) #0 {
define spir_func void @_Z19cmul_kernel_complexPSt7complexIfES1_S1_(ptr noalias captures(none) readonly %a, ptr noalias captures(none) readonly %b, ptr noalias captures(none) %c) #0 {
entry:
%0 = load <2 x float>, ptr %a, align 4
%1 = load <2 x float>, ptr %b, align 4
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ entry:
declare ptr addrspace(4) @llvm.ptr.annotation.p4.p1(ptr addrspace(4), ptr addrspace(1), ptr addrspace(1), i32, ptr addrspace(1)) #1

; Function Attrs: argmemonly nofree nounwind willreturn
declare void @llvm.memcpy.p4.p0(ptr addrspace(4) noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2
declare void @llvm.memcpy.p4.p0(ptr addrspace(4) noalias captures(none) writeonly, ptr noalias captures(none) readonly, i64, i1 immarg) #2

!opencl.enable.FP_CONTRACT = !{}
!opencl.ocl.version = !{!0}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ define dso_local spir_kernel void @_ZTSZ4mainE15kernel_function() #0 !kernel_arg
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #1
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* captures(none)) #1

; Function Attrs: inlinehint nounwind
define internal spir_func void @"_ZZ4mainENK3$_0clEv"(%"class._ZTSZ4mainE3$_0.anon" addrspace(4)* %0) #2 align 2 {
Expand All @@ -126,7 +126,7 @@ define internal spir_func void @"_ZZ4mainENK3$_0clEv"(%"class._ZTSZ4mainE3$_0.an
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #1
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* captures(none)) #1

; CHECK-SPIRV: Function
; Function Attrs: nounwind
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ arrayinit.end8: ; preds = %arrayinit.body3
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #1
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* captures(none)) #1

; CHECK-SPIRV: Function {{.*}} [[TYPE_EMB_FUNC]]
; CHECK-LLVM: define internal spir_func void {{.*}}(ptr addrspace(4) %this)
Expand Down Expand Up @@ -266,7 +266,7 @@ for.end20: ; preds = %for.cond.cleanup
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #1
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* captures(none)) #1

; Function Attrs: convergent norecurse uwtable
define dso_local spir_kernel void @_ZTSZ4mainE18VaryingSafelenOnPointersTest(i32 addrspace(1)* %_arg_, i32 addrspace(1)* %_arg_1) #0 !kernel_arg_buffer_location !4 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -248,9 +248,9 @@ for.end11: ; preds = %for.cond.cleanup4
ret void
}

declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none))

declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none))

attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "uniform-work-group-size"="true" "unsafe-fp-math"="false" "use-soft-float"="false" }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ entry:
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1
declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #1

; Function Attrs: inlinehint nounwind
define internal spir_func void @"_ZZ4mainENK3$_0clEv"(ptr addrspace(4) %this) #2 align 2 {
Expand All @@ -150,7 +150,7 @@ entry:
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1
declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #1

; Function Attrs: nounwind
define dso_local spir_func void @_Z3foov() #3 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,10 @@ for.end: ; preds = %for.cond.cleanup
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1
declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #1

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1
declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #1

; Function Attrs: norecurse nounwind
define i32 @main() #2 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ entry:
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #1
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* captures(none)) #1

; Function Attrs: inlinehint norecurse nounwind
define internal spir_func void @"_ZZ4mainENK3$_0clEv"(%"class._ZTSZ4mainE3$_0.anon" addrspace(4)* %this) #2 align 2 {
Expand Down Expand Up @@ -126,7 +126,7 @@ entry:
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #1
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* captures(none)) #1

; CHECK-LLVM: define spir_func void @{{.*}}foo
; Function Attrs: norecurse nounwind
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ entry:
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1
declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #1

; Function Attrs: inlinehint norecurse nounwind
define internal spir_func void @"_ZZ4mainENK3$_0clEv"(ptr %this) #2 align 2 {
Expand All @@ -103,7 +103,7 @@ entry:
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1
declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #1

; CHECK-LLVM: void @_Z13numbanks_stati(i32 %a)
; Function Attrs: norecurse nounwind
Expand Down
Loading
Loading