Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-01.ll
Show All 37 Lines | await.ready: | ||||
br label %exit | br label %exit | ||||
exit: | exit: | ||||
call i1 @llvm.coro.end(i8* null, i1 false) | call i1 @llvm.coro.end(i8* null, i1 false) | ||||
ret void | ret void | ||||
} | } | ||||
; CHECK-LABEL: @a.resume( | ; CHECK-LABEL: @a.resume( | ||||
; CHECK: %testval = alloca i32, align 4 | ; CHECK: %testval = alloca i32, align 4 | ||||
; CHECK-NEXT: getelementptr inbounds %a.Frame | |||||
; CHECK-NEXT: %0 = bitcast i32* %testval to i8* | ; CHECK-NEXT: %0 = bitcast i32* %testval to i8* | ||||
; CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) | ; CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) | ||||
; CHECK-NEXT: getelementptr inbounds %a.Frame | |||||
; CHECK-NEXT: getelementptr inbounds %"struct.lean_future<int>::Awaiter" | ; CHECK-NEXT: getelementptr inbounds %"struct.lean_future<int>::Awaiter" | ||||
; CHECK-NEXT: %val = load i32, i32* %Result | ; CHECK-NEXT: %val = load i32, i32* %Result | ||||
; CHECK-NEXT: %test = load i32, i32* %testval | ; CHECK-NEXT: %test = load i32, i32* %testval | ||||
; CHECK-NEXT: call void @print(i32 %test) | ; CHECK-NEXT: call void @print(i32 %test) | ||||
; CHECK-NEXT: call void @llvm.lifetime.end.p0i8(i64 4, i8* %0) | ; CHECK-NEXT: call void @llvm.lifetime.end.p0i8(i64 4, i8* %0) | ||||
; CHECK-NEXT: call void @print(i32 %val) | ; CHECK-NEXT: call void @print(i32 %val) | ||||
; CHECK-NEXT: ret void | ; CHECK-NEXT: ret void | ||||
Show All 15 Lines |