52 changes: 25 additions & 27 deletions llvm/test/DebugInfo/COFF/lambda.ll
Original file line number Diff line number Diff line change
Expand Up @@ -60,46 +60,44 @@ target triple = "i686-pc-windows-msvc19.0.24210"
%class.anon = type { i32 }

; Function Attrs: noinline norecurse optnone
define dso_local i32 @main(i32 %argc, i8** %argv, i8** %arge) #0 !dbg !8 {
define dso_local i32 @main(i32 %argc, ptr %argv, ptr %arge) #0 !dbg !8 {
entry:
%retval = alloca i32, align 4
%arge.addr = alloca i8**, align 4
%argv.addr = alloca i8**, align 4
%arge.addr = alloca ptr, align 4
%argv.addr = alloca ptr, align 4
%argc.addr = alloca i32, align 4
%Lambda = alloca %class.anon, align 4
store i32 0, i32* %retval, align 4
store i8** %arge, i8*** %arge.addr, align 4
call void @llvm.dbg.declare(metadata i8*** %arge.addr, metadata !15, metadata !DIExpression()), !dbg !16
store i8** %argv, i8*** %argv.addr, align 4
call void @llvm.dbg.declare(metadata i8*** %argv.addr, metadata !17, metadata !DIExpression()), !dbg !16
store i32 %argc, i32* %argc.addr, align 4
call void @llvm.dbg.declare(metadata i32* %argc.addr, metadata !18, metadata !DIExpression()), !dbg !16
call void @llvm.dbg.declare(metadata %class.anon* %Lambda, metadata !19, metadata !DIExpression()), !dbg !28
%0 = getelementptr inbounds %class.anon, %class.anon* %Lambda, i32 0, i32 0, !dbg !28
%1 = load i32, i32* %argc.addr, align 4, !dbg !28
store i32 %1, i32* %0, align 4, !dbg !28
%call = call x86_thiscallcc i32 @"??R<lambda_0>@?0??main@@9@QBE@H@Z"(%class.anon* %Lambda, i32 0), !dbg !29
store i32 0, ptr %retval, align 4
store ptr %arge, ptr %arge.addr, align 4
call void @llvm.dbg.declare(metadata ptr %arge.addr, metadata !15, metadata !DIExpression()), !dbg !16
store ptr %argv, ptr %argv.addr, align 4
call void @llvm.dbg.declare(metadata ptr %argv.addr, metadata !17, metadata !DIExpression()), !dbg !16
store i32 %argc, ptr %argc.addr, align 4
call void @llvm.dbg.declare(metadata ptr %argc.addr, metadata !18, metadata !DIExpression()), !dbg !16
call void @llvm.dbg.declare(metadata ptr %Lambda, metadata !19, metadata !DIExpression()), !dbg !28
%0 = load i32, ptr %argc.addr, align 4, !dbg !28
store i32 %0, ptr %Lambda, align 4, !dbg !28
%call = call x86_thiscallcc i32 @"??R<lambda_0>@?0??main@@9@QBE@H@Z"(ptr %Lambda, i32 0), !dbg !29
ret i32 %call, !dbg !29
}

; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

; Function Attrs: noinline nounwind optnone
define internal x86_thiscallcc i32 @"??R<lambda_0>@?0??main@@9@QBE@H@Z"(%class.anon* %this, i32 %count) #2 align 2 !dbg !30 {
define internal x86_thiscallcc i32 @"??R<lambda_0>@?0??main@@9@QBE@H@Z"(ptr %this, i32 %count) #2 align 2 !dbg !30 {
entry:
%count.addr = alloca i32, align 4
%this.addr = alloca %class.anon*, align 4
store i32 %count, i32* %count.addr, align 4
call void @llvm.dbg.declare(metadata i32* %count.addr, metadata !31, metadata !DIExpression()), !dbg !32
store %class.anon* %this, %class.anon** %this.addr, align 4
call void @llvm.dbg.declare(metadata %class.anon** %this.addr, metadata !33, metadata !DIExpression()), !dbg !35
%this1 = load %class.anon*, %class.anon** %this.addr, align 4
%0 = getelementptr inbounds %class.anon, %class.anon* %this1, i32 0, i32 0, !dbg !32
%1 = load i32, i32* %0, align 4, !dbg !32
%2 = load i32, i32* %count.addr, align 4, !dbg !32
%cmp = icmp eq i32 %1, %2, !dbg !32
%3 = zext i1 %cmp to i64, !dbg !32
%this.addr = alloca ptr, align 4
store i32 %count, ptr %count.addr, align 4
call void @llvm.dbg.declare(metadata ptr %count.addr, metadata !31, metadata !DIExpression()), !dbg !32
store ptr %this, ptr %this.addr, align 4
call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !33, metadata !DIExpression()), !dbg !35
%this1 = load ptr, ptr %this.addr, align 4
%0 = load i32, ptr %this1, align 4, !dbg !32
%1 = load i32, ptr %count.addr, align 4, !dbg !32
%cmp = icmp eq i32 %0, %1, !dbg !32
%2 = zext i1 %cmp to i64, !dbg !32
%cond = select i1 %cmp, i32 1, i32 0, !dbg !32
ret i32 %cond, !dbg !32
}
Expand Down
132 changes: 58 additions & 74 deletions llvm/test/DebugInfo/COFF/lexicalblock.ll
Original file line number Diff line number Diff line change
Expand Up @@ -102,10 +102,10 @@ target datalayout = "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32"
target triple = "i686-pc-windows-msvc"

; Function Attrs: norecurse nounwind
define i32 @main(i32 %argc, i8** %argv) #0 !dbg !8 {
define i32 @main(i32 %argc, ptr %argv) #0 !dbg !8 {
entry:
%retval = alloca i32, align 4
%argv.addr = alloca i8**, align 4
%argv.addr = alloca ptr, align 4
%argc.addr = alloca i32, align 4
%localA = alloca i32, align 4
%localB = alloca i32, align 4
Expand All @@ -115,105 +115,89 @@ entry:
%localF = alloca i32, align 4
%localG = alloca i32, align 4
%localH = alloca i32, align 4
store i32 0, i32* %retval, align 4
store i8** %argv, i8*** %argv.addr, align 4, !tbaa !37
call void @llvm.dbg.declare(metadata i8*** %argv.addr, metadata !17, metadata !DIExpression()), !dbg !41
store i32 %argc, i32* %argc.addr, align 4, !tbaa !42
call void @llvm.dbg.declare(metadata i32* %argc.addr, metadata !18, metadata !DIExpression()), !dbg !41
%0 = bitcast i32* %localA to i8*, !dbg !44
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #4, !dbg !44
call void @llvm.dbg.declare(metadata i32* %localA, metadata !19, metadata !DIExpression()), !dbg !44
store i32 1, i32* %localA, align 4, !dbg !44, !tbaa !42
%1 = bitcast i32* %localB to i8*, !dbg !45
call void @llvm.lifetime.start.p0i8(i64 4, i8* %1) #4, !dbg !45
call void @llvm.dbg.declare(metadata i32* %localB, metadata !20, metadata !DIExpression()), !dbg !45
store i32 2, i32* %localB, align 4, !dbg !45, !tbaa !42
%2 = load i32, i32* %argc.addr, align 4, !dbg !46, !tbaa !42
%cmp = icmp ne i32 %2, 1, !dbg !46
store i32 0, ptr %retval, align 4
store ptr %argv, ptr %argv.addr, align 4, !tbaa !37
call void @llvm.dbg.declare(metadata ptr %argv.addr, metadata !17, metadata !DIExpression()), !dbg !41
store i32 %argc, ptr %argc.addr, align 4, !tbaa !42
call void @llvm.dbg.declare(metadata ptr %argc.addr, metadata !18, metadata !DIExpression()), !dbg !41
call void @llvm.lifetime.start.p0(i64 4, ptr %localA) #4, !dbg !44
call void @llvm.dbg.declare(metadata ptr %localA, metadata !19, metadata !DIExpression()), !dbg !44
store i32 1, ptr %localA, align 4, !dbg !44, !tbaa !42
call void @llvm.lifetime.start.p0(i64 4, ptr %localB) #4, !dbg !45
call void @llvm.dbg.declare(metadata ptr %localB, metadata !20, metadata !DIExpression()), !dbg !45
store i32 2, ptr %localB, align 4, !dbg !45, !tbaa !42
%0 = load i32, ptr %argc.addr, align 4, !dbg !46, !tbaa !42
%cmp = icmp ne i32 %0, 1, !dbg !46
%conv = zext i1 %cmp to i32, !dbg !46
%tobool = icmp ne i32 %conv, 0, !dbg !46
br i1 %tobool, label %if.then, label %if.end, !dbg !46, !prof !47

if.then: ; preds = %entry
%3 = bitcast i32* %localC to i8*, !dbg !48
call void @llvm.lifetime.start.p0i8(i64 4, i8* %3) #4, !dbg !48
call void @llvm.dbg.declare(metadata i32* %localC, metadata !22, metadata !DIExpression()), !dbg !48
store i32 3, i32* %localC, align 4, !dbg !48, !tbaa !42
%4 = bitcast i32* %localC to i8*, !dbg !49
call void @llvm.lifetime.end.p0i8(i64 4, i8* %4) #4, !dbg !49
call void @llvm.lifetime.start.p0(i64 4, ptr %localC) #4, !dbg !48
call void @llvm.dbg.declare(metadata ptr %localC, metadata !22, metadata !DIExpression()), !dbg !48
store i32 3, ptr %localC, align 4, !dbg !48, !tbaa !42
call void @llvm.lifetime.end.p0(i64 4, ptr %localC) #4, !dbg !49
br label %if.end, !dbg !49

if.end: ; preds = %if.then, %entry
%5 = bitcast i32* %localB to i8*, !dbg !50
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #4, !dbg !50
%6 = bitcast i32* %localD to i8*, !dbg !51
call void @llvm.lifetime.start.p0i8(i64 4, i8* %6) #4, !dbg !51
call void @llvm.dbg.declare(metadata i32* %localD, metadata !25, metadata !DIExpression()), !dbg !51
store i32 4, i32* %localD, align 4, !dbg !51, !tbaa !42
%7 = load i32, i32* %localD, align 4, !dbg !52, !tbaa !42
store i32 %7, i32* %localA, align 4, !dbg !52, !tbaa !42
%8 = bitcast i32* %localD to i8*, !dbg !53
call void @llvm.lifetime.end.p0i8(i64 4, i8* %8) #4, !dbg !53
%9 = bitcast i32* %localE to i8*, !dbg !54
call void @llvm.lifetime.start.p0i8(i64 4, i8* %9) #4, !dbg !54
call void @llvm.dbg.declare(metadata i32* %localE, metadata !27, metadata !DIExpression()), !dbg !54
store i32 5, i32* %localE, align 4, !dbg !54, !tbaa !42
%10 = load i32, i32* %localE, align 4, !dbg !55, !tbaa !42
store i32 %10, i32* %localA, align 4, !dbg !55, !tbaa !42
%11 = bitcast i32* %localE to i8*, !dbg !56
call void @llvm.lifetime.end.p0i8(i64 4, i8* %11) #4, !dbg !56
%12 = bitcast i32* %localF to i8*, !dbg !57
call void @llvm.lifetime.start.p0i8(i64 4, i8* %12) #4, !dbg !57
call void @llvm.dbg.declare(metadata i32* %localF, metadata !30, metadata !DIExpression()), !dbg !57
store i32 6, i32* %localF, align 4, !dbg !57, !tbaa !42
%13 = load i32, i32* %localF, align 4, !dbg !58, !tbaa !42
store i32 %13, i32* %localA, align 4, !dbg !58, !tbaa !42
%14 = bitcast i32* %localG to i8*, !dbg !59
call void @llvm.lifetime.start.p0i8(i64 4, i8* %14) #4, !dbg !59
call void @llvm.dbg.declare(metadata i32* %localG, metadata !32, metadata !DIExpression()), !dbg !59
store i32 7, i32* %localG, align 4, !dbg !59, !tbaa !42
%15 = load i32, i32* %localG, align 4, !dbg !60, !tbaa !42
store i32 %15, i32* %localA, align 4, !dbg !60, !tbaa !42
%16 = bitcast i32* %localG to i8*, !dbg !61
call void @llvm.lifetime.end.p0i8(i64 4, i8* %16) #4, !dbg !61
%17 = bitcast i32* %localF to i8*, !dbg !62
call void @llvm.lifetime.end.p0i8(i64 4, i8* %17) #4, !dbg !62
%18 = load i32, i32* %localA, align 4, !dbg !63, !tbaa !42
%cmp1 = icmp eq i32 %18, 7, !dbg !63
call void @llvm.lifetime.end.p0(i64 4, ptr %localB) #4, !dbg !50
call void @llvm.lifetime.start.p0(i64 4, ptr %localD) #4, !dbg !51
call void @llvm.dbg.declare(metadata ptr %localD, metadata !25, metadata !DIExpression()), !dbg !51
store i32 4, ptr %localD, align 4, !dbg !51, !tbaa !42
%1 = load i32, ptr %localD, align 4, !dbg !52, !tbaa !42
store i32 %1, ptr %localA, align 4, !dbg !52, !tbaa !42
call void @llvm.lifetime.end.p0(i64 4, ptr %localD) #4, !dbg !53
call void @llvm.lifetime.start.p0(i64 4, ptr %localE) #4, !dbg !54
call void @llvm.dbg.declare(metadata ptr %localE, metadata !27, metadata !DIExpression()), !dbg !54
store i32 5, ptr %localE, align 4, !dbg !54, !tbaa !42
%2 = load i32, ptr %localE, align 4, !dbg !55, !tbaa !42
store i32 %2, ptr %localA, align 4, !dbg !55, !tbaa !42
call void @llvm.lifetime.end.p0(i64 4, ptr %localE) #4, !dbg !56
call void @llvm.lifetime.start.p0(i64 4, ptr %localF) #4, !dbg !57
call void @llvm.dbg.declare(metadata ptr %localF, metadata !30, metadata !DIExpression()), !dbg !57
store i32 6, ptr %localF, align 4, !dbg !57, !tbaa !42
%3 = load i32, ptr %localF, align 4, !dbg !58, !tbaa !42
store i32 %3, ptr %localA, align 4, !dbg !58, !tbaa !42
call void @llvm.lifetime.start.p0(i64 4, ptr %localG) #4, !dbg !59
call void @llvm.dbg.declare(metadata ptr %localG, metadata !32, metadata !DIExpression()), !dbg !59
store i32 7, ptr %localG, align 4, !dbg !59, !tbaa !42
%4 = load i32, ptr %localG, align 4, !dbg !60, !tbaa !42
store i32 %4, ptr %localA, align 4, !dbg !60, !tbaa !42
call void @llvm.lifetime.end.p0(i64 4, ptr %localG) #4, !dbg !61
call void @llvm.lifetime.end.p0(i64 4, ptr %localF) #4, !dbg !62
%5 = load i32, ptr %localA, align 4, !dbg !63, !tbaa !42
%cmp1 = icmp eq i32 %5, 7, !dbg !63
br i1 %cmp1, label %if.then2, label %if.end3, !dbg !63

if.then2: ; preds = %if.end
%19 = bitcast i32* %localH to i8*, !dbg !64
call void @llvm.lifetime.start.p0i8(i64 4, i8* %19) #4, !dbg !64
call void @llvm.dbg.declare(metadata i32* %localH, metadata !34, metadata !DIExpression()), !dbg !64
store i32 8, i32* %localH, align 4, !dbg !64, !tbaa !42
%20 = load i32, i32* %localH, align 4, !dbg !65, !tbaa !42
store i32 %20, i32* %localA, align 4, !dbg !65, !tbaa !42
%21 = bitcast i32* %localH to i8*, !dbg !66
call void @llvm.lifetime.end.p0i8(i64 4, i8* %21) #4, !dbg !66
call void @llvm.lifetime.start.p0(i64 4, ptr %localH) #4, !dbg !64
call void @llvm.dbg.declare(metadata ptr %localH, metadata !34, metadata !DIExpression()), !dbg !64
store i32 8, ptr %localH, align 4, !dbg !64, !tbaa !42
%6 = load i32, ptr %localH, align 4, !dbg !65, !tbaa !42
store i32 %6, ptr %localA, align 4, !dbg !65, !tbaa !42
call void @llvm.lifetime.end.p0(i64 4, ptr %localH) #4, !dbg !66
br label %if.end3, !dbg !66

