31 lines · plain
1; RUN: opt -passes='module(debugify),function(dce)' -S < %s | FileCheck %s2 3; CHECK-LABEL: @test4define void @test() {5 %add = add i32 1, 26; CHECK-NEXT: #dbg_value(i32 1, [[add:![0-9]+]], !DIExpression(DW_OP_plus_uconst, 2, DW_OP_stack_value),7 %sub = sub i32 %add, 18; CHECK-NEXT: #dbg_value(i32 1, [[sub:![0-9]+]], !DIExpression(DW_OP_plus_uconst, 2, DW_OP_constu, 1, DW_OP_minus, DW_OP_stack_value),9; CHECK-NEXT: ret void10 ret void11}12 13declare void @llvm.lifetime.start.p0(ptr nocapture) nounwind14declare void @llvm.lifetime.end.p0(ptr nocapture) nounwind15 16; CHECK-LABEL: @test_lifetime_alloca17define i32 @test_lifetime_alloca() {18; Check that lifetime intrinsics are removed along with the pointer.19; CHECK-NEXT: #dbg_value20; CHECK-NEXT: ret i32 021; CHECK-NOT: llvm.lifetime.start22; CHECK-NOT: llvm.lifetime.end23 %i = alloca i8, align 424 call void @llvm.lifetime.start.p0(ptr %i)25 call void @llvm.lifetime.end.p0(ptr %i)26 ret i32 027}28 29; CHECK: [[add]] = !DILocalVariable30; CHECK: [[sub]] = !DILocalVariable31