# Test call site parameter encoding in DWARFv4.
# When the debugger tuning is set to gdb, use GNU opcodes.
# For lldb, use the standard DWARF5 opcodes.

# RUN: llc -emit-call-site-info -debugger-tune=gdb -filetype=obj -mtriple=x86_64-unknown-unknown -start-after=machineverifier -o - %s | llvm-dwarfdump - | FileCheck %s -check-prefixes=CHECK-GNU
# RUN: llc -emit-call-site-info -debugger-tune=lldb -filetype=obj -mtriple=x86_64-unknown-unknown -start-after=machineverifier -o - %s | llvm-dwarfdump - | FileCheck %s -check-prefixes=CHECK-DWARF5
#
# extern void foo(int *a, int b, int c, int d, int e, int f);
# extern int getVal();
#
# void baa(int arg1, int arg2, int arg3) {
#   int local1 = getVal();
#   foo(&local1, arg2, 10, 15, arg3 + 3, arg1 + arg2);
# }
#
# CHECK-GNU: DW_TAG_GNU_call_site
# CHECK-GNU:   DW_AT_abstract_origin {{.*}} "getVal"
#
# CHECK-GNU:       DW_TAG_GNU_call_site
# CHECK-GNU:         DW_AT_abstract_origin {{.*}} "foo"
# CHECK-GNU:         DW_AT_low_pc {{.*}}
# CHECK-GNU-EMPTY:
# CHECK-GNU:         DW_TAG_GNU_call_site_parameter
# CHECK-GNU-NEXT:      DW_AT_location      (DW_OP_reg2 RCX)
# CHECK-GNU-NEXT:      DW_AT_GNU_call_site_value   (DW_OP_lit15)
# CHECK-GNU:         DW_TAG_GNU_call_site_parameter
# CHECK-GNU-NEXT:      DW_AT_location      (DW_OP_reg1 RDX)
# CHECK-GNU-NEXT:      DW_AT_GNU_call_site_value   (DW_OP_lit10)
# CHECK-GNU:         DW_TAG_GNU_call_site_parameter
# CHECK-GNU-NEXT:      DW_AT_location      (DW_OP_reg4 RSI)
# CHECK-GNU-NEXT:      DW_AT_GNU_call_site_value   (DW_OP_breg3 RBX+0)
# CHECK-GNU:         DW_TAG_GNU_call_site_parameter
# CHECK-GNU-NEXT:      DW_AT_location      (DW_OP_reg5 RDI)
# CHECK-GNU-NEXT:      DW_AT_GNU_call_site_value   (DW_OP_fbreg +12)
# CHECK-GNU:         DW_TAG_GNU_call_site_parameter
# CHECK-GNU-NEXT:      DW_AT_location      (DW_OP_reg9 R9)
# CHECK-GNU-NEXT:      DW_AT_GNU_call_site_value   (DW_OP_breg15 R15+0, DW_OP_breg3 RBX+0, DW_OP_plus)
# CHECK-GNU:         DW_TAG_GNU_call_site_parameter
# CHECK-GNU-NEXT:      DW_AT_location      (DW_OP_reg8 R8)
# CHECK-GNU-NEXT:      DW_AT_GNU_call_site_value   (DW_OP_breg14 R14+3)

# CHECK-DWARF5: DW_TAG_call_site
# CHECK-DWARF5:   DW_AT_call_origin ([[getValue_SP:.*]])
#
# CHECK-DWARF5: DW_TAG_call_site
# CHECK-DWARF5:   DW_AT_call_origin ([[foo_SP:.*]])
# CHECK-DWARF5:   DW_AT_call_return_pc {{.*}}
# CHECK-DWARF5-EMPTY:
# CHECK-DWARF5:         DW_TAG_call_site_parameter
# CHECK-DWARF5-NEXT:      DW_AT_location      (DW_OP_reg2 RCX)
# CHECK-DWARF5-NEXT:      DW_AT_call_value   (DW_OP_lit15)
# CHECK-DWARF5:         DW_TAG_call_site_parameter
# CHECK-DWARF5-NEXT:      DW_AT_location      (DW_OP_reg1 RDX)
# CHECK-DWARF5-NEXT:      DW_AT_call_value   (DW_OP_lit10)
# CHECK-DWARF5:         DW_TAG_call_site_parameter
# CHECK-DWARF5-NEXT:      DW_AT_location      (DW_OP_reg4 RSI)
# CHECK-DWARF5-NEXT:      DW_AT_call_value   (DW_OP_breg3 RBX+0)
# CHECK-DWARF5:         DW_TAG_call_site_parameter
# CHECK-DWARF5-NEXT:      DW_AT_location      (DW_OP_reg5 RDI)
# CHECK-DWARF5-NEXT:      DW_AT_call_value   (DW_OP_fbreg +12)
# CHECK-DWARF5:         DW_TAG_call_site_parameter
# CHECK-DWARF5-NEXT:      DW_AT_location      (DW_OP_reg9 R9)
# CHECK-DWARF5-NEXT:      DW_AT_call_value   (DW_OP_breg15 R15+0, DW_OP_breg3 RBX+0, DW_OP_plus)
# CHECK-DWARF5:         DW_TAG_call_site_parameter
# CHECK-DWARF5-NEXT:      DW_AT_location      (DW_OP_reg8 R8)
# CHECK-DWARF5-NEXT:      DW_AT_call_value   (DW_OP_breg14 R14+3)

