Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/Transforms/Coroutines/coro-debug-frame-variable.ll
Show All 19 Lines | |||||
; | ; | ||||
; The CHECKs verify that dbg.declare intrinsics are created for the coroutine | ; The CHECKs verify that dbg.declare intrinsics are created for the coroutine | ||||
; funclet 'f.resume', and that they reference the address of the variables on | ; funclet 'f.resume', and that they reference the address of the variables on | ||||
; the coroutine frame. The debug locations for the original function 'f' are | ; the coroutine frame. The debug locations for the original function 'f' are | ||||
; static (!11 and !13), whereas the coroutine funclet will have its own new | ; static (!11 and !13), whereas the coroutine funclet will have its own new | ||||
; ones with identical line and column numbers. | ; ones with identical line and column numbers. | ||||
; | ; | ||||
; CHECK-LABEL: define void @f() { | ; CHECK-LABEL: define void @f() { | ||||
; CHECK: init.ready: | ; CHECK: entry: | ||||
; CHECK: [[IGEP:%.+]] = getelementptr inbounds %f.Frame, %f.Frame* %FramePtr, i32 0, i32 4 | ; CHECK: [[IGEP:%.+]] = getelementptr inbounds %f.Frame, %f.Frame* %FramePtr, i32 0, i32 4 | ||||
; CHECK: [[JGEP:%.+]] = getelementptr inbounds %f.Frame, %f.Frame* %FramePtr, i32 0, i32 5 | |||||
; CHECK: init.ready: | |||||
; CHECK: call void @llvm.dbg.declare(metadata i32* [[IGEP]], metadata ![[IVAR:[0-9]+]], metadata !DIExpression()), !dbg ![[IDBGLOC:[0-9]+]] | ; CHECK: call void @llvm.dbg.declare(metadata i32* [[IGEP]], metadata ![[IVAR:[0-9]+]], metadata !DIExpression()), !dbg ![[IDBGLOC:[0-9]+]] | ||||
; CHECK: await.ready: | ; CHECK: await.ready: | ||||
; CHECK: [[JGEP:%.+]] = getelementptr inbounds %f.Frame, %f.Frame* %FramePtr, i32 0, i32 5 | |||||
; CHECK: call void @llvm.dbg.declare(metadata i32* [[JGEP]], metadata ![[JVAR:[0-9]+]], metadata !DIExpression()), !dbg ![[JDBGLOC:[0-9]+]] | ; CHECK: call void @llvm.dbg.declare(metadata i32* [[JGEP]], metadata ![[JVAR:[0-9]+]], metadata !DIExpression()), !dbg ![[JDBGLOC:[0-9]+]] | ||||
; | ; | ||||
; CHECK-LABEL: define internal fastcc void @f.resume({{.*}}) { | ; CHECK-LABEL: define internal fastcc void @f.resume({{.*}}) { | ||||
; CHECK: init.ready: | ; CHECK: entry.resume: | ||||
; CHECK: [[IGEP_RESUME:%.+]] = getelementptr inbounds %f.Frame, %f.Frame* %FramePtr, i32 0, i32 4 | ; CHECK: [[IGEP_RESUME:%.+]] = getelementptr inbounds %f.Frame, %f.Frame* %FramePtr, i32 0, i32 4 | ||||
; CHECK: [[JGEP_RESUME:%.+]] = getelementptr inbounds %f.Frame, %f.Frame* %FramePtr, i32 0, i32 5 | |||||
; CHECK: init.ready: | |||||
; CHECK: call void @llvm.dbg.declare(metadata i32* [[IGEP_RESUME]], metadata ![[IVAR_RESUME:[0-9]+]], metadata !DIExpression()), !dbg ![[IDBGLOC_RESUME:[0-9]+]] | ; CHECK: call void @llvm.dbg.declare(metadata i32* [[IGEP_RESUME]], metadata ![[IVAR_RESUME:[0-9]+]], metadata !DIExpression()), !dbg ![[IDBGLOC_RESUME:[0-9]+]] | ||||
; CHECK: await.ready: | ; CHECK: await.ready: | ||||
; CHECK: [[JGEP_RESUME:%.+]] = getelementptr inbounds %f.Frame, %f.Frame* %FramePtr, i32 0, i32 5 | |||||
; CHECK: call void @llvm.dbg.declare(metadata i32* [[JGEP_RESUME]], metadata ![[JVAR_RESUME:[0-9]+]], metadata !DIExpression()), !dbg ![[JDBGLOC_RESUME:[0-9]+]] | ; CHECK: call void @llvm.dbg.declare(metadata i32* [[JGEP_RESUME]], metadata ![[JVAR_RESUME:[0-9]+]], metadata !DIExpression()), !dbg ![[JDBGLOC_RESUME:[0-9]+]] | ||||
; | ; | ||||
; CHECK: ![[IVAR]] = !DILocalVariable(name: "i" | ; CHECK: ![[IVAR]] = !DILocalVariable(name: "i" | ||||
; CHECK: ![[SCOPE:[0-9]+]] = distinct !DILexicalBlock(scope: !8, file: !1, line: 23, column: 12) | ; CHECK: ![[SCOPE:[0-9]+]] = distinct !DILexicalBlock(scope: !8, file: !1, line: 23, column: 12) | ||||
; CHECK: ![[IDBGLOC]] = !DILocation(line: 24, column: 7, scope: ![[SCOPE]]) | ; CHECK: ![[IDBGLOC]] = !DILocation(line: 24, column: 7, scope: ![[SCOPE]]) | ||||
; CHECK: ![[JVAR]] = !DILocalVariable(name: "j" | ; CHECK: ![[JVAR]] = !DILocalVariable(name: "j" | ||||
; CHECK: ![[JDBGLOC]] = !DILocation(line: 32, column: 7, scope: ![[SCOPE]]) | ; CHECK: ![[JDBGLOC]] = !DILocation(line: 32, column: 7, scope: ![[SCOPE]]) | ||||
; CHECK: ![[IVAR_RESUME]] = !DILocalVariable(name: "i" | ; CHECK: ![[IVAR_RESUME]] = !DILocalVariable(name: "i" | ||||
▲ Show 20 Lines • Show All 166 Lines • Show Last 20 Lines |