if.end3: ; preds = %if.then2, %if.end
%22 = load i32, i32* %localA, align 4, !dbg !67, !tbaa !42
%cmp4 = icmp ne i32 %22, 8, !dbg !67
%23 = zext i1 %cmp4 to i64, !dbg !67
%7 = load i32, ptr %localA, align 4, !dbg !67, !tbaa !42
%cmp4 = icmp ne i32 %7, 8, !dbg !67
%8 = zext i1 %cmp4 to i64, !dbg !67
%cond = select i1 %cmp4, i32 -1, i32 0, !dbg !67
%24 = bitcast i32* %localA to i8*, !dbg !68
call void @llvm.lifetime.end.p0i8(i64 4, i8* %24) #4, !dbg !68
call void @llvm.lifetime.end.p0(i64 4, ptr %localA) #4, !dbg !68
ret i32 %cond, !dbg !67
}

; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #2
declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #2

; Function Attrs: nounwind readnone
declare i32 @llvm.expect.i32(i32, i32) #3

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #2
declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #2

attributes #0 = { norecurse nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "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" "target-features"="+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone speculatable }
Expand Down
9 changes: 4 additions & 5 deletions llvm/test/DebugInfo/COFF/line-zero.ll
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,10 @@ target triple = "x86_64-pc-windows-msvc19.22.27905"
define dso_local i32 @main() local_unnamed_addr #0 !dbg !8 {
entry:
%x = alloca i32, align 4
%x.0.x.0..sroa_cast = bitcast i32* %x to i8*, !dbg !15
call void @llvm.dbg.declare(metadata i32* %x, metadata !13, metadata !DIExpression()), !dbg !15
store volatile i32 1, i32* %x, align 4, !dbg !16, !tbaa !17
store volatile i32 2, i32* %x, align 4, !dbg !21, !tbaa !17
store volatile i32 3, i32* %x, align 4, !dbg !22, !tbaa !17
call void @llvm.dbg.declare(metadata ptr %x, metadata !13, metadata !DIExpression()), !dbg !15
store volatile i32 1, ptr %x, align 4, !dbg !16, !tbaa !17
store volatile i32 2, ptr %x, align 4, !dbg !21, !tbaa !17
store volatile i32 3, ptr %x, align 4, !dbg !22, !tbaa !17
ret i32 0, !dbg !23
}

Expand Down
14 changes: 7 additions & 7 deletions llvm/test/DebugInfo/COFF/lines-bb-start.ll
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ target triple = "i386-pc-windows-msvc19.0.24215"

@str_const = internal unnamed_addr constant [4 x i8] c"str\00", align 1

declare i32 @puts(i8*)
declare void @use_i32(i32*)
declare i32 @puts(ptr)
declare void @use_i32(ptr)
declare void @llvm.dbg.value(metadata, metadata, metadata) nounwind readnone

; We had a line info quality issue where the LEA for the string constant had no
Expand All @@ -22,7 +22,7 @@ if.then: ; preds = %entry
br label %return, !dbg !18

if.end: ; preds = %entry
%call = call i32 @puts(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_const, i32 0, i32 0)), !dbg !19
%call = call i32 @puts(ptr @str_const), !dbg !19
br label %return, !dbg !20

return: ; preds = %if.end, %if.then
Expand All @@ -49,7 +49,7 @@ if.then: ; preds = %entry

if.end: ; preds = %entry
call void asm sideeffect "nop", ""()
%call = call i32 @puts(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_const, i32 0, i32 0)), !dbg !24
%call = call i32 @puts(ptr @str_const), !dbg !24
br label %return, !dbg !25

return: ; preds = %if.end, %if.then
Expand All @@ -71,15 +71,15 @@ return: ; preds = %if.end, %if.then
define void @lea_dbg_value(i1 %cond) !dbg !30 {
entry:
%value = alloca i32
store i32 42, i32* %value
store i32 42, ptr %value
br i1 %cond, label %if.then, label %if.end, !dbg !31

if.then: ; preds = %entry
br label %return, !dbg !32

if.end: ; preds = %entry
call void @llvm.dbg.value(metadata i32* %value, metadata !35, metadata !13), !dbg !34
call void @use_i32(i32* %value), !dbg !33
call void @llvm.dbg.value(metadata ptr %value, metadata !35, metadata !13), !dbg !34
call void @use_i32(ptr %value), !dbg !33
br label %return, !dbg !34

return: ; preds = %if.end, %if.then
Expand Down
14 changes: 7 additions & 7 deletions llvm/test/DebugInfo/COFF/lines-difile.ll
Original file line number Diff line number Diff line change
Expand Up @@ -38,26 +38,26 @@ target triple = "x86_64-pc-windows-msvc19.11.25508"

@"\01?gy@@3UFoo@@A" = global %struct.Foo zeroinitializer, align 1, !dbg !0
@"\01?global@@3HA" = external global i32, align 4
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_t.cpp, i8* null }]
@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_t.cpp, ptr null }]

; Function Attrs: noinline uwtable
define internal void @"\01??__Egy@@YAXXZ"() #0 !dbg !18 {
entry:
%call = call %struct.Foo* @"\01??0Foo@@QEAA@XZ"(%struct.Foo* @"\01?gy@@3UFoo@@A"), !dbg !21
%call = call ptr @"\01??0Foo@@QEAA@XZ"(ptr @"\01?gy@@3UFoo@@A"), !dbg !21
ret void, !dbg !21
}

declare %struct.Foo* @"\01??0Foo@@QEAA@XZ"(%struct.Foo* returned) unnamed_addr #1
declare ptr @"\01??0Foo@@QEAA@XZ"(ptr returned) unnamed_addr #1

; Function Attrs: noinline nounwind optnone uwtable
define void @"\01?f@@YAXXZ"() #2 !dbg !22 {
entry:
%0 = load i32, i32* @"\01?global@@3HA", align 4, !dbg !23
%0 = load i32, ptr @"\01?global@@3HA", align 4, !dbg !23
%inc = add nsw i32 %0, 1, !dbg !23
store i32 %inc, i32* @"\01?global@@3HA", align 4, !dbg !23
%1 = load i32, i32* @"\01?global@@3HA", align 4, !dbg !24
store i32 %inc, ptr @"\01?global@@3HA", align 4, !dbg !23
%1 = load i32, ptr @"\01?global@@3HA", align 4, !dbg !24
%inc1 = add nsw i32 %1, 1, !dbg !24
store i32 %inc1, i32* @"\01?global@@3HA", align 4, !dbg !24
store i32 %inc1, ptr @"\01?global@@3HA", align 4, !dbg !24
ret void, !dbg !25
}

Expand Down
8 changes: 4 additions & 4 deletions llvm/test/DebugInfo/COFF/local-variable-gap.ll
Original file line number Diff line number Diff line change
Expand Up @@ -94,14 +94,14 @@ target triple = "x86_64-pc-windows-msvc19.0.24210"
; Function Attrs: nounwind uwtable
define i32 @f() local_unnamed_addr #0 !dbg !7 {
entry:
%call = tail call i32 bitcast (i32 (...)* @barrier to i32 ()*)() #4, !dbg !15
%call = tail call i32 @barrier() #4, !dbg !15
%tobool = icmp eq i32 %call, 0, !dbg !15
br i1 %tobool, label %if.else, label %if.then, !dbg !16

if.then: ; preds = %entry
%call1 = tail call i32 bitcast (i32 (...)* @vardef to i32 ()*)() #4, !dbg !17
%call1 = tail call i32 @vardef() #4, !dbg !17
tail call void @llvm.dbg.value(metadata i32 %call1, metadata !12, metadata !18), !dbg !19
%call2 = tail call i32 bitcast (i32 (...)* @barrier to i32 ()*)() #4, !dbg !20
%call2 = tail call i32 @barrier() #4, !dbg !20
%tobool3 = icmp eq i32 %call2, 0, !dbg !20
br i1 %tobool3, label %if.end, label %if.then4, !dbg !22

Expand All @@ -114,7 +114,7 @@ if.end: ; preds = %if.then
br label %if.end6, !dbg !25

if.else: ; preds = %entry
%call5 = tail call i32 bitcast (i32 (...)* @barrier to i32 ()*)() #4, !dbg !26
%call5 = tail call i32 @barrier() #4, !dbg !26
br label %if.end6

if.end6: ; preds = %if.else, %if.end
Expand Down
32 changes: 16 additions & 16 deletions llvm/test/DebugInfo/COFF/local-variables.ll
Original file line number Diff line number Diff line change
Expand Up @@ -211,32 +211,32 @@ target triple = "x86_64-pc-windows-msvc18.0.0"
define void @f(i32 %param) #0 !dbg !4 {
entry:
%v.i1 = alloca i32, align 4
call void @llvm.dbg.declare(metadata i32* %v.i1, metadata !15, metadata !16), !dbg !17
call void @llvm.dbg.declare(metadata ptr %v.i1, metadata !15, metadata !16), !dbg !17
%v.i = alloca i32, align 4
call void @llvm.dbg.declare(metadata i32* %v.i, metadata !15, metadata !16), !dbg !21
call void @llvm.dbg.declare(metadata ptr %v.i, metadata !15, metadata !16), !dbg !21
%param.addr = alloca i32, align 4
%a = alloca i32, align 4
%b = alloca i32, align 4
store i32 %param, i32* %param.addr, align 4
call void @llvm.dbg.declare(metadata i32* %param.addr, metadata !24, metadata !16), !dbg !25
%0 = load i32, i32* %param.addr, align 4, !dbg !26
store i32 %param, ptr %param.addr, align 4
call void @llvm.dbg.declare(metadata ptr %param.addr, metadata !24, metadata !16), !dbg !25
%0 = load i32, ptr %param.addr, align 4, !dbg !26
%tobool = icmp ne i32 %0, 0, !dbg !26
br i1 %tobool, label %if.then, label %if.else, !dbg !27

if.then: ; preds = %entry
call void @llvm.dbg.declare(metadata i32* %a, metadata !28, metadata !16), !dbg !29
store i32 42, i32* %a, align 4, !dbg !29
store i32 3, i32* %v.i, align 4, !dbg !21
call void @capture(i32* %v.i) #3, !dbg !30
call void @capture(i32* %a), !dbg !31
call void @llvm.dbg.declare(metadata ptr %a, metadata !28, metadata !16), !dbg !29
store i32 42, ptr %a, align 4, !dbg !29
store i32 3, ptr %v.i, align 4, !dbg !21
call void @capture(ptr %v.i) #3, !dbg !30
call void @capture(ptr %a), !dbg !31
br label %if.end, !dbg !32

if.else: ; preds = %entry
call void @llvm.dbg.declare(metadata i32* %b, metadata !33, metadata !16), !dbg !34
store i32 42, i32* %b, align 4, !dbg !34
store i32 3, i32* %v.i1, align 4, !dbg !17
call void @capture(i32* %v.i1) #3, !dbg !35
call void @capture(i32* %b), !dbg !36
call void @llvm.dbg.declare(metadata ptr %b, metadata !33, metadata !16), !dbg !34
store i32 42, ptr %b, align 4, !dbg !34
store i32 3, ptr %v.i1, align 4, !dbg !17
call void @capture(ptr %v.i1) #3, !dbg !35
call void @capture(ptr %b), !dbg !36
br label %if.end

if.end: ; preds = %if.else, %if.then
Expand All @@ -246,7 +246,7 @@ if.end: ; preds = %if.else, %if.then
; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

declare void @capture(i32*) #2
declare void @capture(ptr) #2

attributes #0 = { nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone }
Expand Down
10 changes: 5 additions & 5 deletions llvm/test/DebugInfo/COFF/numeric-leaves.ll
Original file line number Diff line number Diff line change
Expand Up @@ -183,11 +183,11 @@ entry:
%retval = alloca i32, align 4
%iDebug1 = alloca i64, align 8
%iDebug2 = alloca i64, align 8
store i32 0, i32* %retval, align 4
call void @llvm.dbg.declare(metadata i64* %iDebug1, metadata !40, metadata !DIExpression()), !dbg !41
store i64 -4295033092, i64* %iDebug1, align 8, !dbg !41
call void @llvm.dbg.declare(metadata i64* %iDebug2, metadata !42, metadata !DIExpression()), !dbg !43
store i64 4295032830, i64* %iDebug2, align 8, !dbg !43
store i32 0, ptr %retval, align 4
call void @llvm.dbg.declare(metadata ptr %iDebug1, metadata !40, metadata !DIExpression()), !dbg !41
store i64 -4295033092, ptr %iDebug1, align 8, !dbg !41
call void @llvm.dbg.declare(metadata ptr %iDebug2, metadata !42, metadata !DIExpression()), !dbg !43
store i64 4295032830, ptr %iDebug2, align 8, !dbg !43
ret i32 0, !dbg !44
}

Expand Down
30 changes: 15 additions & 15 deletions llvm/test/DebugInfo/COFF/parameter-order.ll
Original file line number Diff line number Diff line change
Expand Up @@ -56,24 +56,24 @@ entry:
%a.addr = alloca i32, align 4
%d = alloca i32, align 4
%e = alloca i32, align 4
store i32 %c, i32* %c.addr, align 4
call void @llvm.dbg.declare(metadata i32* %c.addr, metadata !11, metadata !12), !dbg !13
store i32 %b, i32* %b.addr, align 4
call void @llvm.dbg.declare(metadata i32* %b.addr, metadata !14, metadata !12), !dbg !15
store i32 %a, i32* %a.addr, align 4
call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !16, metadata !12), !dbg !17
call void @llvm.dbg.declare(metadata i32* %d, metadata !18, metadata !12), !dbg !19
store i32 4, i32* %d, align 4, !dbg !19
call void @llvm.dbg.declare(metadata i32* %e, metadata !20, metadata !12), !dbg !21
store i32 5, i32* %e, align 4, !dbg !21
%0 = load i32, i32* %a.addr, align 4, !dbg !22
%1 = load i32, i32* %b.addr, align 4, !dbg !23
store i32 %c, ptr %c.addr, align 4
call void @llvm.dbg.declare(metadata ptr %c.addr, metadata !11, metadata !12), !dbg !13
store i32 %b, ptr %b.addr, align 4
call void @llvm.dbg.declare(metadata ptr %b.addr, metadata !14, metadata !12), !dbg !15
store i32 %a, ptr %a.addr, align 4
call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !16, metadata !12), !dbg !17
call void @llvm.dbg.declare(metadata ptr %d, metadata !18, metadata !12), !dbg !19
store i32 4, ptr %d, align 4, !dbg !19
call void @llvm.dbg.declare(metadata ptr %e, metadata !20, metadata !12), !dbg !21
store i32 5, ptr %e, align 4, !dbg !21
%0 = load i32, ptr %a.addr, align 4, !dbg !22
%1 = load i32, ptr %b.addr, align 4, !dbg !23
%add = add nsw i32 %0, %1, !dbg !24
%2 = load i32, i32* %c.addr, align 4, !dbg !25
%2 = load i32, ptr %c.addr, align 4, !dbg !25
%add1 = add nsw i32 %add, %2, !dbg !26
%3 = load i32, i32* %d, align 4, !dbg !27
%3 = load i32, ptr %d, align 4, !dbg !27
%add2 = add nsw i32 %add1, %3, !dbg !28
%4 = load i32, i32* %e, align 4, !dbg !29
%4 = load i32, ptr %e, align 4, !dbg !29
%add3 = add nsw i32 %add2, %4, !dbg !30
ret i32 %add3, !dbg !31
}
Expand Down
10 changes: 5 additions & 5 deletions llvm/test/DebugInfo/COFF/parent-type-scopes.ll
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,11 @@ entry:
%v3 = alloca %"class.WrapClass::Inner", align 4
%v4 = alloca i32, align 4
%v5 = alloca %"union.WrapUnion::Inner", align 4
call void @llvm.dbg.declare(metadata i32* %v1, metadata !19, metadata !DIExpression()), !dbg !23
call void @llvm.dbg.declare(metadata %"struct.WrapStruct::Inner"* %v2, metadata !24, metadata !DIExpression()), !dbg !30
call void @llvm.dbg.declare(metadata %"class.WrapClass::Inner"* %v3, metadata !31, metadata !DIExpression()), !dbg !37
call void @llvm.dbg.declare(metadata i32* %v4, metadata !38, metadata !DIExpression()), !dbg !39
call void @llvm.dbg.declare(metadata %"union.WrapUnion::Inner"* %v5, metadata !40, metadata !DIExpression()), !dbg !48
call void @llvm.dbg.declare(metadata ptr %v1, metadata !19, metadata !DIExpression()), !dbg !23
call void @llvm.dbg.declare(metadata ptr %v2, metadata !24, metadata !DIExpression()), !dbg !30
call void @llvm.dbg.declare(metadata ptr %v3, metadata !31, metadata !DIExpression()), !dbg !37
call void @llvm.dbg.declare(metadata ptr %v4, metadata !38, metadata !DIExpression()), !dbg !39
call void @llvm.dbg.declare(metadata ptr %v5, metadata !40, metadata !DIExpression()), !dbg !48
ret void, !dbg !49
}

