|
1 |
| -// RUN: mlir-translate -mlir-to-llvmir --split-input-file %s | FileCheck %s |
| 1 | +// RUN: mlir-translate -mlir-to-llvmir --write-experimental-debuginfo=false --split-input-file %s | FileCheck %s --check-prefixes=CHECK,INTRINSICS |
| 2 | +// RUN: mlir-translate -mlir-to-llvmir --write-experimental-debuginfo=true --split-input-file %s | FileCheck %s --check-prefixes=CHECK,RECORDS |
2 | 3 |
|
3 | 4 | // CHECK-LABEL: define void @func_with_empty_named_info()
|
4 | 5 | // Check that translation doens't crash in the presence of an inlineble call
|
@@ -98,13 +99,16 @@ llvm.func @func_with_debug(%arg: i64) {
|
98 | 99 | %allocCount = llvm.mlir.constant(1 : i32) : i32
|
99 | 100 | %alloc = llvm.alloca %allocCount x i64 : (i32) -> !llvm.ptr
|
100 | 101 |
|
101 |
| - // CHECK: call void @llvm.dbg.value(metadata i64 %[[ARG]], metadata ![[VAR_LOC:[0-9]+]], metadata !DIExpression(DW_OP_LLVM_fragment, 0, 1)) |
| 102 | + // INTRINSICS: call void @llvm.dbg.value(metadata i64 %[[ARG]], metadata ![[VAR_LOC:[0-9]+]], metadata !DIExpression(DW_OP_LLVM_fragment, 0, 1)) |
| 103 | + // RECORDS: #dbg_value(i64 %[[ARG]], ![[VAR_LOC:[0-9]+]], !DIExpression(DW_OP_LLVM_fragment, 0, 1), !{{.*}}) |
102 | 104 | llvm.intr.dbg.value #variable #llvm.di_expression<[DW_OP_LLVM_fragment(0, 1)]> = %arg : i64
|
103 | 105 |
|
104 |
| - // CHECK: call void @llvm.dbg.declare(metadata ptr %[[ALLOC]], metadata ![[ADDR_LOC:[0-9]+]], metadata !DIExpression(DW_OP_deref, DW_OP_LLVM_convert, 4, DW_ATE_signed)) |
| 106 | + // INTRINSICS: call void @llvm.dbg.declare(metadata ptr %[[ALLOC]], metadata ![[ADDR_LOC:[0-9]+]], metadata !DIExpression(DW_OP_deref, DW_OP_LLVM_convert, 4, DW_ATE_signed)) |
| 107 | + // RECORDS: #dbg_declare(ptr %[[ALLOC]], ![[ADDR_LOC:[0-9]+]], !DIExpression(DW_OP_deref, DW_OP_LLVM_convert, 4, DW_ATE_signed), !{{.*}}) |
105 | 108 | llvm.intr.dbg.declare #variableAddr #llvm.di_expression<[DW_OP_deref, DW_OP_LLVM_convert(4, DW_ATE_signed)]> = %alloc : !llvm.ptr
|
106 | 109 |
|
107 |
| - // CHECK: call void @llvm.dbg.value(metadata i64 %[[ARG]], metadata ![[NO_NAME_VAR:[0-9]+]], metadata !DIExpression()) |
| 110 | + // INTRINSICS: call void @llvm.dbg.value(metadata i64 %[[ARG]], metadata ![[NO_NAME_VAR:[0-9]+]], metadata !DIExpression()) |
| 111 | + // RECORDS: #dbg_value(i64 %[[ARG]], ![[NO_NAME_VAR:[0-9]+]], !DIExpression(), !{{.*}}) |
108 | 112 | llvm.intr.dbg.value #noNameVariable = %arg : i64
|
109 | 113 |
|
110 | 114 | // CHECK: call void @func_no_debug(), !dbg ![[FILE_LOC:[0-9]+]]
|
@@ -219,11 +223,14 @@ llvm.func @func_decl_with_subprogram() -> (i32) loc(fused<#di_subprogram>["foo.m
|
219 | 223 | // CHECK-LABEL: define i32 @func_with_inlined_dbg_value(
|
220 | 224 | // CHECK-SAME: i32 %[[ARG:.*]]) !dbg ![[OUTER_FUNC:[0-9]+]]
|
221 | 225 | llvm.func @func_with_inlined_dbg_value(%arg0: i32) -> (i32) {
|
222 |
| - // CHECK: call void @llvm.dbg.value(metadata i32 %[[ARG]], metadata ![[VAR_LOC0:[0-9]+]], metadata !DIExpression()), !dbg ![[DBG_LOC0:.*]] |
| 226 | + // INTRINSICS: call void @llvm.dbg.value(metadata i32 %[[ARG]], metadata ![[VAR_LOC0:[0-9]+]], metadata !DIExpression()), !dbg ![[DBG_LOC0:.*]] |
| 227 | + // RECORDS: #dbg_value(i32 %[[ARG]], ![[VAR_LOC0:[0-9]+]], !DIExpression(), ![[DBG_LOC0:.*]]) |
223 | 228 | llvm.intr.dbg.value #di_local_variable0 = %arg0 : i32 loc(fused<#di_subprogram>[#loc0])
|
224 |
| - // CHECK: call void @llvm.dbg.value(metadata i32 %[[ARG]], metadata ![[VAR_LOC1:[0-9]+]], metadata !DIExpression()), !dbg ![[DBG_LOC1:.*]] |
| 229 | + // INTRINSICS: call void @llvm.dbg.value(metadata i32 %[[ARG]], metadata ![[VAR_LOC1:[0-9]+]], metadata !DIExpression()), !dbg ![[DBG_LOC1:.*]] |
| 230 | + // RECORDS: #dbg_value(i32 %[[ARG]], ![[VAR_LOC1:[0-9]+]], !DIExpression(), ![[DBG_LOC1:.*]]) |
225 | 231 | llvm.intr.dbg.value #di_local_variable1 = %arg0 : i32 loc(#loc1)
|
226 |
| - // CHECK: call void @llvm.dbg.label(metadata ![[LABEL:[0-9]+]]), !dbg ![[DBG_LOC1:.*]] |
| 232 | + // INTRINSICS: call void @llvm.dbg.label(metadata ![[LABEL:[0-9]+]]), !dbg ![[DBG_LOC1:.*]] |
| 233 | + // RECORDS: #dbg_label(![[LABEL:[0-9]+]], ![[DBG_LOC1:.*]]) |
227 | 234 | llvm.intr.dbg.label #di_label loc(#loc1)
|
228 | 235 | llvm.return %arg0 : i32
|
229 | 236 | } loc(fused<#di_subprogram>["caller"])
|
@@ -254,7 +261,8 @@ llvm.func @func_with_inlined_dbg_value(%arg0: i32) -> (i32) {
|
254 | 261 | // CHECK-LABEL: define void @func_without_subprogram(
|
255 | 262 | // CHECK-SAME: i32 %[[ARG:.*]])
|
256 | 263 | llvm.func @func_without_subprogram(%0 : i32) {
|
257 |
| - // CHECK: call void @llvm.dbg.value(metadata i32 %[[ARG]], metadata ![[VAR_LOC:[0-9]+]], metadata !DIExpression()), !dbg ![[DBG_LOC0:.*]] |
| 264 | + // INTRINSICS: call void @llvm.dbg.value(metadata i32 %[[ARG]], metadata ![[VAR_LOC:[0-9]+]], metadata !DIExpression()), !dbg ![[DBG_LOC0:.*]] |
| 265 | + // RECORDS: #dbg_value(i32 %[[ARG]], ![[VAR_LOC:[0-9]+]], !DIExpression(), ![[DBG_LOC0:.*]]) |
258 | 266 | llvm.intr.dbg.value #di_local_variable = %0 : i32 loc(fused<#di_subprogram>[#loc])
|
259 | 267 | llvm.return
|
260 | 268 | }
|
@@ -285,11 +293,14 @@ llvm.func @func_without_subprogram(%0 : i32) {
|
285 | 293 | llvm.func @dbg_intrinsics_with_no_location(%arg0: i32) -> (i32) {
|
286 | 294 | %allocCount = llvm.mlir.constant(1 : i32) : i32
|
287 | 295 | %alloc = llvm.alloca %allocCount x i64 : (i32) -> !llvm.ptr
|
288 |
| - // CHECK-NOT: @llvm.dbg.value |
| 296 | + // INTRINSICS-NOT: @llvm.dbg.value |
| 297 | + // RECORDS-NOT: #dbg_value |
289 | 298 | llvm.intr.dbg.value #di_local_variable = %arg0 : i32
|
290 |
| - // CHECK-NOT: @llvm.dbg.declare |
| 299 | + // INTRINSICS-NOT: @llvm.dbg.declare |
| 300 | + // RECORDS-NOT: #dbg_declare |
291 | 301 | llvm.intr.dbg.declare #declared_var = %alloc : !llvm.ptr
|
292 |
| - // CHECK-NOT: @llvm.dbg.label |
| 302 | + // INTRINSICS-NOT: @llvm.dbg.label |
| 303 | + // RECORDS-NOT: #dbg_label |
293 | 304 | llvm.intr.dbg.label #di_label
|
294 | 305 | llvm.return %arg0 : i32
|
295 | 306 | }
|
|
0 commit comments