|
|
|
@ -1,88 +1,94 @@
|
|
|
|
|
; RUN: llc -debug-entry-values %s -o - -filetype=obj \
|
|
|
|
|
; RUN: | llvm-dwarfdump -statistics - | FileCheck %s
|
|
|
|
|
|
|
|
|
|
; CHECK: "sum_all_variables(#bytes in parent scope covered by DW_OP_entry_value)":5
|
|
|
|
|
; CHECK: "sum_all_params(#bytes in parent scope)":20
|
|
|
|
|
; CHECK: "sum_all_params(#bytes in parent scope covered by DW_AT_location)":20
|
|
|
|
|
; CHECK: "sum_all_params(#bytes in parent scope covered by DW_OP_entry_value)":5
|
|
|
|
|
; CHECK: "sum_all_local_vars(#bytes in parent scope)":90
|
|
|
|
|
; CHECK: "sum_all_local_vars(#bytes in parent scope covered by DW_AT_location)":60
|
|
|
|
|
; CHECK: "sum_all_local_vars(#bytes in parent scope covered by DW_OP_entry_value)":0
|
|
|
|
|
; CHECK: "#variables processed by location statistics":6
|
|
|
|
|
; CHECK: "#variables with 0% of parent scope covered by DW_AT_location":1
|
|
|
|
|
; CHECK: "#variables with (0%,10%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#variables with [10%,20%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#variables with [20%,30%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#variables with [30%,40%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#variables with [40%,50%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#variables with [50%,60%) of parent scope covered by DW_AT_location":1
|
|
|
|
|
; CHECK: "#variables with [60%,70%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#variables with [70%,80%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#variables with [80%,90%) of parent scope covered by DW_AT_location":1
|
|
|
|
|
; CHECK: "#variables with [90%,100%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#variables with 100% of parent scope covered by DW_AT_location":3
|
|
|
|
|
; CHECK: "#variables - entry values with 0% of parent scope covered by DW_AT_location":1
|
|
|
|
|
; CHECK: "#variables - entry values with (0%,10%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#variables - entry values with [10%,20%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#variables - entry values with [20%,30%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#variables - entry values with [30%,40%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#variables - entry values with [40%,50%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#variables - entry values with [50%,60%) of parent scope covered by DW_AT_location":2
|
|
|
|
|
; CHECK: "#variables - entry values with [60%,70%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#variables - entry values with [70%,80%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#variables - entry values with [80%,90%) of parent scope covered by DW_AT_location":1
|
|
|
|
|
; CHECK: "#variables - entry values with [90%,100%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#variables - entry values with 100% of parent scope covered by DW_AT_location":2
|
|
|
|
|
; CHECK: "#params processed by location statistics":2
|
|
|
|
|
; CHECK: "#params with 0% of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params with (0%,10%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params with [10%,20%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params with [20%,30%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params with [30%,40%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params with [40%,50%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params with [50%,60%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params with [60%,70%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params with [70%,80%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params with [80%,90%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params with [90%,100%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params with 100% of parent scope covered by DW_AT_location":2
|
|
|
|
|
; CHECK: "#params - entry values with 0% of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params - entry values with (0%,10%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params - entry values with [10%,20%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params - entry values with [20%,30%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params - entry values with [30%,40%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params - entry values with [40%,50%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params - entry values with [50%,60%) of parent scope covered by DW_AT_location":1
|
|
|
|
|
; CHECK: "#params - entry values with [60%,70%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params - entry values with [70%,80%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params - entry values with [80%,90%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params - entry values with [90%,100%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#params - entry values with 100% of parent scope covered by DW_AT_location":1
|
|
|
|
|
; CHECK: "#local vars processed by location statistics":4
|
|
|
|
|
; CHECK: "#local vars with 0% of parent scope covered by DW_AT_location":1
|
|
|
|
|
; CHECK: "#local vars with (0%,10%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#local vars with [10%,20%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#local vars with [20%,30%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#local vars with [30%,40%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#local vars with [40%,50%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#local vars with [50%,60%) of parent scope covered by DW_AT_location":1
|
|
|
|
|
; CHECK: "#local vars with [60%,70%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#local vars with [70%,80%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#local vars with [80%,90%) of parent scope covered by DW_AT_location":1
|
|
|
|
|
; CHECK: "#local vars with [90%,100%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#local vars with 100% of parent scope covered by DW_AT_location":1
|
|
|
|
|
; CHECK: "#local vars - entry values with 0% of parent scope covered by DW_AT_location":1
|
|
|
|
|
; CHECK: "#local vars - entry values with (0%,10%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#local vars - entry values with [10%,20%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#local vars - entry values with [20%,30%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#local vars - entry values with [30%,40%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#local vars - entry values with [40%,50%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#local vars - entry values with [50%,60%) of parent scope covered by DW_AT_location":1
|
|
|
|
|
; CHECK: "#local vars - entry values with [60%,70%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#local vars - entry values with [70%,80%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#local vars - entry values with [80%,90%) of parent scope covered by DW_AT_location":1
|
|
|
|
|
; CHECK: "#local vars - entry values with [90%,100%) of parent scope covered by DW_AT_location":0
|
|
|
|
|
; CHECK: "#local vars - entry values with 100% of parent scope covered by DW_AT_location":1
|
|
|
|
|
; CHECK: "sum_all_variables(#bytes in parent scope covered by DW_OP_entry_value)": 5,
|
|
|
|
|
; CHECK-NEXT: "sum_all_params(#bytes in parent scope)": 20,
|
|
|
|
|
; CHECK-NEXT: "sum_all_params(#bytes in parent scope covered by DW_AT_location)": 20,
|
|
|
|
|
; CHECK-NEXT: "sum_all_params(#bytes in parent scope covered by DW_OP_entry_value)": 5,
|
|
|
|
|
; CHECK-NEXT: "sum_all_local_vars(#bytes in parent scope)": 90,
|
|
|
|
|
; CHECK-NEXT: "sum_all_local_vars(#bytes in parent scope covered by DW_AT_location)": 60,
|
|
|
|
|
; CHECK-NEXT: "sum_all_local_vars(#bytes in parent scope covered by DW_OP_entry_value)": 0,
|
|
|
|
|
; CHECK-NEXT: "#bytes within functions": 45,
|
|
|
|
|
; CHECK-NEXT: "#bytes within inlined functions": 0,
|
|
|
|
|
; CHECK-NEXT: "#params": 2,
|
|
|
|
|
; CHECK-NEXT: "#params with source location": 2,
|
|
|
|
|
; CHECK-NEXT: "#params with type": 2,
|
|
|
|
|
; CHECK-NEXT: "#params with binary location": 2,
|
|
|
|
|
; CHECK: "#variables processed by location statistics": 6,
|
|
|
|
|
; CHECK-NEXT: "#variables with 0% of parent scope covered by DW_AT_location": 1,
|
|
|
|
|
; CHECK-NEXT: "#variables with (0%,10%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#variables with [10%,20%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#variables with [20%,30%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#variables with [30%,40%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#variables with [40%,50%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#variables with [50%,60%) of parent scope covered by DW_AT_location": 1,
|
|
|
|
|
; CHECK-NEXT: "#variables with [60%,70%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#variables with [70%,80%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#variables with [80%,90%) of parent scope covered by DW_AT_location": 1,
|
|
|
|
|
; CHECK-NEXT: "#variables with [90%,100%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#variables with 100% of parent scope covered by DW_AT_location": 3,
|
|
|
|
|
; CHECK-NEXT: "#variables - entry values with 0% of parent scope covered by DW_AT_location": 1,
|
|
|
|
|
; CHECK-NEXT: "#variables - entry values with (0%,10%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#variables - entry values with [10%,20%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#variables - entry values with [20%,30%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#variables - entry values with [30%,40%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#variables - entry values with [40%,50%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#variables - entry values with [50%,60%) of parent scope covered by DW_AT_location": 2,
|
|
|
|
|
; CHECK-NEXT: "#variables - entry values with [60%,70%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#variables - entry values with [70%,80%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#variables - entry values with [80%,90%) of parent scope covered by DW_AT_location": 1,
|
|
|
|
|
; CHECK-NEXT: "#variables - entry values with [90%,100%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#variables - entry values with 100% of parent scope covered by DW_AT_location": 2,
|
|
|
|
|
; CHECK-NEXT: "#params processed by location statistics": 2,
|
|
|
|
|
; CHECK-NEXT: "#params with 0% of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params with (0%,10%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params with [10%,20%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params with [20%,30%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params with [30%,40%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params with [40%,50%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params with [50%,60%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params with [60%,70%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params with [70%,80%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params with [80%,90%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params with [90%,100%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params with 100% of parent scope covered by DW_AT_location": 2,
|
|
|
|
|
; CHECK-NEXT: "#params - entry values with 0% of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params - entry values with (0%,10%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params - entry values with [10%,20%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params - entry values with [20%,30%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params - entry values with [30%,40%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params - entry values with [40%,50%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params - entry values with [50%,60%) of parent scope covered by DW_AT_location": 1,
|
|
|
|
|
; CHECK-NEXT: "#params - entry values with [60%,70%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params - entry values with [70%,80%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params - entry values with [80%,90%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params - entry values with [90%,100%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#params - entry values with 100% of parent scope covered by DW_AT_location": 1,
|
|
|
|
|
; CHECK-NEXT: "#local vars processed by location statistics": 4,
|
|
|
|
|
; CHECK-NEXT: "#local vars with 0% of parent scope covered by DW_AT_location": 1,
|
|
|
|
|
; CHECK-NEXT: "#local vars with (0%,10%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#local vars with [10%,20%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#local vars with [20%,30%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#local vars with [30%,40%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#local vars with [40%,50%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#local vars with [50%,60%) of parent scope covered by DW_AT_location": 1,
|
|
|
|
|
; CHECK-NEXT: "#local vars with [60%,70%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#local vars with [70%,80%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#local vars with [80%,90%) of parent scope covered by DW_AT_location": 1,
|
|
|
|
|
; CHECK-NEXT: "#local vars with [90%,100%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#local vars with 100% of parent scope covered by DW_AT_location": 1,
|
|
|
|
|
; CHECK-NEXT: "#local vars - entry values with 0% of parent scope covered by DW_AT_location": 1,
|
|
|
|
|
; CHECK-NEXT: "#local vars - entry values with (0%,10%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#local vars - entry values with [10%,20%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#local vars - entry values with [20%,30%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#local vars - entry values with [30%,40%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#local vars - entry values with [40%,50%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#local vars - entry values with [50%,60%) of parent scope covered by DW_AT_location": 1,
|
|
|
|
|
; CHECK-NEXT: "#local vars - entry values with [60%,70%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#local vars - entry values with [70%,80%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#local vars - entry values with [80%,90%) of parent scope covered by DW_AT_location": 1,
|
|
|
|
|
; CHECK-NEXT: "#local vars - entry values with [90%,100%) of parent scope covered by DW_AT_location": 0,
|
|
|
|
|
; CHECK-NEXT: "#local vars - entry values with 100% of parent scope covered by DW_AT_location": 1
|
|
|
|
|
|
|
|
|
|
; The source code of the test case:
|
|
|
|
|
; extern void fn3(int *);
|
|
|
|
|