Expand Down
8 changes: 4 additions & 4 deletions llvm/test/DebugInfo/COFF/pgo.ll
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,9 @@ entry:
ret i32 %mul3, !dbg !62
}

define dso_local i32 @main(i32 %argc, i8** nocapture readnone %argv) local_unnamed_addr #1 !dbg !63 !annotation !72 {
define dso_local i32 @main(i32 %argc, ptr nocapture readnone %argv) local_unnamed_addr #1 !dbg !63 !annotation !72 {
entry:
call void @llvm.dbg.value(metadata i8** %argv, metadata !70, metadata !DIExpression()), !dbg !73
call void @llvm.dbg.value(metadata ptr %argv, metadata !70, metadata !DIExpression()), !dbg !73
call void @llvm.dbg.value(metadata i32 %argc, metadata !71, metadata !DIExpression()), !dbg !73
%cmp = icmp eq i32 %argc, 2, !dbg !74
br i1 %cmp, label %return, label %if.end, !dbg !74
Expand Down Expand Up @@ -122,8 +122,8 @@ attributes #1 = { optsize }
!37 = !{i32 999999, i64 1, i32 2}
!38 = !{i32 5, !"CG Profile", !39}
!39 = !{!40, !41}
!40 = !{i32 (i32)* @"?bar@@YAHH@Z", i32 (i32)* @"?foo@@YAHH@Z", i64 0}
!41 = !{i32 (i32)* @"?bar@@YAHH@Z", i32 (i32)* @"?foo2@@YAHH@Z", i64 0}
!40 = !{ptr @"?bar@@YAHH@Z", ptr @"?foo@@YAHH@Z", i64 0}
!41 = !{ptr @"?bar@@YAHH@Z", ptr @"?foo2@@YAHH@Z", i64 0}
!43 = distinct !DISubprogram(name: "foo", linkageName: "?foo@@YAHH@Z", scope: !1, file: !1, line: 2, type: !44, scopeLine: 2, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !47)
!44 = !DISubroutineType(types: !45)
!45 = !{!46, !46}
Expand Down
28 changes: 14 additions & 14 deletions llvm/test/DebugInfo/COFF/pieces.ll
Original file line number Diff line number Diff line change
Expand Up @@ -254,13 +254,13 @@ target triple = "x86_64-pc-windows-msvc19.0.24210"
; Function Attrs: nounwind uwtable
define i32 @loop_csr() local_unnamed_addr #0 !dbg !7 {
entry:
tail call void @llvm.dbg.declare(metadata %struct.IntPair* undef, metadata !12, metadata !17), !dbg !18
tail call void @llvm.dbg.declare(metadata ptr undef, metadata !12, metadata !17), !dbg !18
tail call void @llvm.dbg.value(metadata i32 0, metadata !12, metadata !19), !dbg !18
tail call void @llvm.dbg.value(metadata i32 0, metadata !12, metadata !20), !dbg !18
tail call void @llvm.dbg.value(metadata i32 0, metadata !12, metadata !19), !dbg !18
tail call void @llvm.dbg.value(metadata i32 0, metadata !12, metadata !20), !dbg !18
store i32 0, i32* @i, align 4, !dbg !21, !tbaa !24
%0 = load i32, i32* @n, align 4, !dbg !28, !tbaa !24
store i32 0, ptr @i, align 4, !dbg !21, !tbaa !24
%0 = load i32, ptr @n, align 4, !dbg !28, !tbaa !24
%cmp9 = icmp sgt i32 %0, 0, !dbg !29
br i1 %cmp9, label %for.body, label %for.end, !dbg !30

Expand All @@ -273,10 +273,10 @@ for.body: ; preds = %entry, %for.body
tail call void @llvm.dbg.value(metadata i32 %call, metadata !12, metadata !19), !dbg !18
%call2 = tail call i32 @g(i32 %o.sroa.5.010) #5, !dbg !33
tail call void @llvm.dbg.value(metadata i32 %call2, metadata !12, metadata !20), !dbg !18
%1 = load i32, i32* @i, align 4, !dbg !21, !tbaa !24
%1 = load i32, ptr @i, align 4, !dbg !21, !tbaa !24
%inc = add nsw i32 %1, 1, !dbg !21
store i32 %inc, i32* @i, align 4, !dbg !21, !tbaa !24
%2 = load i32, i32* @n, align 4, !dbg !28, !tbaa !24
store i32 %inc, ptr @i, align 4, !dbg !21, !tbaa !24
%2 = load i32, ptr @n, align 4, !dbg !28, !tbaa !24
%cmp = icmp slt i32 %inc, %2, !dbg !29
br i1 %cmp, label %for.body, label %for.end, !dbg !30, !llvm.loop !34

Expand All @@ -298,7 +298,7 @@ entry:
%o.sroa.1.0.extract.shift = lshr i64 %o.coerce, 32
%o.sroa.1.0.extract.trunc = trunc i64 %o.sroa.1.0.extract.shift to i32
tail call void @llvm.dbg.value(metadata i32 %o.sroa.1.0.extract.trunc, metadata !47, metadata !20), !dbg !48
tail call void @llvm.dbg.declare(metadata %struct.PadRight* undef, metadata !47, metadata !17), !dbg !48
tail call void @llvm.dbg.declare(metadata ptr undef, metadata !47, metadata !17), !dbg !48
ret i32 %o.sroa.1.0.extract.trunc, !dbg !49
}

Expand All @@ -307,25 +307,25 @@ define i32 @pad_left(i64 %o.coerce) local_unnamed_addr #3 !dbg !50 {
entry:
%o.sroa.0.0.extract.trunc = trunc i64 %o.coerce to i32
tail call void @llvm.dbg.value(metadata i32 %o.sroa.0.0.extract.trunc, metadata !58, metadata !19), !dbg !59
tail call void @llvm.dbg.declare(metadata %struct.PadLeft* undef, metadata !58, metadata !17), !dbg !59
tail call void @llvm.dbg.declare(metadata ptr undef, metadata !58, metadata !17), !dbg !59
ret i32 %o.sroa.0.0.extract.trunc, !dbg !60
}

; Function Attrs: nounwind readonly uwtable
define i32 @nested(%struct.Nested* nocapture readonly %o) local_unnamed_addr #4 !dbg !61 {
define i32 @nested(ptr nocapture readonly %o) local_unnamed_addr #4 !dbg !61 {
entry:
tail call void @llvm.dbg.declare(metadata %struct.Nested* %o, metadata !71, metadata !73), !dbg !74
tail call void @llvm.dbg.declare(metadata %struct.PadLeft* undef, metadata !72, metadata !17), !dbg !75
%p.sroa.3.0..sroa_idx2 = getelementptr inbounds %struct.Nested, %struct.Nested* %o, i64 0, i32 0, i64 1, i32 1, !dbg !76
%p.sroa.3.0.copyload = load i32, i32* %p.sroa.3.0..sroa_idx2, align 4, !dbg !76
tail call void @llvm.dbg.declare(metadata ptr %o, metadata !71, metadata !73), !dbg !74
tail call void @llvm.dbg.declare(metadata ptr undef, metadata !72, metadata !17), !dbg !75
%p.sroa.3.0..sroa_idx2 = getelementptr inbounds %struct.Nested, ptr %o, i64 0, i32 0, i64 1, i32 1, !dbg !76
%p.sroa.3.0.copyload = load i32, ptr %p.sroa.3.0..sroa_idx2, align 4, !dbg !76
tail call void @llvm.dbg.value(metadata i32 %p.sroa.3.0.copyload, metadata !72, metadata !20), !dbg !75
ret i32 %p.sroa.3.0.copyload, !dbg !77
}

; Function Attrs: nounwind uwtable
define i32 @bitpiece_spill() local_unnamed_addr #0 !dbg !78 {
entry:
tail call void @llvm.dbg.declare(metadata %struct.IntPair* undef, metadata !80, metadata !17), !dbg !81
tail call void @llvm.dbg.declare(metadata ptr undef, metadata !80, metadata !17), !dbg !81
tail call void @llvm.dbg.value(metadata i32 0, metadata !80, metadata !19), !dbg !81
%call = tail call i32 @g(i32 0) #5, !dbg !82
tail call void @llvm.dbg.value(metadata i32 %call, metadata !80, metadata !20), !dbg !81
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/DebugInfo/COFF/pr28747.ll
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ target triple = "i686-pc-windows-msvc18.0.0"
define void @baz() {
entry:
%x.i.i = alloca i32, align 4
call void @llvm.dbg.declare(metadata i32* %x.i.i, metadata !6, metadata !12), !dbg !13
store i32 5, i32* %x.i.i, align 4, !dbg !13
call void @llvm.dbg.declare(metadata ptr %x.i.i, metadata !6, metadata !12), !dbg !13
store i32 5, ptr %x.i.i, align 4, !dbg !13
ret void
}

Expand Down
2 changes: 1 addition & 1 deletion llvm/test/DebugInfo/COFF/pr37492.ll
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ target triple = "x86_64-pc-windows-msvc19.13.26131"
%struct.Bits = type { i8 }

@"?bits@@3UBits@@A" = dso_local global %struct.Bits zeroinitializer, align 1, !dbg !0
@"?p_const@@3PEBEEB" = dso_local global i8* null, align 8, !dbg !6
@"?p_const@@3PEBEEB" = dso_local global ptr null, align 8, !dbg !6

!llvm.dbg.cu = !{!2}
!llvm.module.flags = !{!15, !16, !17, !18}
Expand Down
44 changes: 21 additions & 23 deletions llvm/test/DebugInfo/COFF/purge-typedef-udts.ll
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ target triple = "i686-pc-windows-msvc19.11.25506"
; typedef Foo FooTypedef;
; typedef Bar BarTypedef;
;
; int func(void *F) { return 7; }
; int func(const FooTypedef *F) { return func((void*)F); }
; int func(const BarTypedef *B) { return func((void*)B->X); }
; int func(ptr F) { return 7; }
; int func(const FooTypedef *F) { return func((ptr)F); }
; int func(const BarTypedef *B) { return func((ptr)B->X); }

; CHECK-NOT: UDTName: FooTypedef
; CHECK: UDTName: BarTypedef
Expand All @@ -25,40 +25,38 @@ target triple = "i686-pc-windows-msvc19.11.25506"
%struct.Bar = type { i32 }

; Function Attrs: noinline nounwind optnone
define i32 @"\01?func@@YAHPAX@Z"(i8* %F) #0 !dbg !10 {
define i32 @"\01?func@@YAHPAX@Z"(ptr %F) #0 !dbg !10 {
entry:
%F.addr = alloca i8*, align 4
store i8* %F, i8** %F.addr, align 4
call void @llvm.dbg.declare(metadata i8** %F.addr, metadata !14, metadata !DIExpression()), !dbg !15
%F.addr = alloca ptr, align 4
store ptr %F, ptr %F.addr, align 4
call void @llvm.dbg.declare(metadata ptr %F.addr, metadata !14, metadata !DIExpression()), !dbg !15
ret i32 7, !dbg !16
}

; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

; Function Attrs: noinline nounwind optnone
define i32 @"\01?func@@YAHPBUFoo@@@Z"(%struct.Foo* %F) #0 !dbg !17 {
define i32 @"\01?func@@YAHPBUFoo@@@Z"(ptr %F) #0 !dbg !17 {
entry:
%F.addr = alloca %struct.Foo*, align 4
store %struct.Foo* %F, %struct.Foo** %F.addr, align 4
call void @llvm.dbg.declare(metadata %struct.Foo** %F.addr, metadata !24, metadata !DIExpression()), !dbg !25
%0 = load %struct.Foo*, %struct.Foo** %F.addr, align 4, !dbg !26
%1 = bitcast %struct.Foo* %0 to i8*, !dbg !26
%call = call i32 @"\01?func@@YAHPAX@Z"(i8* %1), !dbg !27
%F.addr = alloca ptr, align 4
store ptr %F, ptr %F.addr, align 4
call void @llvm.dbg.declare(metadata ptr %F.addr, metadata !24, metadata !DIExpression()), !dbg !25
%0 = load ptr, ptr %F.addr, align 4, !dbg !26
%call = call i32 @"\01?func@@YAHPAX@Z"(ptr %0), !dbg !27
ret i32 %call, !dbg !28
}

; Function Attrs: noinline nounwind optnone
define i32 @"\01?func@@YAHPBUBar@@@Z"(%struct.Bar* %B) #0 !dbg !29 {
define i32 @"\01?func@@YAHPBUBar@@@Z"(ptr %B) #0 !dbg !29 {
entry:
%B.addr = alloca %struct.Bar*, align 4
store %struct.Bar* %B, %struct.Bar** %B.addr, align 4
call void @llvm.dbg.declare(metadata %struct.Bar** %B.addr, metadata !42, metadata !DIExpression()), !dbg !43
%0 = load %struct.Bar*, %struct.Bar** %B.addr, align 4, !dbg !44
%X = getelementptr inbounds %struct.Bar, %struct.Bar* %0, i32 0, i32 0, !dbg !45
%1 = load i32, i32* %X, align 4, !dbg !45
%2 = inttoptr i32 %1 to i8*, !dbg !46
%call = call i32 @"\01?func@@YAHPAX@Z"(i8* %2), !dbg !47
%B.addr = alloca ptr, align 4
store ptr %B, ptr %B.addr, align 4
call void @llvm.dbg.declare(metadata ptr %B.addr, metadata !42, metadata !DIExpression()), !dbg !43
%0 = load ptr, ptr %B.addr, align 4, !dbg !44
%1 = load i32, ptr %0, align 4, !dbg !45
%2 = inttoptr i32 %1 to ptr, !dbg !46
%call = call i32 @"\01?func@@YAHPAX@Z"(ptr %2), !dbg !47
ret i32 %call, !dbg !48
}