# CHECK-DWARF5: [[getValue_SP]]: DW_TAG_subprogram
# CHECK-DWARF5-NEXT: DW_AT_name      ("getVal")

# CHECK-DWARF5: [[foo_SP]]: DW_TAG_subprogram
# CHECK-DWARF5-NEXT: DW_AT_name      ("foo")

--- |
  ; ModuleID = 'test.c'
  source_filename = "test.c"
  target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
  
  ; Function Attrs: nounwind uwtable
  define dso_local void @baa(i32 %arg1, i32 %arg2, i32 %arg3) local_unnamed_addr !dbg !10 {
  entry:
    %local1 = alloca i32, align 4
    call void @llvm.dbg.value(metadata i32 %arg1, metadata !15, metadata !DIExpression()), !dbg !19
    call void @llvm.dbg.value(metadata i32 %arg2, metadata !16, metadata !DIExpression()), !dbg !20
    call void @llvm.dbg.value(metadata i32 %arg3, metadata !17, metadata !DIExpression()), !dbg !21
    %0 = bitcast i32* %local1 to i8*, !dbg !22
    %call = tail call i32 (...) @getVal(), !dbg !23
    call void @llvm.dbg.value(metadata i32 %call, metadata !18, metadata !DIExpression()), !dbg !24
    store i32 %call, i32* %local1, align 4, !dbg !24
    %add = add nsw i32 %arg3, 3, !dbg !24
    %add1 = add nsw i32 %arg2, %arg1, !dbg !24
    call void @llvm.dbg.value(metadata i32* %local1, metadata !18, metadata !DIExpression(DW_OP_deref)), !dbg !24
    call void @foo(i32* nonnull %local1, i32 %arg2, i32 10, i32 15, i32 %add, i32 %add1), !dbg !24
    ret void, !dbg !24
  }
  
  declare !dbg !4 dso_local i32 @getVal(...) local_unnamed_addr
  
  declare !dbg !5 dso_local void @foo(i32*, i32, i32, i32, i32, i32) local_unnamed_addr
  
  ; Function Attrs: nounwind readnone speculatable
  declare void @llvm.dbg.value(metadata, metadata, metadata)
  
  !llvm.dbg.cu = !{!0}
  !llvm.module.flags = !{!6, !7, !8}
  !llvm.ident = !{!9}
  
  !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 9.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, nameTableKind: None)
  !1 = !DIFile(filename: "test.c", directory: "/dir")
  !2 = !{}
  !4 = !DISubprogram(name: "getVal", scope: !1, file: !1, line: 2, spFlags: DISPFlagOptimized, retainedNodes: !2)
  !5 = !DISubprogram(name: "foo", scope: !1, file: !1, line: 1, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !2)
  !6 = !{i32 2, !"Dwarf Version", i32 4}
  !7 = !{i32 2, !"Debug Info Version", i32 3}
  !8 = !{i32 1, !"wchar_size", i32 4}
  !9 = !{!"clang version 9.0.0"}
  !10 = distinct !DISubprogram(name: "baa", scope: !1, file: !1, line: 4, type: !11, scopeLine: 4, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !14)
  !11 = !DISubroutineType(types: !12)
  !12 = !{null, !13, !13, !13}
  !13 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
  !14 = !{!15, !16, !17, !18}
  !15 = !DILocalVariable(name: "arg1", arg: 1, scope: !10, file: !1, line: 4, type: !13)
  !16 = !DILocalVariable(name: "arg2", arg: 2, scope: !10, file: !1, line: 4, type: !13)
  !17 = !DILocalVariable(name: "arg3", arg: 3, scope: !10, file: !1, line: 4, type: !13)
  !18 = !DILocalVariable(name: "local1", scope: !10, file: !1, line: 5, type: !13)
  !19 = !DILocation(line: 4, column: 14, scope: !10)
  !20 = !DILocation(line: 4, column: 24, scope: !10)
  !21 = !DILocation(line: 4, column: 34, scope: !10)
  !22 = !DILocation(line: 5, column: 3, scope: !10)
  !23 = !DILocation(line: 5, column: 16, scope: !10)
  !24 = !DILocation(line: 5, column: 7, scope: !10)