Expand Down
4 changes: 2 additions & 2 deletions llvm/test/DebugInfo/COFF/register-variables.ll
Original file line number Diff line number Diff line change
Expand Up @@ -186,9 +186,9 @@ if.then: ; preds = %entry
tail call void @llvm.dbg.value(metadata i32 %call2, metadata !29, metadata !23), !dbg !35
%add.i = add nsw i32 %call2, 1, !dbg !37
tail call void @llvm.dbg.value(metadata i32 %add.i, metadata !34, metadata !23), !dbg !38
%0 = load volatile i32, i32* @x, align 4, !dbg !39, !tbaa !40
%0 = load volatile i32, ptr @x, align 4, !dbg !39, !tbaa !40
%inc.i = add nsw i32 %0, 1, !dbg !39
store volatile i32 %inc.i, i32* @x, align 4, !dbg !39, !tbaa !40
store volatile i32 %inc.i, ptr @x, align 4, !dbg !39, !tbaa !40
tail call void @llvm.dbg.value(metadata i32 %add.i, metadata !20, metadata !23), !dbg !44
tail call void @putint(i32 %add.i) #3, !dbg !45
br label %if.end, !dbg !46
Expand Down
18 changes: 8 additions & 10 deletions llvm/test/DebugInfo/COFF/retained-types.ll
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
; C++ source to regenerate:
; $ cat /tmp/a.cc
; struct S { int x; };
; int f(void *p) {
; int f(ptr p) {
; return static_cast<S*>(p)->x;
; }
; $ clang /tmp/a.cc -S -emit-llvm -g -gcodeview -target x86_64-windows-msvc -o t.ll
Expand Down Expand Up @@ -49,16 +49,14 @@ target triple = "x86_64--windows-msvc18.0.0"
%struct.S = type { i32 }

; Function Attrs: nounwind uwtable
define i32 @"\01?f@@YAHPEAX@Z"(i8* %p) #0 !dbg !13 {
define i32 @"\01?f@@YAHPEAX@Z"(ptr %p) #0 !dbg !13 {
entry:
%p.addr = alloca i8*, align 8
store i8* %p, i8** %p.addr, align 8
call void @llvm.dbg.declare(metadata i8** %p.addr, metadata !17, metadata !18), !dbg !19
%0 = load i8*, i8** %p.addr, align 8, !dbg !20
%1 = bitcast i8* %0 to %struct.S*, !dbg !21
%x = getelementptr inbounds %struct.S, %struct.S* %1, i32 0, i32 0, !dbg !22
%2 = load i32, i32* %x, align 4, !dbg !22
ret i32 %2, !dbg !23
%p.addr = alloca ptr, align 8
store ptr %p, ptr %p.addr, align 8
call void @llvm.dbg.declare(metadata ptr %p.addr, metadata !17, metadata !18), !dbg !19
%0 = load ptr, ptr %p.addr, align 8, !dbg !20
%1 = load i32, ptr %0, align 4, !dbg !22
ret i32 %1, !dbg !23
}

; Function Attrs: nounwind readnone
Expand Down
12 changes: 6 additions & 6 deletions llvm/test/DebugInfo/COFF/scopes.ll
Original file line number Diff line number Diff line change
Expand Up @@ -85,20 +85,20 @@ target triple = "x86_64-pc-windows-msvc19.0.23918"
define void @"\01?baz@bar@foo@@YAXXZ"() #0 !dbg !20 {
entry:
%l = alloca %struct.LocalRecord, align 4
call void @llvm.dbg.declare(metadata %struct.LocalRecord* %l, metadata !23, metadata !27), !dbg !28
call void @llvm.dbg.declare(metadata ptr %l, metadata !23, metadata !27), !dbg !28
ret void, !dbg !29
}

; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

; Function Attrs: nounwind uwtable
define void @"\01?method@GlobalRecord@bar@foo@@QEAAXXZ"(%"struct.foo::bar::GlobalRecord"* %this) #0 align 2 !dbg !30 {
define void @"\01?method@GlobalRecord@bar@foo@@QEAAXXZ"(ptr %this) #0 align 2 !dbg !30 {
entry:
%this.addr = alloca %"struct.foo::bar::GlobalRecord"*, align 8
store %"struct.foo::bar::GlobalRecord"* %this, %"struct.foo::bar::GlobalRecord"** %this.addr, align 8
call void @llvm.dbg.declare(metadata %"struct.foo::bar::GlobalRecord"** %this.addr, metadata !31, metadata !27), !dbg !33
%this1 = load %"struct.foo::bar::GlobalRecord"*, %"struct.foo::bar::GlobalRecord"** %this.addr, align 8
%this.addr = alloca ptr, align 8
store ptr %this, ptr %this.addr, align 8
call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !31, metadata !27), !dbg !33
%this1 = load ptr, ptr %this.addr, align 8
ret void, !dbg !34
}

Expand Down
11 changes: 5 additions & 6 deletions llvm/test/DebugInfo/COFF/static-methods.ll
Original file line number Diff line number Diff line change
Expand Up @@ -77,20 +77,19 @@ target triple = "i686-pc-windows-msvc19.0.24215"

%struct.A = type { i8 }

@"\01?p@@3PAUA@@A" = global %struct.A* null, align 4, !dbg !0
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_t.cpp, i8* null }]
@"\01?p@@3PAUA@@A" = global ptr null, align 4, !dbg !0
@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_t.cpp, ptr null }]

; Function Attrs: noinline
define internal void @"\01??__Ep@@YAXXZ"() #0 !dbg !25 {
entry:
%call = call i8* @"\01??2@YAPAXI@Z"(i32 1) #2, !dbg !26
%0 = bitcast i8* %call to %struct.A*, !dbg !26
store %struct.A* %0, %struct.A** @"\01?p@@3PAUA@@A", align 4, !dbg !26
%call = call ptr @"\01??2@YAPAXI@Z"(i32 1) #2, !dbg !26
store ptr %call, ptr @"\01?p@@3PAUA@@A", align 4, !dbg !26
ret void, !dbg !27
}

; Function Attrs: nobuiltin
declare noalias i8* @"\01??2@YAPAXI@Z"(i32) #1
declare noalias ptr @"\01??2@YAPAXI@Z"(i32) #1

; Function Attrs: noinline
define internal void @_GLOBAL__sub_I_t.cpp() #0 !dbg !28 {
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/DebugInfo/COFF/synthetic.ll
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-windows-msvc"

define dllexport void ()* @f() !dbg !6 {
define dllexport ptr @f() !dbg !6 {
entry:
ret void ()* null, !dbg !28
ret ptr null, !dbg !28
}

!llvm.dbg.cu = !{!0}
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/DebugInfo/COFF/typedef.ll
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ target triple = "i686-pc-windows-msvc18.0.0"
define void @test1() !dbg !5 {
entry:
%foo = alloca i16, align 2
call void @llvm.dbg.declare(metadata i16* %foo, metadata !8, metadata !11), !dbg !12
call void @llvm.dbg.declare(metadata ptr %foo, metadata !8, metadata !11), !dbg !12
ret void, !dbg !12
}

Expand Down
27 changes: 13 additions & 14 deletions llvm/test/DebugInfo/COFF/types-array-advanced.ll
Original file line number Diff line number Diff line change
Expand Up @@ -173,37 +173,36 @@ target triple = "i686-pc-windows-msvc18.0.31101"
%struct.incomplete_struct = type { i32 }

@"\01?multi_dim_arr@@3PAY146DA" = global [2 x [5 x [7 x i8]]] zeroinitializer, align 1, !dbg !0
@"\01?p_incomplete_struct_arr@@3PAY02Uincomplete_struct@@A" = global [3 x i8]* null, align 4, !dbg !6
@"\01?p_incomplete_struct_arr@@3PAY02Uincomplete_struct@@A" = global ptr null, align 4, !dbg !6
@"\01?incomplete_struct_arr@@3PAUincomplete_struct@@A" = global [3 x %struct.incomplete_struct] zeroinitializer, align 4, !dbg !16
@"\01?typedef_arr@@3SDHD" = constant [4 x i32] zeroinitializer, align 4, !dbg !18

; Function Attrs: nounwind
define void @"\01?foo@@YAXH@Z"(i32 %x) #0 !dbg !35 {
entry:
%x.addr = alloca i32, align 4
%saved_stack = alloca i8*, align 4
store i32 %x, i32* %x.addr, align 4
call void @llvm.dbg.declare(metadata i32* %x.addr, metadata !38, metadata !39), !dbg !40
%0 = load i32, i32* %x.addr, align 4, !dbg !41
%1 = call i8* @llvm.stacksave(), !dbg !42
store i8* %1, i8** %saved_stack, align 4, !dbg !42
%saved_stack = alloca ptr, align 4
store i32 %x, ptr %x.addr, align 4
call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !38, metadata !39), !dbg !40
%0 = load i32, ptr %x.addr, align 4, !dbg !41
%1 = call ptr @llvm.stacksave(), !dbg !42
store ptr %1, ptr %saved_stack, align 4, !dbg !42
%vla = alloca i32, i32 %0, align 4, !dbg !42
call void @llvm.dbg.declare(metadata i32* %vla, metadata !43, metadata !47), !dbg !48
%arrayidx = getelementptr inbounds i32, i32* %vla, i32 0, !dbg !49
store i32 0, i32* %arrayidx, align 4, !dbg !50
%2 = load i8*, i8** %saved_stack, align 4, !dbg !51
call void @llvm.stackrestore(i8* %2), !dbg !51
call void @llvm.dbg.declare(metadata ptr %vla, metadata !43, metadata !47), !dbg !48
store i32 0, ptr %vla, align 4, !dbg !50
%2 = load ptr, ptr %saved_stack, align 4, !dbg !51
call void @llvm.stackrestore(ptr %2), !dbg !51
ret void, !dbg !51
}

; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

; Function Attrs: nounwind
declare i8* @llvm.stacksave() #0
declare ptr @llvm.stacksave() #0

; Function Attrs: nounwind
declare void @llvm.stackrestore(i8*) #0
declare void @llvm.stackrestore(ptr) #0

attributes #0 = { nounwind }
attributes #1 = { nounwind readnone }
Expand Down
13 changes: 5 additions & 8 deletions llvm/test/DebugInfo/COFF/types-array.ll
Original file line number Diff line number Diff line change
Expand Up @@ -91,21 +91,18 @@ target triple = "i686-pc-windows-msvc19.0.23918"
define void @"\01?f@@YAXXZ"() #0 !dbg !6 {
entry:
%a = alloca [5 x i32], align 4
call void @llvm.dbg.declare(metadata [5 x i32]* %a, metadata !9, metadata !14), !dbg !15
%0 = bitcast [5 x i32]* %a to i8*, !dbg !15
call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %0, i8* align 4 bitcast ([5 x i32]* @"\01?a@?1??f@@YAXXZ@3PAHA" to i8*), i32 20, i1 false), !dbg !15
%arraydecay = getelementptr inbounds [5 x i32], [5 x i32]* %a, i32 0, i32 0, !dbg !16
%arrayidx = getelementptr inbounds [5 x i32], [5 x i32]* %a, i32 0, i32 0, !dbg !17
%1 = load i32, i32* %arrayidx, align 4, !dbg !17
call void (i32, ...) @"\01?usevars@@YAXHZZ"(i32 %1, i32* %arraydecay), !dbg !18
call void @llvm.dbg.declare(metadata ptr %a, metadata !9, metadata !14), !dbg !15
call void @llvm.memcpy.p0.p0.i32(ptr align 4 %a, ptr align 4 @"\01?a@?1??f@@YAXXZ@3PAHA", i32 20, i1 false), !dbg !15
%0 = load i32, ptr %a, align 4, !dbg !17
call void (i32, ...) @"\01?usevars@@YAXHZZ"(i32 %0, ptr %a), !dbg !18
ret void, !dbg !19
}

; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

; Function Attrs: argmemonly nounwind
declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture readonly, i32, i1) #2
declare void @llvm.memcpy.p0.p0.i32(ptr nocapture, ptr nocapture readonly, i32, i1) #2

declare void @"\01?usevars@@YAXHZZ"(i32, ...) #3

Expand Down
4 changes: 2 additions & 2 deletions llvm/test/DebugInfo/COFF/types-calling-conv.ll
Original file line number Diff line number Diff line change
Expand Up @@ -175,9 +175,9 @@ target triple = "i386-pc-windows-msvc19.0.23918"
%struct.A = type { i8 }

; Function Attrs: nounwind readnone
define x86_thiscallcc void @"\01?thiscallcc@A@@QAEXXZ"(%struct.A* nocapture %this) #0 align 2 !dbg !6 {
define x86_thiscallcc void @"\01?thiscallcc@A@@QAEXXZ"(ptr nocapture %this) #0 align 2 !dbg !6 {
entry:
tail call void @llvm.dbg.value(metadata %struct.A* %this, metadata !14, metadata !16), !dbg !17
tail call void @llvm.dbg.value(metadata ptr %this, metadata !14, metadata !16), !dbg !17
ret void, !dbg !18
}

Expand Down
12 changes: 6 additions & 6 deletions llvm/test/DebugInfo/COFF/types-integer-old.ll
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ define dso_local void @"?f@@YAXXZ"() #0 !dbg !8 {
entry:
%l1 = alloca i32, align 4
%l2 = alloca i32, align 4
call void @llvm.dbg.declare(metadata i32* %l1, metadata !13, metadata !DIExpression()), !dbg !15
store i32 0, i32* %l1, align 4, !dbg !15
call void @llvm.dbg.declare(metadata i32* %l2, metadata !16, metadata !DIExpression()), !dbg !18
store i32 0, i32* %l2, align 4, !dbg !18
%0 = load i32, i32* %l2, align 4, !dbg !19
%1 = load i32, i32* %l1, align 4, !dbg !19
call void @llvm.dbg.declare(metadata ptr %l1, metadata !13, metadata !DIExpression()), !dbg !15
store i32 0, ptr %l1, align 4, !dbg !15
call void @llvm.dbg.declare(metadata ptr %l2, metadata !16, metadata !DIExpression()), !dbg !18
store i32 0, ptr %l2, align 4, !dbg !18
%0 = load i32, ptr %l2, align 4, !dbg !19
%1 = load i32, ptr %l1, align 4, !dbg !19
call void (i32, ...) @"?usevars@@YAXJZZ"(i32 %1, i32 %0), !dbg !19
ret void, !dbg !20
}
Expand Down
8 changes: 4 additions & 4 deletions llvm/test/DebugInfo/COFF/types-method-ref-qualifiers.ll
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ target triple = "x86_64-pc-windows-msvc19.15.26732"
; Function Attrs: noinline nounwind optnone uwtable
define dso_local void @"?foo@@YAXXZ"() #0 !dbg !10 {
entry:
%GenericPtr = alloca %struct.A*, align 8
%GenericPtr = alloca ptr, align 8
%a = alloca %struct.A, align 1
call void @llvm.dbg.declare(metadata %struct.A** %GenericPtr, metadata !13, metadata !DIExpression()), !dbg !28
store %struct.A* null, %struct.A** %GenericPtr, align 8, !dbg !28
call void @llvm.dbg.declare(metadata %struct.A* %a, metadata !29, metadata !DIExpression()), !dbg !30
call void @llvm.dbg.declare(metadata ptr %GenericPtr, metadata !13, metadata !DIExpression()), !dbg !28
store ptr null, ptr %GenericPtr, align 8, !dbg !28
call void @llvm.dbg.declare(metadata ptr %a, metadata !29, metadata !DIExpression()), !dbg !30
ret void, !dbg !31
}

Expand Down
4 changes: 2 additions & 2 deletions llvm/test/DebugInfo/COFF/types-non-virtual-methods.ll
Original file line number Diff line number Diff line change
Expand Up @@ -257,8 +257,8 @@ define void @"\01?foo@@YAXXZ"() #0 !dbg !6 {
entry:
%a = alloca %struct.A, align 1
%b = alloca %class.B, align 1
call void @llvm.dbg.declare(metadata %struct.A* %a, metadata !9, metadata !19), !dbg !20
call void @llvm.dbg.declare(metadata %class.B* %b, metadata !21, metadata !19), !dbg !36
call void @llvm.dbg.declare(metadata ptr %a, metadata !9, metadata !19), !dbg !20
call void @llvm.dbg.declare(metadata ptr %b, metadata !21, metadata !19), !dbg !36
ret void, !dbg !37
}