...
---
name:            baa
liveins:         
  - { reg: '$edi', virtual-reg: '' }
  - { reg: '$esi', virtual-reg: '' }
  - { reg: '$edx', virtual-reg: '' }
callSites:       
  - { bb: 0, offset: 21, fwdArgRegs: [] }
  - { bb: 0, offset: 31, fwdArgRegs: 
      - { arg: 0, reg: '$rdi' }
      - { arg: 1, reg: '$esi' }
      - { arg: 2, reg: '$edx' }
      - { arg: 3, reg: '$ecx' }
      - { arg: 4, reg: '$r8d' }
      - { arg: 5, reg: '$r9d' } }
body:             |
  bb.0.entry:
    liveins: $edi, $edx, $esi, $r15, $r14, $rbx
  
    DBG_VALUE $edi, $noreg, !15, !DIExpression(), debug-location !19
    DBG_VALUE $esi, $noreg, !16, !DIExpression(), debug-location !20
    DBG_VALUE $edx, $noreg, !17, !DIExpression(), debug-location !21
    frame-setup PUSH64r killed $r15, implicit-def $rsp, implicit $rsp
    CFI_INSTRUCTION def_cfa_offset 16
    frame-setup PUSH64r killed $r14, implicit-def $rsp, implicit $rsp
    CFI_INSTRUCTION def_cfa_offset 24
    frame-setup PUSH64r killed $rbx, implicit-def $rsp, implicit $rsp
    CFI_INSTRUCTION def_cfa_offset 32
    $rsp = frame-setup SUB64ri8 $rsp, 16, implicit-def dead $eflags
    CFI_INSTRUCTION def_cfa_offset 48
    CFI_INSTRUCTION offset $rbx, -32
    CFI_INSTRUCTION offset $r14, -24
    CFI_INSTRUCTION offset $r15, -16
    $r14d = MOV32rr $edx, implicit-def $r14
    $ebx = MOV32rr $esi, implicit-def $rbx
    $r15d = MOV32rr $edi, implicit-def $r15
    DBG_VALUE $r14d, $noreg, !17, !DIExpression(), debug-location !21
    DBG_VALUE $ebx, $noreg, !16, !DIExpression(), debug-location !20
    DBG_VALUE $r15d, $noreg, !15, !DIExpression(), debug-location !19
    dead $eax = XOR32rr undef $eax, undef $eax, implicit-def dead $eflags, implicit-def $al, debug-location !23
    CALL64pcrel32 @getVal, csr_64, implicit $rsp, implicit $ssp, implicit $al, implicit-def $rsp, implicit-def $ssp, implicit-def $eax, debug-location !23
    DBG_VALUE $eax, $noreg, !18, !DIExpression(), debug-location !24
    MOV32mr $rsp, 1, $noreg, 12, $noreg, killed renamable $eax, debug-location !24 :: (store (s32) into %ir.local1)
    renamable $r8d = LEA64_32r killed renamable $r14, 1, $noreg, 3, $noreg, debug-location !24
    renamable $r9d = LEA64_32r killed renamable $r15, 1, renamable $rbx, 0, $noreg, debug-location !24
    DBG_VALUE $rsp, $noreg, !18, !DIExpression(DW_OP_plus_uconst, 12, DW_OP_deref), debug-location !24
    renamable $rdi = LEA64r $rsp, 1, $noreg, 12, $noreg
    $esi = MOV32rr $ebx, implicit killed $rbx, debug-location !24
    $edx = MOV32ri 10, debug-location !24
    $ecx = MOV32ri 15, debug-location !24
    CALL64pcrel32 @foo, csr_64, implicit $rsp, implicit $ssp, implicit $rdi, implicit $esi, implicit $edx, implicit killed $ecx, implicit $r8d, implicit $r9d, implicit-def $rsp, implicit-def $ssp, debug-location !24
    $rsp = frame-destroy ADD64ri8 $rsp, 16, implicit-def dead $eflags, debug-location !24
    CFI_INSTRUCTION def_cfa_offset 32, debug-location !24
    $rbx = frame-destroy POP64r implicit-def $rsp, implicit $rsp, debug-location !24
    CFI_INSTRUCTION def_cfa_offset 24, debug-location !24
    $r14 = frame-destroy POP64r implicit-def $rsp, implicit $rsp, debug-location !24
    CFI_INSTRUCTION def_cfa_offset 16, debug-location !24
    $r15 = frame-destroy POP64r implicit-def $rsp, implicit $rsp, debug-location !24
    CFI_INSTRUCTION def_cfa_offset 8, debug-location !24
    RET64 debug-location !24

...