Expand Down
12 changes: 6 additions & 6 deletions llvm/test/DebugInfo/COFF/types-ptr-to-member.ll
Original file line number Diff line number Diff line change
Expand Up @@ -179,12 +179,12 @@ target triple = "x86_64-pc-windows-msvc19.0.23918"
@"\01?pmd_b@@3PEQC@@HEQ1@" = global i32 -1, align 8, !dbg !6
@"\01?pmd_c@@3PEQD@@HEQ1@" = global { i32, i32 } { i32 0, i32 -1 }, align 8, !dbg !21
@"\01?pmd_d@@3PEQE@@HEQ1@" = global { i32, i32, i32 } { i32 0, i32 0, i32 -1 }, align 8, !dbg !25
@"\01?pmf_a@@3P8A@@EAAXXZEQ1@" = global i8* null, align 8, !dbg !29
@"\01?pmf_b@@3P8C@@EAAXXZEQ1@" = global { i8*, i32 } zeroinitializer, align 8, !dbg !35
@"\01?pmf_c@@3P8D@@EAAXXZEQ1@" = global { i8*, i32, i32 } zeroinitializer, align 8, !dbg !41
@"\01?pmf_d@@3P8E@@EAAXXZEQ1@" = global { i8*, i32, i32, i32 } zeroinitializer, align 8, !dbg !47
@"\01?ppmd@@3PEAPEQIncomplete@@HEA" = global %0* null, align 8, !dbg !53
@"\01?ppmf@@3PEAP8Incomplete@@EAAXXZEA" = global %1* null, align 8, !dbg !58
@"\01?pmf_a@@3P8A@@EAAXXZEQ1@" = global ptr null, align 8, !dbg !29
@"\01?pmf_b@@3P8C@@EAAXXZEQ1@" = global { ptr, i32 } zeroinitializer, align 8, !dbg !35
@"\01?pmf_c@@3P8D@@EAAXXZEQ1@" = global { ptr, i32, i32 } zeroinitializer, align 8, !dbg !41
@"\01?pmf_d@@3P8E@@EAAXXZEQ1@" = global { ptr, i32, i32, i32 } zeroinitializer, align 8, !dbg !47
@"\01?ppmd@@3PEAPEQIncomplete@@HEA" = global ptr null, align 8, !dbg !53
@"\01?ppmf@@3PEAP8Incomplete@@EAAXXZEA" = global ptr null, align 8, !dbg !58

!llvm.dbg.cu = !{!2}
!llvm.module.flags = !{!66, !67, !68}
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/DebugInfo/COFF/types-recursive-struct.ll
Original file line number Diff line number Diff line change
Expand Up @@ -141,16 +141,16 @@ source_filename = "t.cpp"
target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc19.0.23918"

%struct.A = type { %struct.B* }
%struct.A = type { ptr }
%struct.B = type { %struct.A }

; Function Attrs: nounwind uwtable
define void @"\01?f@@YAXXZ"() #0 !dbg !7 {
entry:
%a = alloca %struct.A, align 8
%b = alloca %struct.B, align 8
call void @llvm.dbg.declare(metadata %struct.A* %a, metadata !10, metadata !18), !dbg !19
call void @llvm.dbg.declare(metadata %struct.B* %b, metadata !20, metadata !18), !dbg !21
call void @llvm.dbg.declare(metadata ptr %a, metadata !10, metadata !18), !dbg !19
call void @llvm.dbg.declare(metadata ptr %b, metadata !20, metadata !18), !dbg !21
ret void, !dbg !22
}

Expand Down
10 changes: 5 additions & 5 deletions llvm/test/DebugInfo/COFF/types-recursive-unnamed.ll
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ target triple = "x86_64-pc-windows-msvc19.0.24210"
%struct.anon = type { i8 }

; Function Attrs: noinline nounwind uwtable
define void @"\01?anchor@named_struct@@QEAAXXZ"(%struct.named_struct* %this) #0 align 2 !dbg !7 {
define void @"\01?anchor@named_struct@@QEAAXXZ"(ptr %this) #0 align 2 !dbg !7 {
entry:
%this.addr = alloca %struct.named_struct*, align 8
store %struct.named_struct* %this, %struct.named_struct** %this.addr, align 8
call void @llvm.dbg.declare(metadata %struct.named_struct** %this.addr, metadata !21, metadata !23), !dbg !24
%this1 = load %struct.named_struct*, %struct.named_struct** %this.addr, align 8
%this.addr = alloca ptr, align 8
store ptr %this, ptr %this.addr, align 8
call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !21, metadata !23), !dbg !24
%this1 = load ptr, ptr %this.addr, align 8
ret void, !dbg !25
}

Expand Down
2 changes: 1 addition & 1 deletion llvm/test/DebugInfo/COFF/types-std-nullptr-t.ll
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ source_filename = "foo.cpp"
target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc19.15.26730"

@"?NullPtr@@3$$TA" = dso_local global i8* null, align 8, !dbg !0
@"?NullPtr@@3$$TA" = dso_local global ptr null, align 8, !dbg !0

!llvm.dbg.cu = !{!2}
!llvm.module.flags = !{!7, !8, !9, !10}
Expand Down
12 changes: 6 additions & 6 deletions llvm/test/DebugInfo/COFF/udts-fixpoint.ll
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,13 @@ target triple = "x86_64-pc-windows-msvc19.16.0"
%class.c = type { { i32, i32, i32 } }

; Function Attrs: noinline nounwind optnone
define dso_local %class.c* @"??0c@@AEAA@XZ"(%class.c* returned %this) unnamed_addr #0 align 2 !dbg !7 {
define dso_local ptr @"??0c@@AEAA@XZ"(ptr returned %this) unnamed_addr #0 align 2 !dbg !7 {
entry:
%this.addr = alloca %class.c*, align 8
store %class.c* %this, %class.c** %this.addr, align 8
call void @llvm.dbg.declare(metadata %class.c** %this.addr, metadata !20, metadata !DIExpression()), !dbg !22
%this1 = load %class.c*, %class.c** %this.addr, align 8
ret %class.c* %this1, !dbg !23
%this.addr = alloca ptr, align 8
store ptr %this, ptr %this.addr, align 8
call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !20, metadata !DIExpression()), !dbg !22
%this1 = load ptr, ptr %this.addr, align 8
ret ptr %this1, !dbg !23
}

; Function Attrs: nounwind readnone speculatable willreturn
Expand Down
25 changes: 11 additions & 14 deletions llvm/test/DebugInfo/COFF/udts.ll
Original file line number Diff line number Diff line change
Expand Up @@ -103,28 +103,25 @@ target triple = "x86_64-pc-windows-msvc19.11.25506"
; Function Attrs: noinline nounwind optnone uwtable
define void @"\01?f@@YAXXZ"() #0 !dbg !31 {
%1 = alloca i32, align 4
call void @llvm.dbg.declare(metadata i32* %1, metadata !34, metadata !DIExpression()), !dbg !36
call void @llvm.dbg.declare(metadata ptr %1, metadata !34, metadata !DIExpression()), !dbg !36
ret void, !dbg !37
}

; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

; Function Attrs: noinline nounwind optnone uwtable
define float @"\01?g@@YAMPEAUS@@@Z"(%struct.S*) #0 !dbg !38 {
%2 = alloca %struct.S*, align 8
define float @"\01?g@@YAMPEAUS@@@Z"(ptr) #0 !dbg !38 {
%2 = alloca ptr, align 8
%3 = alloca %union.pun, align 4
store %struct.S* %0, %struct.S** %2, align 8
call void @llvm.dbg.declare(metadata %struct.S** %2, metadata !43, metadata !DIExpression()), !dbg !44
call void @llvm.dbg.declare(metadata %union.pun* %3, metadata !45, metadata !DIExpression()), !dbg !50
%4 = load %struct.S*, %struct.S** %2, align 8, !dbg !51
%5 = getelementptr inbounds %struct.S, %struct.S* %4, i32 0, i32 0, !dbg !52
%6 = load i32, i32* %5, align 4, !dbg !52
%7 = bitcast %union.pun* %3 to i32*, !dbg !53
store i32 %6, i32* %7, align 4, !dbg !54
%8 = bitcast %union.pun* %3 to float*, !dbg !55
%9 = load float, float* %8, align 4, !dbg !55
ret float %9, !dbg !56
store ptr %0, ptr %2, align 8
call void @llvm.dbg.declare(metadata ptr %2, metadata !43, metadata !DIExpression()), !dbg !44
call void @llvm.dbg.declare(metadata ptr %3, metadata !45, metadata !DIExpression()), !dbg !50
%4 = load ptr, ptr %2, align 8, !dbg !51
%5 = load i32, ptr %4, align 4, !dbg !52
store i32 %5, ptr %3, align 4, !dbg !54
%6 = load float, ptr %3, align 4, !dbg !55
ret float %6, !dbg !56
}

attributes #0 = { noinline nounwind optnone uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "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" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
Expand Down
17 changes: 7 additions & 10 deletions llvm/test/DebugInfo/COFF/unnamed.ll
Original file line number Diff line number Diff line change
Expand Up @@ -140,16 +140,13 @@ define i32 @main() #0 !dbg !7 {
entry:
%retval = alloca i32, align 4
%local = alloca %struct.named_struct, align 4
store i32 0, i32* %retval, align 4
call void @llvm.dbg.declare(metadata %struct.named_struct* %local, metadata !11, metadata !25), !dbg !26
%id = getelementptr inbounds %struct.named_struct, %struct.named_struct* %local, i32 0, i32 0, !dbg !27
store i32 1, i32* %id, align 4, !dbg !28
%unnamed_union = getelementptr inbounds %struct.named_struct, %struct.named_struct* %local, i32 0, i32 1, !dbg !29
%m1 = bitcast %union.anon* %unnamed_union to i32*, !dbg !30
store i32 65, i32* %m1, align 4, !dbg !31
%unnamed_struct = getelementptr inbounds %struct.named_struct, %struct.named_struct* %local, i32 0, i32 2, !dbg !32
%m3 = getelementptr inbounds %struct.anon, %struct.anon* %unnamed_struct, i32 0, i32 0, !dbg !33
store i8 66, i8* %m3, align 4, !dbg !34
store i32 0, ptr %retval, align 4
call void @llvm.dbg.declare(metadata ptr %local, metadata !11, metadata !25), !dbg !26
store i32 1, ptr %local, align 4, !dbg !28
%unnamed_union = getelementptr inbounds %struct.named_struct, ptr %local, i32 0, i32 1, !dbg !29
store i32 65, ptr %unnamed_union, align 4, !dbg !31
%unnamed_struct = getelementptr inbounds %struct.named_struct, ptr %local, i32 0, i32 2, !dbg !32
store i8 66, ptr %unnamed_struct, align 4, !dbg !34
ret i32 0, !dbg !35
}

Expand Down
20 changes: 9 additions & 11 deletions llvm/test/DebugInfo/COFF/vframe-csr.ll
Original file line number Diff line number Diff line change
Expand Up @@ -109,16 +109,14 @@ define dso_local i32 @realign_with_csrs() local_unnamed_addr #0 !dbg !8 {
entry:
%a = alloca i32, align 4
%force_alignment = alloca double, align 8
%0 = bitcast i32* %a to i8*, !dbg !22
call void @llvm.dbg.declare(metadata i32* %a, metadata !14, metadata !DIExpression()), !dbg !22
call void @llvm.dbg.declare(metadata ptr %a, metadata !14, metadata !DIExpression()), !dbg !22
%csr1 = tail call i32 @getval() #4
%call = tail call i32 @getval() #4, !dbg !22
store i32 %call, i32* %a, align 4, !dbg !22, !tbaa !17
%1 = bitcast double* %force_alignment to i8*, !dbg !23
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1) #4, !dbg !23
call void @llvm.dbg.declare(metadata double* %force_alignment, metadata !15, metadata !DIExpression()), !dbg !23
store double 4.200000e-01, double* %force_alignment, align 8, !dbg !23, !tbaa !24
call void @usevals(i32* nonnull %a, i32* nonnull %a, double* nonnull %force_alignment) #4, !dbg !26
store i32 %call, ptr %a, align 4, !dbg !22, !tbaa !17
call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %force_alignment) #4, !dbg !23
call void @llvm.dbg.declare(metadata ptr %force_alignment, metadata !15, metadata !DIExpression()), !dbg !23
store double 4.200000e-01, ptr %force_alignment, align 8, !dbg !23, !tbaa !24
call void @usevals(ptr nonnull %a, ptr nonnull %a, ptr nonnull %force_alignment) #4, !dbg !26
call void @usecsrs(i32 %csr1, i32 %csr1)
ret i32 0
}
Expand All @@ -127,16 +125,16 @@ entry:
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #2
declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #2

declare dso_local i32 @getval() local_unnamed_addr #3

declare dso_local void @usevals(i32*, i32*, double*) local_unnamed_addr #3
declare dso_local void @usevals(ptr, ptr, ptr) local_unnamed_addr #3

declare dso_local void @usecsrs(i32, i32) local_unnamed_addr #3

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #2
declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #2

attributes #0 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "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" "target-cpu"="pentium4" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone speculatable }
Expand Down
49 changes: 23 additions & 26 deletions llvm/test/DebugInfo/COFF/vframe-fpo.ll
Original file line number Diff line number Diff line change
Expand Up @@ -187,45 +187,42 @@ entry:
%a = alloca i32, align 4
%b = alloca i32, align 4
%c = alloca i32, align 4
%0 = bitcast i32* %a to i8*, !dbg !16
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %0) #4, !dbg !16
call void @llvm.dbg.declare(metadata i32* %a, metadata !13, metadata !DIExpression()), !dbg !16
store i32 1, i32* %a, align 4, !dbg !16, !tbaa !17
%1 = bitcast i32* %b to i8*, !dbg !21
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %1) #4, !dbg !21
call void @llvm.dbg.declare(metadata i32* %b, metadata !14, metadata !DIExpression()), !dbg !21
store i32 2, i32* %b, align 4, !dbg !21, !tbaa !17
%2 = bitcast i32* %c to i8*, !dbg !22
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %2) #4, !dbg !22
call void @llvm.dbg.declare(metadata i32* %c, metadata !15, metadata !DIExpression()), !dbg !22
store i32 3, i32* %c, align 4, !dbg !22, !tbaa !17
call void @"?f@@YAXAAH0@Z"(i32* nonnull dereferenceable(4) %a, i32* nonnull dereferenceable(4) %b) #5, !dbg !23
call void @"?g@@YAXAAH00@Z"(i32* nonnull dereferenceable(4) %a, i32* nonnull dereferenceable(4) %b, i32* nonnull dereferenceable(4) %c) #5, !dbg !24
%3 = load i32, i32* %a, align 4, !dbg !25, !tbaa !17
%4 = load i32, i32* %b, align 4, !dbg !25, !tbaa !17
%add = add nsw i32 %4, %3, !dbg !25
%5 = load i32, i32* %c, align 4, !dbg !25, !tbaa !17
%add1 = add nsw i32 %add, %5, !dbg !25
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %2) #4, !dbg !26
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %1) #4, !dbg !26
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %0) #4, !dbg !26
call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %a) #4, !dbg !16
call void @llvm.dbg.declare(metadata ptr %a, metadata !13, metadata !DIExpression()), !dbg !16
store i32 1, ptr %a, align 4, !dbg !16, !tbaa !17
call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %b) #4, !dbg !21
call void @llvm.dbg.declare(metadata ptr %b, metadata !14, metadata !DIExpression()), !dbg !21
store i32 2, ptr %b, align 4, !dbg !21, !tbaa !17
call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %c) #4, !dbg !22
call void @llvm.dbg.declare(metadata ptr %c, metadata !15, metadata !DIExpression()), !dbg !22
store i32 3, ptr %c, align 4, !dbg !22, !tbaa !17
call void @"?f@@YAXAAH0@Z"(ptr nonnull dereferenceable(4) %a, ptr nonnull dereferenceable(4) %b) #5, !dbg !23
call void @"?g@@YAXAAH00@Z"(ptr nonnull dereferenceable(4) %a, ptr nonnull dereferenceable(4) %b, ptr nonnull dereferenceable(4) %c) #5, !dbg !24
%0 = load i32, ptr %a, align 4, !dbg !25, !tbaa !17
%1 = load i32, ptr %b, align 4, !dbg !25, !tbaa !17
%add = add nsw i32 %1, %0, !dbg !25
%2 = load i32, ptr %c, align 4, !dbg !25, !tbaa !17
%add1 = add nsw i32 %add, %2, !dbg !25
call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %c) #4, !dbg !26
call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %b) #4, !dbg !26
call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %a) #4, !dbg !26
ret i32 %add1, !dbg !25
}

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1
declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #1

; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.declare(metadata, metadata, metadata) #2

; Function Attrs: optsize
declare dso_local void @"?f@@YAXAAH0@Z"(i32* dereferenceable(4), i32* dereferenceable(4)) local_unnamed_addr #3
declare dso_local void @"?f@@YAXAAH0@Z"(ptr dereferenceable(4), ptr dereferenceable(4)) local_unnamed_addr #3

; Function Attrs: optsize
declare dso_local void @"?g@@YAXAAH00@Z"(i32* dereferenceable(4), i32* dereferenceable(4), i32* dereferenceable(4)) local_unnamed_addr #3
declare dso_local void @"?g@@YAXAAH00@Z"(ptr dereferenceable(4), ptr dereferenceable(4), ptr dereferenceable(4)) local_unnamed_addr #3

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1
declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #1

attributes #0 = { norecurse optsize "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "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" "target-cpu"="pentium4" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { argmemonly nounwind }
Expand Down
122 changes: 58 additions & 64 deletions llvm/test/DebugInfo/COFF/virtual-method-kinds.ll

Large diffs are not rendered by default.

28 changes: 14 additions & 14 deletions llvm/test/DebugInfo/COFF/vtable-optzn-array.ll
Original file line number Diff line number Diff line change
Expand Up @@ -37,50 +37,50 @@ target triple = "x86_64-pc-windows-msvc"

%struct.GetFwdDecl = type { i8 }
%struct.UseCompleteType = type { [1 x %struct.UnicodeString] }
%struct.UnicodeString = type { i32 (...)** }
%struct.UnicodeString = type { ptr }

$"\01??_DUseCompleteType@@QEAA@XZ" = comdat any

@"\01?force_fwd_decl@@3UGetFwdDecl@@A" = global %struct.GetFwdDecl zeroinitializer, align 1, !dbg !0
@"\01?require_complete@@3UUseCompleteType@@A" = global %struct.UseCompleteType zeroinitializer, align 8, !dbg !6
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_t.cpp, i8* null }]
@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_t.cpp, ptr null }]

; Function Attrs: nounwind
define internal void @"\01??__Erequire_complete@@YAXXZ"() #0 !dbg !27 {
entry:
%call = call %struct.UseCompleteType* @"\01??0UseCompleteType@@QEAA@XZ"(%struct.UseCompleteType* @"\01?require_complete@@3UUseCompleteType@@A"), !dbg !30
%0 = call i32 @atexit(void ()* @"\01??__Frequire_complete@@YAXXZ") #2, !dbg !30
%call = call ptr @"\01??0UseCompleteType@@QEAA@XZ"(ptr @"\01?require_complete@@3UUseCompleteType@@A"), !dbg !30
%0 = call i32 @atexit(ptr @"\01??__Frequire_complete@@YAXXZ") #2, !dbg !30
ret void, !dbg !30
}

declare %struct.UseCompleteType* @"\01??0UseCompleteType@@QEAA@XZ"(%struct.UseCompleteType* returned) unnamed_addr #1
declare ptr @"\01??0UseCompleteType@@QEAA@XZ"(ptr returned) unnamed_addr #1

; Function Attrs: nounwind
define linkonce_odr void @"\01??_DUseCompleteType@@QEAA@XZ"(%struct.UseCompleteType* %this) unnamed_addr #0 comdat align 2 !dbg !31 {
define linkonce_odr void @"\01??_DUseCompleteType@@QEAA@XZ"(ptr %this) unnamed_addr #0 comdat align 2 !dbg !31 {
entry:
%this.addr = alloca %struct.UseCompleteType*, align 8
store %struct.UseCompleteType* %this, %struct.UseCompleteType** %this.addr, align 8
call void @llvm.dbg.declare(metadata %struct.UseCompleteType** %this.addr, metadata !32, metadata !34), !dbg !35
%this1 = load %struct.UseCompleteType*, %struct.UseCompleteType** %this.addr, align 8
call void @"\01??1UseCompleteType@@QEAA@XZ"(%struct.UseCompleteType* %this1), !dbg !36
%this.addr = alloca ptr, align 8
store ptr %this, ptr %this.addr, align 8
call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !32, metadata !34), !dbg !35
%this1 = load ptr, ptr %this.addr, align 8
call void @"\01??1UseCompleteType@@QEAA@XZ"(ptr %this1), !dbg !36
ret void, !dbg !36
}

; Function Attrs: nounwind

define internal void @"\01??__Frequire_complete@@YAXXZ"() #0 !dbg !37 {
entry:
call void @"\01??_DUseCompleteType@@QEAA@XZ"(%struct.UseCompleteType* @"\01?require_complete@@3UUseCompleteType@@A"), !dbg !38
call void @"\01??_DUseCompleteType@@QEAA@XZ"(ptr @"\01?require_complete@@3UUseCompleteType@@A"), !dbg !38
ret void, !dbg !39
}

; Function Attrs: nounwind
declare i32 @atexit(void ()*) #2
declare i32 @atexit(ptr) #2

; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #3

declare void @"\01??1UseCompleteType@@QEAA@XZ"(%struct.UseCompleteType*) unnamed_addr #1
declare void @"\01??1UseCompleteType@@QEAA@XZ"(ptr) unnamed_addr #1

; Function Attrs: nounwind
define internal void @_GLOBAL__sub_I_t.cpp() #0 !dbg !41 {
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/DebugInfo/COFF/x87-registers.ll
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ target triple = "x86_64-w64-windows-gnu"

define i32 @a() !dbg !8 {
entry:
call void @llvm.dbg.declare(metadata [6 x i8]* undef, metadata !13, metadata !DIExpression(DW_OP_LLVM_fragment, 80, 48)), !dbg !15
call void @llvm.dbg.declare(metadata ptr undef, metadata !13, metadata !DIExpression(DW_OP_LLVM_fragment, 80, 48)), !dbg !15
%0 = tail call x86_fp80 asm sideeffect "", "={st},~{dirflag},~{fpsr},~{flags}"(), !dbg !16, !srcloc !17
call void @llvm.dbg.value(metadata x86_fp80 %0, metadata !13, metadata !DIExpression()), !dbg !18
ret i32 undef, !dbg !19
Expand Down
8 changes: 4 additions & 4 deletions llvm/test/DebugInfo/Generic/2010-05-03-DisableFramePtr.ll
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
; Radar 7937664
%struct.AppleEvent = type opaque

define void @DisposeDMNotificationUPP(void (%struct.AppleEvent*)* %userUPP) "frame-pointer"="non-leaf" nounwind ssp {
define void @DisposeDMNotificationUPP(ptr %userUPP) "frame-pointer"="non-leaf" nounwind ssp {
entry:
%userUPP_addr = alloca void (%struct.AppleEvent*)* ; <void (%struct.AppleEvent*)**> [#uses=1]
%userUPP_addr = alloca ptr ; <ptr> [#uses=1]
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
call void @llvm.dbg.declare(metadata void (%struct.AppleEvent*)** %userUPP_addr, metadata !0, metadata !DIExpression(DW_OP_deref)), !dbg !13
store void (%struct.AppleEvent*)* %userUPP, void (%struct.AppleEvent*)** %userUPP_addr
call void @llvm.dbg.declare(metadata ptr %userUPP_addr, metadata !0, metadata !DIExpression(DW_OP_deref)), !dbg !13
store ptr %userUPP, ptr %userUPP_addr
br label %return, !dbg !14

return: ; preds = %entry
Expand Down
42 changes: 21 additions & 21 deletions llvm/test/DebugInfo/Generic/2010-05-03-OriginDIE.ll
Original file line number Diff line number Diff line change
Expand Up @@ -6,38 +6,38 @@
;XFAIL: target=xcore{{.*}}

%struct.anon = type { i64, i32, i32, i32, [1 x i32] }
%struct.gpm_t = type { i32, i8*, [16 x i8], i32, i64, i64, i64, i64, i64, i64, i32, i16, i16, [8 x %struct.gpmr_t] }
%struct.gpm_t = type { i32, ptr, [16 x i8], i32, i64, i64, i64, i64, i64, i64, i32, i16, i16, [8 x %struct.gpmr_t] }
%struct.gpmr_t = type { [48 x i8], [48 x i8], [16 x i8], i64, i64, i64, i64, i16 }
%struct.gpt_t = type { [8 x i8], i32, i32, i32, i32, i64, i64, i64, i64, [16 x i8], %struct.anon }

@llvm.used = appending global [1 x i8*] [i8* bitcast (void (%struct.gpm_t*, %struct.gpt_t*)* @gpt2gpm to i8*)], section "llvm.metadata" ; <[1 x i8*]*> [#uses=0]
@llvm.used = appending global [1 x ptr] [ptr @gpt2gpm], section "llvm.metadata" ; <ptr> [#uses=0]

define fastcc void @gpt2gpm(%struct.gpm_t* %gpm, %struct.gpt_t* %gpt) nounwind optsize ssp {
define fastcc void @gpt2gpm(ptr %gpm, ptr %gpt) nounwind optsize ssp {
entry:
%data_addr.i18 = alloca i64, align 8 ; <i64*> [#uses=1]
%data_addr.i17 = alloca i64, align 8 ; <i64*> [#uses=2]
%data_addr.i16 = alloca i64, align 8 ; <i64*> [#uses=0]
%data_addr.i15 = alloca i32, align 4 ; <i32*> [#uses=0]
%data_addr.i = alloca i64, align 8 ; <i64*> [#uses=0]
%0 = getelementptr inbounds %struct.gpm_t, %struct.gpm_t* %gpm, i32 0, i32 2, i32 0 ; <i8*> [#uses=1]
%1 = getelementptr inbounds %struct.gpt_t, %struct.gpt_t* %gpt, i32 0, i32 9, i32 0 ; <i8*> [#uses=1]
call void @uuid_LtoB(i8* %0, i8* %1) nounwind, !dbg !0
%a9 = load volatile i64, i64* %data_addr.i18, align 8 ; <i64> [#uses=1]
%data_addr.i18 = alloca i64, align 8 ; <ptr> [#uses=1]
%data_addr.i17 = alloca i64, align 8 ; <ptr> [#uses=2]
%data_addr.i16 = alloca i64, align 8 ; <ptr> [#uses=0]
%data_addr.i15 = alloca i32, align 4 ; <ptr> [#uses=0]
%data_addr.i = alloca i64, align 8 ; <ptr> [#uses=0]
%0 = getelementptr inbounds %struct.gpm_t, ptr %gpm, i32 0, i32 2, i32 0 ; <ptr> [#uses=1]
%1 = getelementptr inbounds %struct.gpt_t, ptr %gpt, i32 0, i32 9, i32 0 ; <ptr> [#uses=1]
call void @uuid_LtoB(ptr %0, ptr %1) nounwind, !dbg !0
%a9 = load volatile i64, ptr %data_addr.i18, align 8 ; <i64> [#uses=1]
%a10 = call i64 @llvm.bswap.i64(i64 %a9) nounwind ; <i64> [#uses=1]
%a11 = getelementptr inbounds %struct.gpt_t, %struct.gpt_t* %gpt, i32 0, i32 8, !dbg !7 ; <i64*> [#uses=1]
%a12 = load i64, i64* %a11, align 4, !dbg !7 ; <i64> [#uses=1]
call void @llvm.dbg.declare(metadata i64* %data_addr.i17, metadata !8, metadata !DIExpression()) nounwind, !dbg !14
store i64 %a12, i64* %data_addr.i17, align 8
%a11 = getelementptr inbounds %struct.gpt_t, ptr %gpt, i32 0, i32 8, !dbg !7 ; <ptr> [#uses=1]
%a12 = load i64, ptr %a11, align 4, !dbg !7 ; <i64> [#uses=1]
call void @llvm.dbg.declare(metadata ptr %data_addr.i17, metadata !8, metadata !DIExpression()) nounwind, !dbg !14
store i64 %a12, ptr %data_addr.i17, align 8
call void @llvm.dbg.value(metadata !6, metadata !15, metadata !DIExpression()) nounwind, !dbg !DILocation(scope: !16)
call void @llvm.dbg.value(metadata i32 0, metadata !19, metadata !DIExpression()) nounwind, !dbg !DILocation(scope: !16)
call void @llvm.dbg.declare(metadata !6, metadata !23, metadata !DIExpression()) nounwind, !dbg !DILocation(scope: !24)
call void @llvm.dbg.value(metadata i64* %data_addr.i17, metadata !34, metadata !DIExpression(DW_OP_deref)) nounwind, !dbg !DILocation(scope: !24)
%a13 = load volatile i64, i64* %data_addr.i17, align 8 ; <i64> [#uses=1]
call void @llvm.dbg.value(metadata ptr %data_addr.i17, metadata !34, metadata !DIExpression(DW_OP_deref)) nounwind, !dbg !DILocation(scope: !24)
%a13 = load volatile i64, ptr %data_addr.i17, align 8 ; <i64> [#uses=1]
%a14 = call i64 @llvm.bswap.i64(i64 %a13) nounwind ; <i64> [#uses=2]
%a15 = add i64 %a10, %a14, !dbg !7 ; <i64> [#uses=1]
%a16 = sub i64 %a15, %a14 ; <i64> [#uses=1]
%a17 = getelementptr inbounds %struct.gpm_t, %struct.gpm_t* %gpm, i32 0, i32 5, !dbg !7 ; <i64*> [#uses=1]
store i64 %a16, i64* %a17, align 4, !dbg !7
%a17 = getelementptr inbounds %struct.gpm_t, ptr %gpm, i32 0, i32 5, !dbg !7 ; <ptr> [#uses=1]
store i64 %a16, ptr %a17, align 4, !dbg !7
ret void, !dbg !7
}

Expand All @@ -49,7 +49,7 @@ declare i32 @llvm.bswap.i32(i32) nounwind readnone

declare i64 @llvm.bswap.i64(i64) nounwind readnone

declare void @uuid_LtoB(i8*, i8*)
declare void @uuid_LtoB(ptr, ptr)

!llvm.dbg.cu = !{!4}
!llvm.module.flags = !{!41}
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/DebugInfo/Generic/2010-06-29-InlinedFnLocalVar.ll
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ declare void @llvm.dbg.value(metadata, metadata, metadata) #0
; Function Attrs: nounwind ssp
define i32 @bar() #1 !dbg !8 {
entry:
%0 = load i32, i32* @i, align 4, !dbg !11
%0 = load i32, ptr @i, align 4, !dbg !11
tail call void @llvm.dbg.value(metadata i32 %0, metadata !13, metadata !24), !dbg !25
tail call void @llvm.dbg.declare(metadata !5, metadata !18, metadata !24), !dbg !26
%1 = mul nsw i32 %0, %0, !dbg !27
store i32 %1, i32* @i, align 4, !dbg !11
store i32 %1, ptr @i, align 4, !dbg !11
ret i32 %1, !dbg !28
}

Expand Down
6 changes: 3 additions & 3 deletions llvm/test/DebugInfo/Generic/2010-10-01-crash.ll
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
; RUN: llc -O0 %s -o /dev/null

define void @CGRectStandardize(i32* sret(i32) %agg.result, i32* byval(i32) %rect) nounwind ssp !dbg !0 {
define void @CGRectStandardize(ptr sret(i32) %agg.result, ptr byval(i32) %rect) nounwind ssp !dbg !0 {
entry:
call void @llvm.dbg.declare(metadata i32* %rect, metadata !23, metadata !DIExpression()), !dbg !24
call void @llvm.dbg.declare(metadata ptr %rect, metadata !23, metadata !DIExpression()), !dbg !24
ret void
}

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

declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i1) nounwind
declare void @llvm.memcpy.p0.p0.i32(ptr nocapture, ptr nocapture, i32, i1) nounwind


!llvm.dbg.cu = !{!2}
Expand Down
7 changes: 3 additions & 4 deletions llvm/test/DebugInfo/Generic/DICommonBlock.ll
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,9 @@ target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
@common_a = common global [32 x i8] zeroinitializer, align 8, !dbg !13, !dbg !15

define i32 @subr() !dbg !9 {
%1 = getelementptr inbounds [32 x i8], [32 x i8]* @common_a, i64 0, i32 8
%2 = bitcast i8* %1 to i32*
%3 = load i32, i32* %2
ret i32 %3
%1 = getelementptr inbounds [32 x i8], ptr @common_a, i64 0, i32 8
%2 = load i32, ptr %1
ret i32 %2
}

!llvm.dbg.cu = !{!0}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,13 @@ entry:
;; There are currently no plans to support DIArgLists for the address component.
; CHECK-LABEL: @fun5
; CHECK: %local = alloca i32, align 4, !DIAssignID ![[ID5:[0-9]+]]
; CHECK-NEXT: llvm.dbg.assign(metadata i32 %v, metadata ![[VAR5:[0-9]+]], metadata !DIExpression(), metadata ![[ID5]], metadata i32* %local, metadata !DIExpression()), !dbg ![[DBG5:[0-9]+]]
; CHECK-NEXT: llvm.dbg.assign(metadata !DIArgList(i32 %v, i32 1), metadata ![[VAR5]], metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_minus, DW_OP_stack_value), metadata ![[ID5]], metadata i32* %local, metadata !DIExpression()), !dbg ![[DBG5]]
; CHECK-NEXT: llvm.dbg.assign(metadata i32 %v, metadata ![[VAR5:[0-9]+]], metadata !DIExpression(), metadata ![[ID5]], metadata ptr %local, metadata !DIExpression()), !dbg ![[DBG5:[0-9]+]]
; CHECK-NEXT: llvm.dbg.assign(metadata !DIArgList(i32 %v, i32 1), metadata ![[VAR5]], metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_minus, DW_OP_stack_value), metadata ![[ID5]], metadata ptr %local, metadata !DIExpression()), !dbg ![[DBG5]]
define dso_local void @fun5(i32 %v) !dbg !27 {
entry:
%local = alloca i32, align 4, !DIAssignID !30
call void @llvm.dbg.assign(metadata i32 %v, metadata !28, metadata !DIExpression(), metadata !30, metadata i32* %local, metadata !DIExpression()), !dbg !29
call void @llvm.dbg.assign(metadata !DIArgList(i32 %v, i32 1), metadata !28, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_minus, DW_OP_stack_value), metadata !30, metadata i32* %local, metadata !DIExpression()), !dbg !29
call void @llvm.dbg.assign(metadata i32 %v, metadata !28, metadata !DIExpression(), metadata !30, metadata ptr %local, metadata !DIExpression()), !dbg !29
call void @llvm.dbg.assign(metadata !DIArgList(i32 %v, i32 1), metadata !28, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_minus, DW_OP_stack_value), metadata !30, metadata ptr %local, metadata !DIExpression()), !dbg !29
ret void
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,17 @@ entry:

;; Each following dbg.assign has an argument of the incorrect type.
; CHECK: invalid llvm.dbg.assign intrinsic address/value
call void @llvm.dbg.assign(metadata !3, metadata !10, metadata !DIExpression(), metadata !14, metadata i32* undef, metadata !DIExpression()), !dbg !13
call void @llvm.dbg.assign(metadata !3, metadata !10, metadata !DIExpression(), metadata !14, metadata ptr undef, metadata !DIExpression()), !dbg !13
; CHECK: invalid llvm.dbg.assign intrinsic variable
call void @llvm.dbg.assign(metadata i32 0, metadata !2, metadata !DIExpression(), metadata !14, metadata i32* undef, metadata !DIExpression()), !dbg !13
call void @llvm.dbg.assign(metadata i32 0, metadata !2, metadata !DIExpression(), metadata !14, metadata ptr undef, metadata !DIExpression()), !dbg !13
; CHECK: invalid llvm.dbg.assign intrinsic expression
call void @llvm.dbg.assign(metadata !14, metadata !10, metadata !2, metadata !14, metadata i32* undef, metadata !DIExpression()), !dbg !13
call void @llvm.dbg.assign(metadata !14, metadata !10, metadata !2, metadata !14, metadata ptr undef, metadata !DIExpression()), !dbg !13
; CHECK: invalid llvm.dbg.assign intrinsic DIAssignID
call void @llvm.dbg.assign(metadata !14, metadata !10, metadata !DIExpression(), metadata !2, metadata i32* undef, metadata !DIExpression()), !dbg !13
call void @llvm.dbg.assign(metadata !14, metadata !10, metadata !DIExpression(), metadata !2, metadata ptr undef, metadata !DIExpression()), !dbg !13
; CHECK: invalid llvm.dbg.assign intrinsic address
call void @llvm.dbg.assign(metadata !14, metadata !10, metadata !DIExpression(), metadata !14, metadata !3, metadata !DIExpression()), !dbg !13
; CHECK: invalid llvm.dbg.assign intrinsic address expression
call void @llvm.dbg.assign(metadata !14, metadata !10, metadata !DIExpression(), metadata !14, metadata i32* undef, metadata !2), !dbg !13
call void @llvm.dbg.assign(metadata !14, metadata !10, metadata !DIExpression(), metadata !14, metadata ptr undef, metadata !2), !dbg !13
ret void
}

Expand Down
32 changes: 15 additions & 17 deletions llvm/test/DebugInfo/Generic/block-asan.ll
Original file line number Diff line number Diff line change
Expand Up @@ -17,28 +17,26 @@

target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"

%struct.__block_byref_x = type { i8*, %struct.__block_byref_x*, i32, i32, i32 }
%struct.__block_byref_x = type { ptr, ptr, i32, i32, i32 }

; Function Attrs: nounwind ssp uwtable
define void @foo() #0 !dbg !4 {
entry:
%x = alloca %struct.__block_byref_x, align 8
call void @llvm.dbg.declare(metadata %struct.__block_byref_x* %x, metadata !12, metadata !22), !dbg !23
%byref.isa = getelementptr inbounds %struct.__block_byref_x, %struct.__block_byref_x* %x, i32 0, i32 0, !dbg !24
store i8* null, i8** %byref.isa, !dbg !24
%byref.forwarding = getelementptr inbounds %struct.__block_byref_x, %struct.__block_byref_x* %x, i32 0, i32 1, !dbg !24
store %struct.__block_byref_x* %x, %struct.__block_byref_x** %byref.forwarding, !dbg !24
%byref.flags = getelementptr inbounds %struct.__block_byref_x, %struct.__block_byref_x* %x, i32 0, i32 2, !dbg !24
store i32 0, i32* %byref.flags, !dbg !24
%byref.size = getelementptr inbounds %struct.__block_byref_x, %struct.__block_byref_x* %x, i32 0, i32 3, !dbg !24
store i32 32, i32* %byref.size, !dbg !24
%forwarding = getelementptr inbounds %struct.__block_byref_x, %struct.__block_byref_x* %x, i32 0, i32 1, !dbg !25
%0 = load %struct.__block_byref_x*, %struct.__block_byref_x** %forwarding, !dbg !25
%x1 = getelementptr inbounds %struct.__block_byref_x, %struct.__block_byref_x* %0, i32 0, i32 4, !dbg !25
%1 = load i32, i32* %x1, align 4, !dbg !25
call void @llvm.dbg.declare(metadata ptr %x, metadata !12, metadata !22), !dbg !23
store ptr null, ptr %x, !dbg !24
%byref.forwarding = getelementptr inbounds %struct.__block_byref_x, ptr %x, i32 0, i32 1, !dbg !24
store ptr %x, ptr %byref.forwarding, !dbg !24
%byref.flags = getelementptr inbounds %struct.__block_byref_x, ptr %x, i32 0, i32 2, !dbg !24
store i32 0, ptr %byref.flags, !dbg !24
%byref.size = getelementptr inbounds %struct.__block_byref_x, ptr %x, i32 0, i32 3, !dbg !24
store i32 32, ptr %byref.size, !dbg !24
%forwarding = getelementptr inbounds %struct.__block_byref_x, ptr %x, i32 0, i32 1, !dbg !25
%0 = load ptr, ptr %forwarding, !dbg !25
%x1 = getelementptr inbounds %struct.__block_byref_x, ptr %0, i32 0, i32 4, !dbg !25
%1 = load i32, ptr %x1, align 4, !dbg !25
call void @bar(i32 %1), !dbg !25
%2 = bitcast %struct.__block_byref_x* %x to i8*, !dbg !26
call void @_Block_object_dispose(i8* %2, i32 8) #3, !dbg !26
call void @_Block_object_dispose(ptr %x, i32 8) #3, !dbg !26
ret void, !dbg !26
}

Expand All @@ -47,7 +45,7 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

declare void @bar(i32) #2

declare void @_Block_object_dispose(i8*, i32)
declare void @_Block_object_dispose(ptr, i32)

attributes #0 = { nounwind ssp uwtable sanitize_address "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone }
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/DebugInfo/Generic/callsite-attr-invalid.ll
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@
define void @_Z3foov() !dbg !8 {
entry:
%x = alloca %struct.A, align 1
call void @llvm.dbg.declare(metadata %struct.A* %x, metadata !12, metadata !DIExpression()), !dbg !19
call void @_ZN1AD1Ev(%struct.A* %x) #3, !dbg !20
call void @llvm.dbg.declare(metadata ptr %x, metadata !12, metadata !DIExpression()), !dbg !19
call void @_ZN1AD1Ev(ptr %x) #3, !dbg !20
ret void, !dbg !20
}

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

declare void @_ZN1AD1Ev(%struct.A*)
declare void @_ZN1AD1Ev(ptr)

!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!3, !4, !5, !6}
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/DebugInfo/Generic/constant-pointers.ll
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
; these could be signless data (dataN).

; Built with Clang from:
; template <void *V, void (*F)(), int i>
; template <ptr V, void (*F)(), int i>
; void func() {}
; template void func<nullptr, nullptr, 42>();

Expand Down
2 changes: 1 addition & 1 deletion llvm/test/DebugInfo/Generic/containing-type-extension.ll
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
define i32 @main() #0 !dbg !4 {
entry:
%retval = alloca i32, align 4
store i32 0, i32* %retval
store i32 0, ptr %retval
ret i32 0, !dbg !10
}

Expand Down
6 changes: 3 additions & 3 deletions llvm/test/DebugInfo/Generic/cross-cu-inlining-ranges.ll
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ define void @foo() !dbg !6 {
ret void, !dbg !9
}

define void @bar(i32* %0) !dbg !15 {
store i32 1, i32* %0, align 4, !dbg !16
store i32 1, i32* %0, align 4, !dbg !21
define void @bar(ptr %0) !dbg !15 {
store i32 1, ptr %0, align 4, !dbg !16
store i32 1, ptr %0, align 4, !dbg !21
ret void, !dbg !16
}

Expand Down
28 changes: 13 additions & 15 deletions llvm/test/DebugInfo/Generic/cross-cu-inlining.ll
Original file line number Diff line number Diff line change
Expand Up @@ -70,26 +70,24 @@ define i32 @main() #0 !dbg !4 {
entry:
%x.addr.i = alloca i32, align 4
%retval = alloca i32, align 4
store i32 0, i32* %retval
%0 = load i32, i32* @i, align 4, !dbg !19
%1 = bitcast i32* %x.addr.i to i8*
call void @llvm.lifetime.start(i64 4, i8* %1)
store i32 %0, i32* %x.addr.i, align 4
call void @llvm.dbg.declare(metadata i32* %x.addr.i, metadata !120, metadata !DIExpression()), !dbg !21
%2 = load i32, i32* %x.addr.i, align 4, !dbg !22
%mul.i = mul nsw i32 %2, 2, !dbg !22
%3 = bitcast i32* %x.addr.i to i8*, !dbg !22
call void @llvm.lifetime.end(i64 4, i8* %3), !dbg !22
store i32 0, ptr %retval
%0 = load i32, ptr @i, align 4, !dbg !19
call void @llvm.lifetime.start(i64 4, ptr %x.addr.i)
store i32 %0, ptr %x.addr.i, align 4
call void @llvm.dbg.declare(metadata ptr %x.addr.i, metadata !120, metadata !DIExpression()), !dbg !21
%1 = load i32, ptr %x.addr.i, align 4, !dbg !22
%mul.i = mul nsw i32 %1, 2, !dbg !22
call void @llvm.lifetime.end(i64 4, ptr %x.addr.i), !dbg !22
ret i32 %mul.i, !dbg !19
}

; Function Attrs: alwaysinline nounwind uwtable
define i32 @_Z4funci(i32 %x) #1 !dbg !12 {
entry:
%x.addr = alloca i32, align 4
store i32 %x, i32* %x.addr, align 4
call void @llvm.dbg.declare(metadata i32* %x.addr, metadata !20, metadata !DIExpression()), !dbg !23
%0 = load i32, i32* %x.addr, align 4, !dbg !24
store i32 %x, ptr %x.addr, align 4
call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !20, metadata !DIExpression()), !dbg !23
%0 = load i32, ptr %x.addr, align 4, !dbg !24
%mul = mul nsw i32 %0, 2, !dbg !24
ret i32 %mul, !dbg !24
}
Expand All @@ -98,10 +96,10 @@ entry:
declare void @llvm.dbg.declare(metadata, metadata, metadata) #2

; Function Attrs: nounwind
declare void @llvm.lifetime.start(i64, i8* nocapture) #3
declare void @llvm.lifetime.start(i64, ptr nocapture) #3

; Function Attrs: nounwind
declare void @llvm.lifetime.end(i64, i8* nocapture) #3
declare void @llvm.lifetime.end(i64, ptr nocapture) #3

attributes #0 = { uwtable "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { alwaysinline nounwind uwtable "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
Expand Down
10 changes: 5 additions & 5 deletions llvm/test/DebugInfo/Generic/cross-cu-linkonce-distinct.ll
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,15 @@

source_filename = "test/DebugInfo/Generic/cross-cu-linkonce-distinct.ll"

@x = global i32 (i32)* @_Z4funci, align 8, !dbg !0
@y = global i32 (i32)* @_Z4funci, align 8, !dbg !7
@x = global ptr @_Z4funci, align 8, !dbg !0
@y = global ptr @_Z4funci, align 8, !dbg !7

; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr i32 @_Z4funci(i32 %i) #0 !dbg !18 {
%1 = alloca i32, align 4
store i32 %i, i32* %1, align 4
call void @llvm.dbg.declare(metadata i32* %1, metadata !19, metadata !20), !dbg !21
%2 = load i32, i32* %1, align 4, !dbg !22
store i32 %i, ptr %1, align 4
call void @llvm.dbg.declare(metadata ptr %1, metadata !19, metadata !20), !dbg !21
%2 = load i32, ptr %1, align 4, !dbg !22
%3 = mul nsw i32 %2, 2, !dbg !22
ret i32 %3, !dbg !22
}
Expand Down
10 changes: 5 additions & 5 deletions llvm/test/DebugInfo/Generic/cross-cu-linkonce.ll
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,15 @@

source_filename = "test/DebugInfo/Generic/cross-cu-linkonce.ll"

@x = global i32 (i32)* @_Z4funci, align 8, !dbg !0
@y = global i32 (i32)* @_Z4funci, align 8, !dbg !7
@x = global ptr @_Z4funci, align 8, !dbg !0
@y = global ptr @_Z4funci, align 8, !dbg !7

; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr i32 @_Z4funci(i32 %i) #0 !dbg !19 {
%1 = alloca i32, align 4
store i32 %i, i32* %1, align 4
call void @llvm.dbg.declare(metadata i32* %1, metadata !20, metadata !21), !dbg !22
%2 = load i32, i32* %1, align 4, !dbg !23
store i32 %i, ptr %1, align 4
call void @llvm.dbg.declare(metadata ptr %1, metadata !20, metadata !21), !dbg !22
%2 = load i32, ptr %1, align 4, !dbg !23
%3 = mul nsw i32 %2, 2, !dbg !23
ret i32 %3, !dbg !23
}
Expand Down
16 changes: 8 additions & 8 deletions llvm/test/DebugInfo/Generic/cu-range-hole.ll
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
define i32 @b(i32 %c) #0 !dbg !5 {
entry:
%c.addr = alloca i32, align 4
store i32 %c, i32* %c.addr, align 4
call void @llvm.dbg.declare(metadata i32* %c.addr, metadata !13, metadata !DIExpression()), !dbg !14
%0 = load i32, i32* %c.addr, align 4, !dbg !14
store i32 %c, ptr %c.addr, align 4
call void @llvm.dbg.declare(metadata ptr %c.addr, metadata !13, metadata !DIExpression()), !dbg !14
%0 = load i32, ptr %c.addr, align 4, !dbg !14
%add = add nsw i32 %0, 1, !dbg !14
ret i32 %add, !dbg !14
}
Expand All @@ -27,8 +27,8 @@ entry:
define i32 @a(i32 %b) #0 {
entry:
%b.addr = alloca i32, align 4
store i32 %b, i32* %b.addr, align 4
%0 = load i32, i32* %b.addr, align 4
store i32 %b, ptr %b.addr, align 4
%0 = load i32, ptr %b.addr, align 4
%add = add nsw i32 %0, 1
ret i32 %add
}
Expand All @@ -40,9 +40,9 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
define i32 @d(i32 %e) #0 !dbg !10 {
entry:
%e.addr = alloca i32, align 4
store i32 %e, i32* %e.addr, align 4
call void @llvm.dbg.declare(metadata i32* %e.addr, metadata !15, metadata !DIExpression()), !dbg !16
%0 = load i32, i32* %e.addr, align 4, !dbg !16
store i32 %e, ptr %e.addr, align 4
call void @llvm.dbg.declare(metadata ptr %e.addr, metadata !15, metadata !DIExpression()), !dbg !16
%0 = load i32, ptr %e.addr, align 4, !dbg !16
%add = add nsw i32 %0, 1, !dbg !16
ret i32 %add, !dbg !16
}
Expand Down
12 changes: 6 additions & 6 deletions llvm/test/DebugInfo/Generic/cu-ranges.ll
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
define i32 @foo(i32 %a) #0 section "__TEXT,__foo" !dbg !4 {
entry:
%a.addr = alloca i32, align 4
store i32 %a, i32* %a.addr, align 4
call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !13, metadata !DIExpression()), !dbg !14
%0 = load i32, i32* %a.addr, align 4, !dbg !15
store i32 %a, ptr %a.addr, align 4
call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !13, metadata !DIExpression()), !dbg !14
%0 = load i32, ptr %a.addr, align 4, !dbg !15
%add = add nsw i32 %0, 5, !dbg !15
ret i32 %add, !dbg !15
}
Expand All @@ -34,9 +34,9 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
define i32 @bar(i32 %a) #0 !dbg !9 {
entry:
%a.addr = alloca i32, align 4
store i32 %a, i32* %a.addr, align 4
call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !16, metadata !DIExpression()), !dbg !17
%0 = load i32, i32* %a.addr, align 4, !dbg !18
store i32 %a, ptr %a.addr, align 4
call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !16, metadata !DIExpression()), !dbg !17
%0 = load i32, ptr %a.addr, align 4, !dbg !18
%add = add nsw i32 %0, 5, !dbg !18
ret i32 %add, !dbg !18
}
Expand Down
26 changes: 13 additions & 13 deletions llvm/test/DebugInfo/Generic/dbg-value-lower-linenos.ll
Original file line number Diff line number Diff line change
Expand Up @@ -26,24 +26,24 @@
; CHECK-NEXT: dbg.value(metadata i32 %toret, {{.*}}), !dbg ![[UNKNOWN]]
; CHECK-NEXT: ret i32 %toret

define i32 @foo(i32 *%bees, i32 *%output) {
define i32 @foo(ptr %bees, ptr %output) {
entry:
%bar = alloca i32
call void @llvm.dbg.declare(metadata i32 *%bar, metadata !7, metadata !DIExpression()), !dbg !6
store i32 0, i32 *%bar
call void @llvm.dbg.declare(metadata ptr %bar, metadata !7, metadata !DIExpression()), !dbg !6
store i32 0, ptr %bar
br label %bb1, !dbg !6

bb1:
%totest = load i32, i32 *%bees, !dbg !8
%load1 = load i32, i32 *%bar, !dbg !9
%totest = load i32, ptr %bees, !dbg !8
%load1 = load i32, ptr %bar, !dbg !9
%add = add i32 %load1, 1, !dbg !10
store i32 %add, i32 *%bar, !dbg !11
store i32 %add, ptr %bar, !dbg !11
%toret = add i32 %add, 2, !dbg !12
%cond = icmp ult i32 %totest, %load1, !dbg !13
br i1 %cond, label %bb1, label %bb2, !dbg !14

bb2:
store i32 %toret, i32 *%bar, !dbg !16
store i32 %toret, ptr %bar, !dbg !16
ret i32 %toret
}

Expand All @@ -54,7 +54,7 @@ bb2:
; CHECK: dbg.value(metadata i32 %map, metadata ![[MAPVAR:[0-9]+]],{{.*}}),
; CHECK-SAME: !dbg ![[UNKNOWN2:[0-9]+]]
; CHECK-NEXT: store
; CHECK-NEXT: dbg.value(metadata i32* %map.addr, metadata ![[MAPVAR]],
; CHECK-NEXT: dbg.value(metadata ptr %map.addr, metadata ![[MAPVAR]],
; CHECK-SAME: metadata !DIExpression(DW_OP_deref)),
; CHECK-SAME: !dbg ![[UNKNOWN2]]
; CHECK-NEXT: call
Expand All @@ -65,11 +65,11 @@ bb2:
define void @bar(i32 %map) !dbg !20 {
entry:
%map.addr = alloca i32, align 4
store i32 %map, i32* %map.addr, align 4, !dbg !27
call void @llvm.dbg.declare(metadata i32* %map.addr, metadata !21, metadata !DIExpression()), !dbg !22
%call = call i32 (i32*, ...) bitcast (i32 (...)* @lookup to i32 (i32*, ...)*)(i32* %map.addr), !dbg !23
%0 = load i32, i32* %map.addr, align 4, !dbg !24
%call1 = call i32 (i32, ...) bitcast (i32 (...)* @verify to i32 (i32, ...)*)(i32 %0), !dbg !25
store i32 %map, ptr %map.addr, align 4, !dbg !27
call void @llvm.dbg.declare(metadata ptr %map.addr, metadata !21, metadata !DIExpression()), !dbg !22
%call = call i32 (ptr, ...) @lookup(ptr %map.addr), !dbg !23
%0 = load i32, ptr %map.addr, align 4, !dbg !24
%call1 = call i32 (i32, ...) @verify(i32 %0), !dbg !25
ret void, !dbg !26
}

Expand Down
4 changes: 2 additions & 2 deletions llvm/test/DebugInfo/Generic/dead-argument-order.ll
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
; Function Attrs: nounwind readnone uwtable
define i32 @_Z8function1Si(i32 %s.coerce, i32 %i) #0 !dbg !9 {
entry:
tail call void @llvm.dbg.declare(metadata %struct.S* undef, metadata !14, metadata !DIExpression()), !dbg !20
tail call void @llvm.dbg.declare(metadata ptr undef, metadata !14, metadata !DIExpression()), !dbg !20
tail call void @llvm.dbg.value(metadata i32 %i, metadata !15, metadata !DIExpression()), !dbg !20
%add = add nsw i32 %i, %s.coerce, !dbg !20
ret i32 %add, !dbg !20
Expand Down Expand Up @@ -73,6 +73,6 @@ attributes #1 = { nounwind readnone }
!16 = !{i32 2, !"Dwarf Version", i32 4}
!17 = !{i32 2, !"Debug Info Version", i32 3}
!18 = !{!"clang version 3.5.0 "}
!19 = !{%struct.S* undef}
!19 = !{ptr undef}
!20 = !DILocation(line: 2, scope: !9)

23 changes: 11 additions & 12 deletions llvm/test/DebugInfo/Generic/debug-info-always-inline.ll
Original file line number Diff line number Diff line change
Expand Up @@ -77,12 +77,11 @@ define i32 @_Z3foov() #0 {
entry:
%arr = alloca [10 x i32], align 16
%sum = alloca i32, align 4
call void @llvm.dbg.declare(metadata [10 x i32]* %arr, metadata !14), !dbg !18
%arrayidx = getelementptr inbounds [10 x i32], [10 x i32]* %arr, i32 0, i64 0, !dbg !19
store i32 5, i32* %arrayidx, align 4, !dbg !19
call void @llvm.dbg.declare(metadata i32* %sum, metadata !20), !dbg !21
store i32 4, i32* %sum, align 4, !dbg !21
%0 = load i32, i32* %sum, align 4, !dbg !22
call void @llvm.dbg.declare(metadata ptr %arr, metadata !14), !dbg !18
store i32 5, ptr %arr, align 4, !dbg !19
call void @llvm.dbg.declare(metadata ptr %sum, metadata !20), !dbg !21
store i32 4, ptr %sum, align 4, !dbg !21
%0 = load i32, ptr %sum, align 4, !dbg !22
ret i32 %0, !dbg !22
}

Expand All @@ -94,12 +93,12 @@ define i32 @main() #2 {
entry:
%retval = alloca i32, align 4
%i = alloca i32, align 4
store i32 0, i32* %retval
store i32 0, ptr %retval
call void @_Z3barv(), !dbg !23
call void @llvm.dbg.declare(metadata i32* %i, metadata !24), !dbg !25
call void @llvm.dbg.declare(metadata ptr %i, metadata !24), !dbg !25
%call = call i32 @_Z3foov(), !dbg !25
store i32 %call, i32* %i, align 4, !dbg !25
%0 = load i32, i32* %i, align 4, !dbg !26
store i32 %call, ptr %i, align 4, !dbg !25
%0 = load i32, ptr %i, align 4, !dbg !26
ret i32 %0, !dbg !26
}

Expand All @@ -118,13 +117,13 @@ attributes #3 = { "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-f
!1 = !{!"<stdin>", !"/home/user/test"}
!2 = !{}
!3 = !{!4, !10}
!4 = !{i32 786478, !5, !6, !"foo", !"foo", !"_Z3foov", i32 1, !7, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 ()* @_Z3foov, null, null, !2, i32 2} ; [ DW_TAG_subprogram ] [line 1] [def] [scope 2] [foo]
!4 = !{i32 786478, !5, !6, !"foo", !"foo", !"_Z3foov", i32 1, !7, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, ptr @_Z3foov, null, null, !2, i32 2} ; [ DW_TAG_subprogram ] [line 1] [def] [scope 2] [foo]
!5 = !{!"test.cpp", !"/home/user/test"}
!6 = !{i32 786473, !5} ; [ DW_TAG_file_type ] [/home/user/test/test.cpp]
!7 = !{i32 786453, i32 0, null, !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, !8, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!8 = !{!9}
!9 = !{i32 786468, null, null, !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]
!10 = !{i32 786478, !5, !6, !"main", !"main", !"", i32 11, !7, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 ()* @main, null, null, !2, i32 12} ; [ DW_TAG_subprogram ] [line 11] [def] [scope 12] [main]
!10 = !{i32 786478, !5, !6, !"main", !"main", !"", i32 11, !7, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, ptr @main, null, null, !2, i32 12} ; [ DW_TAG_subprogram ] [line 11] [def] [scope 12] [main]
!11 = !{i32 2, !"Dwarf Version", i32 4}
!12 = !{i32 2, !"Debug Info Version", i32 1}
!13 = !{!"clang version 3.6.0 (217844)"}
Expand Down
14 changes: 7 additions & 7 deletions llvm/test/DebugInfo/Generic/debug-info-qualifiers.ll
Original file line number Diff line number Diff line change
Expand Up @@ -38,20 +38,20 @@ define void @_Z1gv() #0 !dbg !17 {
%a = alloca %class.A, align 1
%pl = alloca { i64, i64 }, align 8
%pr = alloca { i64, i64 }, align 8
call void @llvm.dbg.declare(metadata %class.A* %a, metadata !24, metadata !DIExpression()), !dbg !25
call void @llvm.dbg.declare(metadata { i64, i64 }* %pl, metadata !26, metadata !DIExpression()), !dbg !31
store { i64, i64 } { i64 ptrtoint (void (%class.A*)* @_ZNKR1A1lEv to i64), i64 0 }, { i64, i64 }* %pl, align 8, !dbg !31
call void @llvm.dbg.declare(metadata { i64, i64 }* %pr, metadata !32, metadata !DIExpression()), !dbg !35
store { i64, i64 } { i64 ptrtoint (void (%class.A*)* @_ZNKO1A1rEv to i64), i64 0 }, { i64, i64 }* %pr, align 8, !dbg !35
call void @llvm.dbg.declare(metadata ptr %a, metadata !24, metadata !DIExpression()), !dbg !25
call void @llvm.dbg.declare(metadata ptr %pl, metadata !26, metadata !DIExpression()), !dbg !31
store { i64, i64 } { i64 ptrtoint (ptr @_ZNKR1A1lEv to i64), i64 0 }, ptr %pl, align 8, !dbg !31
call void @llvm.dbg.declare(metadata ptr %pr, metadata !32, metadata !DIExpression()), !dbg !35
store { i64, i64 } { i64 ptrtoint (ptr @_ZNKO1A1rEv to i64), i64 0 }, ptr %pr, align 8, !dbg !35
ret void, !dbg !36
}

; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

declare void @_ZNKR1A1lEv(%class.A*)
declare void @_ZNKR1A1lEv(ptr)

declare void @_ZNKO1A1rEv(%class.A*)
declare void @_ZNKO1A1rEv(ptr)

attributes #0 = { nounwind }
attributes #1 = { nounwind readnone }
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/DebugInfo/Generic/debug-label-inline.ll
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ source_filename = "debug-label-inline.c"

define i32 @f2() local_unnamed_addr #0 !dbg !4 {
entry:
%0 = load i32, i32* @ga, align 4, !dbg !1
%1 = load i32, i32* @gb, align 4, !dbg !1
%0 = load i32, ptr @ga, align 4, !dbg !1
%1 = load i32, ptr @gb, align 4, !dbg !1
call void @llvm.dbg.label(metadata !15), !dbg !17
%add.i = add nsw i32 %1, %0, !dbg !18
ret i32 %add.i, !dbg !1
Expand Down
12 changes: 6 additions & 6 deletions llvm/test/DebugInfo/Generic/debug-label-mi.ll
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,21 @@ entry:
%a.addr = alloca i32, align 4
%b.addr = alloca i32, align 4
%sum = alloca i32, align 4
store i32 %a, i32* %a.addr, align 4
store i32 %b, i32* %b.addr, align 4
store i32 %a, ptr %a.addr, align 4
store i32 %b, ptr %b.addr, align 4
br label %top

top: ; preds = %entry
call void @llvm.dbg.label(metadata !8), !dbg !9
%0 = load i32, i32* %a.addr, align 4
%1 = load i32, i32* %b.addr, align 4
%0 = load i32, ptr %a.addr, align 4
%1 = load i32, ptr %b.addr, align 4
%add = add nsw i32 %0, %1
store i32 %add, i32* %sum, align 4
store i32 %add, ptr %sum, align 4
br label %done

done: ; preds = %top
call void @llvm.dbg.label(metadata !10), !dbg !11
%2 = load i32, i32* %sum, align 4
%2 = load i32, ptr %sum, align 4
ret i32 %2
}

Expand Down
Loading