# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 \ # RUN: -run-pass=amdgpu-next-use-printer \ # RUN: -amdgpu-next-use-analysis-config=graphics \ # RUN: -amdgpu-next-use-analysis-dump-distance-as-json=- \ # RUN: -amdgpu-next-use-analysis-dump-distance-verbose \ # RUN: -filetype=null \ # RUN: %s | FileCheck --check-prefix=CHECK-GX-JSON %s # RUN: llc -mtriple=amdgcn -mcpu=gfx1200 \ # RUN: -run-pass=amdgpu-next-use-printer \ # RUN: -amdgpu-next-use-analysis-config=compute \ # RUN: -amdgpu-next-use-analysis-dump-distance-as-json=- \ # RUN: -amdgpu-next-use-analysis-dump-distance-verbose \ # RUN: -filetype=null \ # RUN: %s | FileCheck --check-prefix=CHECK-CP-JSON %s # RUN: llc -mtriple=amdgcn -mcpu=gfx1200 \ # RUN: "-passes=require,print" \ # RUN: -amdgpu-next-use-analysis-config=compute \ # RUN: -amdgpu-next-use-analysis-dump-distance-as-json=- \ # RUN: -amdgpu-next-use-analysis-dump-distance-verbose \ # RUN: -filetype=null \ # RUN: %s | FileCheck --check-prefix=CHECK-CP-JSON %s --- name: test_proper_nested_loops tracksRegLiveness: true body: | bb.0: successors: %bb.1(0x80000000) %0:sgpr_32 = S_MOV_B32 10 %1:sgpr_32 = S_MOV_B32 5 %2:sgpr_32 = S_MOV_B32 0 %3:sgpr_32 = S_MOV_B32 999 S_BRANCH %bb.1 bb.1: successors: %bb.2(0x40000000), %bb.5(0x40000000) %4:sgpr_32 = PHI %2, %bb.0, %5, %bb.4 S_CMP_LT_I32 %4, %0, implicit-def $scc S_CBRANCH_SCC1 %bb.2, implicit $scc S_BRANCH %bb.5 bb.2: successors: %bb.3(0x80000000) %6:sgpr_32 = S_MOV_B32 0 S_BRANCH %bb.3 bb.3: successors: %bb.3(0x40000000), %bb.4(0x40000000) %7:sgpr_32 = PHI %6, %bb.2, %8, %bb.3 S_NOP 0 S_CMP_LT_I32 %7, %1, implicit-def $scc %8:sgpr_32 = S_ADD_U32 %7, 1, implicit-def $scc S_CBRANCH_SCC1 %bb.3, implicit $scc S_BRANCH %bb.4 bb.4: successors: %bb.1(0x80000000) %5:sgpr_32 = S_ADD_U32 %4, 1, implicit-def $scc S_BRANCH %bb.1 bb.5: dead %9:sgpr_32 = S_ADD_U32 %4, %3, implicit-def $scc S_ENDPGM 0 # Test 1: Basic finite distances in entry block - instruction-specific validation # Test 2: Three-tier ranking in inner loop - exact instruction context # Test 3: Loop exit distances validation ... # CHECK-GX-JSON: { # CHECK-GX-JSON-NEXT: "next-use-analysis": { # CHECK-GX-JSON-NEXT: "furthest-distances": { # CHECK-GX-JSON-NEXT: "bb.0": [ # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "%0:sgpr_32 = S_MOV_B32 10", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": {}, # CHECK-GX-JSON-NEXT: "furthest": {}, # CHECK-GX-JSON-NEXT: "furthest-subreg": {} # CHECK-GX-JSON-NEXT: }, # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "%1:sgpr_32 = S_MOV_B32 5", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": { # CHECK-GX-JSON-DAG: "%0": 5 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest": { # CHECK-GX-JSON-DAG: "register": "%0", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 5 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest-subreg": { # CHECK-GX-JSON-DAG: "register": "%0", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 5 # CHECK-GX-JSON: } # CHECK-GX-JSON-NEXT: }, # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "%2:sgpr_32 = S_MOV_B32 0", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": { # CHECK-GX-JSON-DAG: "%0": 4 # CHECK-GX-JSON-DAG: "%1": 11 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest": { # CHECK-GX-JSON-DAG: "register": "%1", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 11 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest-subreg": { # CHECK-GX-JSON-DAG: "register": "%1", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 11 # CHECK-GX-JSON: } # CHECK-GX-JSON-NEXT: }, # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "%3:sgpr_32 = S_MOV_B32 999", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": { # CHECK-GX-JSON-DAG: "%0": 3 # CHECK-GX-JSON-DAG: "%1": 10 # CHECK-GX-JSON-DAG: "%2": 2 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest": { # CHECK-GX-JSON-DAG: "register": "%1", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 10 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest-subreg": { # CHECK-GX-JSON-DAG: "register": "%1", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 10 # CHECK-GX-JSON: } # CHECK-GX-JSON-NEXT: }, # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "S_BRANCH %bb.1", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": { # CHECK-GX-JSON-DAG: "%0": 2 # CHECK-GX-JSON-DAG: "%1": 9 # CHECK-GX-JSON-DAG: "%2": 1 # CHECK-GX-JSON-DAG: "%3": 513 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest": { # CHECK-GX-JSON-DAG: "register": "%3", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 513 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest-subreg": { # CHECK-GX-JSON-DAG: "register": "%3", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 513 # CHECK-GX-JSON: } # CHECK-GX-JSON-NEXT: } # CHECK-GX-JSON-NEXT: ], # CHECK-GX-JSON-NEXT: "bb.1": [ # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "%4:sgpr_32 = PHI %2, %bb.0, %5, %bb.4", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": { # CHECK-GX-JSON-DAG: "%0": 1 # CHECK-GX-JSON-DAG: "%1": 8 # CHECK-GX-JSON-DAG: "%3": 513 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest": { # CHECK-GX-JSON-DAG: "register": "%3", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 513 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest-subreg": { # CHECK-GX-JSON-DAG: "register": "%3", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 513 # CHECK-GX-JSON: } # CHECK-GX-JSON-NEXT: }, # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "S_CMP_LT_I32 %4, %0, implicit-def $scc", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": { # CHECK-GX-JSON-DAG: "%0": 0 # CHECK-GX-JSON-DAG: "%1": 7 # CHECK-GX-JSON-DAG: "%3": 513 # CHECK-GX-JSON-DAG: "%4": 0 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest": { # CHECK-GX-JSON-DAG: "register": "%3", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 513 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest-subreg": { # CHECK-GX-JSON-DAG: "register": "%3", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 513 # CHECK-GX-JSON: } # CHECK-GX-JSON-NEXT: }, # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "S_CBRANCH_SCC1 %bb.2, implicit $scc", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": { # CHECK-GX-JSON-DAG: "%1": 6 # CHECK-GX-JSON-DAG: "%3": 513 # CHECK-GX-JSON-DAG: "%4": 513 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest": { # CHECK-GX-JSON-DAG: "register": "%3", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 513 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest-subreg": { # CHECK-GX-JSON-DAG: "register": "%3", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 513 # CHECK-GX-JSON: } # CHECK-GX-JSON-NEXT: }, # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "S_BRANCH %bb.5", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": { # CHECK-GX-JSON-DAG: "%1": 5 # CHECK-GX-JSON-DAG: "%3": 513 # CHECK-GX-JSON-DAG: "%4": 513 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest": { # CHECK-GX-JSON-DAG: "register": "%3", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 513 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest-subreg": { # CHECK-GX-JSON-DAG: "register": "%3", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 513 # CHECK-GX-JSON: } # CHECK-GX-JSON-NEXT: } # CHECK-GX-JSON-NEXT: ], # CHECK-GX-JSON-NEXT: "bb.2": [ # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "%6:sgpr_32 = S_MOV_B32 0", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": { # CHECK-GX-JSON-DAG: "%1": 4 # CHECK-GX-JSON-DAG: "%4": 770 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest": { # CHECK-GX-JSON-DAG: "register": "%4", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 770 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest-subreg": { # CHECK-GX-JSON-DAG: "register": "%4", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 770 # CHECK-GX-JSON: } # CHECK-GX-JSON-NEXT: }, # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "S_BRANCH %bb.3", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": { # CHECK-GX-JSON-DAG: "%1": 3 # CHECK-GX-JSON-DAG: "%4": 769 # CHECK-GX-JSON-DAG: "%6": 1 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest": { # CHECK-GX-JSON-DAG: "register": "%4", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 769 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest-subreg": { # CHECK-GX-JSON-DAG: "register": "%4", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 769 # CHECK-GX-JSON: } # CHECK-GX-JSON-NEXT: } # CHECK-GX-JSON-NEXT: ], # CHECK-GX-JSON-NEXT: "bb.3": [ # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "%7:sgpr_32 = PHI %6, %bb.2, %8, %bb.3", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": { # CHECK-GX-JSON-DAG: "%1": 2 # CHECK-GX-JSON-DAG: "%4": 769 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest": { # CHECK-GX-JSON-DAG: "register": "%4", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 769 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest-subreg": { # CHECK-GX-JSON-DAG: "register": "%4", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 769 # CHECK-GX-JSON: } # CHECK-GX-JSON-NEXT: }, # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "S_NOP 0", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": { # CHECK-GX-JSON-DAG: "%1": 1 # CHECK-GX-JSON-DAG: "%4": 769 # CHECK-GX-JSON-DAG: "%7": 1 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest": { # CHECK-GX-JSON-DAG: "register": "%4", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 769 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest-subreg": { # CHECK-GX-JSON-DAG: "register": "%4", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 769 # CHECK-GX-JSON: } # CHECK-GX-JSON-NEXT: }, # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "S_CMP_LT_I32 %7, %1, implicit-def $scc", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": { # CHECK-GX-JSON-DAG: "%1": 0 # CHECK-GX-JSON-DAG: "%4": 769 # CHECK-GX-JSON-DAG: "%7": 0 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest": { # CHECK-GX-JSON-DAG: "register": "%4", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 769 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest-subreg": { # CHECK-GX-JSON-DAG: "register": "%4", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 769 # CHECK-GX-JSON: } # CHECK-GX-JSON-NEXT: }, # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "%8:sgpr_32 = S_ADD_U32 %7, 1, implicit-def $scc", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": { # CHECK-GX-JSON-DAG: "%4": 769 # CHECK-GX-JSON-DAG: "%7": 0 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest": { # CHECK-GX-JSON-DAG: "register": "%4", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 769 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest-subreg": { # CHECK-GX-JSON-DAG: "register": "%4", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 769 # CHECK-GX-JSON: } # CHECK-GX-JSON-NEXT: }, # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "S_CBRANCH_SCC1 %bb.3, implicit $scc", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": { # CHECK-GX-JSON-DAG: "%4": 769 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest": { # CHECK-GX-JSON-DAG: "register": "%4", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 769 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest-subreg": { # CHECK-GX-JSON-DAG: "register": "%4", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 769 # CHECK-GX-JSON: } # CHECK-GX-JSON-NEXT: }, # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "S_BRANCH %bb.4", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": { # CHECK-GX-JSON-DAG: "%4": 769 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest": { # CHECK-GX-JSON-DAG: "register": "%4", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 769 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest-subreg": { # CHECK-GX-JSON-DAG: "register": "%4", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 769 # CHECK-GX-JSON: } # CHECK-GX-JSON-NEXT: } # CHECK-GX-JSON-NEXT: ], # CHECK-GX-JSON-NEXT: "bb.4": [ # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "%5:sgpr_32 = S_ADD_U32 %4, 1, implicit-def $scc", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": { # CHECK-GX-JSON-DAG: "%4": 0 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest": { # CHECK-GX-JSON-DAG: "register": "%4", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 0 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest-subreg": { # CHECK-GX-JSON-DAG: "register": "%4", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 0 # CHECK-GX-JSON: } # CHECK-GX-JSON-NEXT: }, # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "S_BRANCH %bb.1", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": {}, # CHECK-GX-JSON-NEXT: "furthest": {}, # CHECK-GX-JSON-NEXT: "furthest-subreg": {} # CHECK-GX-JSON-NEXT: } # CHECK-GX-JSON-NEXT: ], # CHECK-GX-JSON-NEXT: "bb.5": [ # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "dead %9:sgpr_32 = S_ADD_U32 %4, %3, implicit-def $scc", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": { # CHECK-GX-JSON-DAG: "%3": 0 # CHECK-GX-JSON-DAG: "%4": 0 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest": { # CHECK-GX-JSON-DAG: "register": "%3", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 0 # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "furthest-subreg": { # CHECK-GX-JSON-DAG: "register": "%3", # CHECK-GX-JSON-DAG: "use": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-GX-JSON-DAG: "distance": 0 # CHECK-GX-JSON: } # CHECK-GX-JSON-NEXT: }, # CHECK-GX-JSON-NEXT: { # CHECK-GX-JSON-NEXT: "instr": "S_ENDPGM 0", # CHECK-GX-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "distances": {}, # CHECK-GX-JSON-NEXT: "furthest": {}, # CHECK-GX-JSON-NEXT: "furthest-subreg": {} # CHECK-GX-JSON-NEXT: } # CHECK-GX-JSON-NEXT: ] # CHECK-GX-JSON-NEXT: }, # CHECK-GX-JSON-NEXT: "distance-from-def-to-closest-use": { # CHECK-GX-JSON-DAG: "%0": 6, # CHECK-GX-JSON-DAG: "%1": 12, # CHECK-GX-JSON-DAG: "%2": 3, # CHECK-GX-JSON-DAG: "%3": 514, # CHECK-GX-JSON-DAG: "%4": 1, # CHECK-GX-JSON-DAG: "%6": 2, # CHECK-GX-JSON-DAG: "%7": 2, # CHECK-GX-JSON-DAG: "%8": "", # CHECK-GX-JSON-DAG: "%5": "", # CHECK-GX-JSON-DAG: "%9": "" # CHECK-GX-JSON: }, # CHECK-GX-JSON-NEXT: "paths": [ # CHECK-GX-JSON: ], # CHECK-GX-JSON-NEXT: "metrics": { # CHECK-GX-JSON-NEXT: "distance-cache": { # CHECK-GX-JSON-NEXT: "hits": {{[0-9]+}}, # CHECK-GX-JSON-NEXT: "misses": {{[0-9]+}} # CHECK-GX-JSON-NEXT: } # CHECK-GX-JSON-NEXT: } # CHECK-GX-JSON-NEXT: }, # CHECK-GX-JSON-DAG: "time.amdgpu-next-use-analysis-json.json.wall": {{[0-9.e+-]+}}, # CHECK-GX-JSON-DAG: "time.amdgpu-next-use-analysis-json.json.user": {{[0-9.e+-]+}}, # CHECK-GX-JSON-DAG: "time.amdgpu-next-use-analysis-json.json.sys": {{[0-9.e+-]+}} # CHECK-GX-JSON: } # CHECK-CP-JSON: { # CHECK-CP-JSON-NEXT: "next-use-analysis": { # CHECK-CP-JSON-NEXT: "furthest-distances": { # CHECK-CP-JSON-NEXT: "bb.0": [ # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "%0:sgpr_32 = S_MOV_B32 10", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": {}, # CHECK-CP-JSON-NEXT: "furthest": {}, # CHECK-CP-JSON-NEXT: "furthest-subreg": {} # CHECK-CP-JSON-NEXT: }, # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "%1:sgpr_32 = S_MOV_B32 5", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%0": 3 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%0", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 3 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%0", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 3 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: }, # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "%2:sgpr_32 = S_MOV_B32 0", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%0": 2 # CHECK-CP-JSON-DAG: "%1": 2 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%0", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 2 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%0", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 2 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: }, # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "%3:sgpr_32 = S_MOV_B32 999", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%0": 1 # CHECK-CP-JSON-DAG: "%1": 1 # CHECK-CP-JSON-DAG: "%2": 1 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%0", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 1 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%0", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 1 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: }, # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "S_BRANCH %bb.1", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%0": 0 # CHECK-CP-JSON-DAG: "%1": 0 # CHECK-CP-JSON-DAG: "%2": 0 # CHECK-CP-JSON-DAG: "%3": 4 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 4 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 4 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: } # CHECK-CP-JSON-NEXT: ], # CHECK-CP-JSON-NEXT: "bb.1": [ # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "%4:sgpr_32 = PHI %2, %bb.0, %5, %bb.4", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%0": 0 # CHECK-CP-JSON-DAG: "%1": 4 # CHECK-CP-JSON-DAG: "%3": 385 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 385 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 385 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: }, # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "S_CMP_LT_I32 %4, %0, implicit-def $scc", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%0": 0 # CHECK-CP-JSON-DAG: "%1": 4 # CHECK-CP-JSON-DAG: "%3": 385 # CHECK-CP-JSON-DAG: "%4": 0 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 385 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 385 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: }, # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "S_CBRANCH_SCC1 %bb.2, implicit $scc", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%0": 11 # CHECK-CP-JSON-DAG: "%1": 3 # CHECK-CP-JSON-DAG: "%3": 385 # CHECK-CP-JSON-DAG: "%4": 9 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 385 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 385 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: }, # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "S_BRANCH %bb.5", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%0": 10 # CHECK-CP-JSON-DAG: "%1": 2 # CHECK-CP-JSON-DAG: "%3": 385 # CHECK-CP-JSON-DAG: "%4": 8 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 385 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 385 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: } # CHECK-CP-JSON-NEXT: ], # CHECK-CP-JSON-NEXT: "bb.2": [ # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "%6:sgpr_32 = S_MOV_B32 0", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%0": 9 # CHECK-CP-JSON-DAG: "%1": 1 # CHECK-CP-JSON-DAG: "%3": 82817 # CHECK-CP-JSON-DAG: "%4": 7 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 82817 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 82817 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: }, # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "S_BRANCH %bb.3", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%0": 8 # CHECK-CP-JSON-DAG: "%1": 0 # CHECK-CP-JSON-DAG: "%3": 82817 # CHECK-CP-JSON-DAG: "%4": 6 # CHECK-CP-JSON-DAG: "%6": 0 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 82817 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 82817 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: } # CHECK-CP-JSON-NEXT: ], # CHECK-CP-JSON-NEXT: "bb.3": [ # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "%7:sgpr_32 = PHI %6, %bb.2, %8, %bb.3", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%0": 643 # CHECK-CP-JSON-DAG: "%1": 1 # CHECK-CP-JSON-DAG: "%3": 83201 # CHECK-CP-JSON-DAG: "%4": 641 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 83201 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 83201 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: }, # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "S_NOP 0", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%0": 643 # CHECK-CP-JSON-DAG: "%1": 1 # CHECK-CP-JSON-DAG: "%3": 83201 # CHECK-CP-JSON-DAG: "%4": 641 # CHECK-CP-JSON-DAG: "%7": 1 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 83201 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 83201 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: }, # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "S_CMP_LT_I32 %7, %1, implicit-def $scc", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%0": 643 # CHECK-CP-JSON-DAG: "%1": 0 # CHECK-CP-JSON-DAG: "%3": 83201 # CHECK-CP-JSON-DAG: "%4": 641 # CHECK-CP-JSON-DAG: "%7": 0 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 83201 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 83201 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: }, # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "%8:sgpr_32 = S_ADD_U32 %7, 1, implicit-def $scc", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%0": 643 # CHECK-CP-JSON-DAG: "%1": 9 # CHECK-CP-JSON-DAG: "%3": 83201 # CHECK-CP-JSON-DAG: "%4": 641 # CHECK-CP-JSON-DAG: "%7": 0 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 83201 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 83201 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: }, # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "S_CBRANCH_SCC1 %bb.3, implicit $scc", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%0": 643 # CHECK-CP-JSON-DAG: "%1": 8 # CHECK-CP-JSON-DAG: "%3": 83201 # CHECK-CP-JSON-DAG: "%4": 641 # CHECK-CP-JSON-DAG: "%8": 1 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 83201 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 83201 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: }, # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "S_BRANCH %bb.4", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%0": 643 # CHECK-CP-JSON-DAG: "%1": 7 # CHECK-CP-JSON-DAG: "%3": 83201 # CHECK-CP-JSON-DAG: "%4": 641 # CHECK-CP-JSON-DAG: "%8": 0 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 83201 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 83201 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: } # CHECK-CP-JSON-NEXT: ], # CHECK-CP-JSON-NEXT: "bb.4": [ # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "%5:sgpr_32 = S_ADD_U32 %4, 1, implicit-def $scc", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%0": 2 # CHECK-CP-JSON-DAG: "%1": 6 # CHECK-CP-JSON-DAG: "%3": 82817 # CHECK-CP-JSON-DAG: "%4": 0 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 82817 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 82817 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: }, # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "S_BRANCH %bb.1", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%0": 1 # CHECK-CP-JSON-DAG: "%1": 5 # CHECK-CP-JSON-DAG: "%3": 82817 # CHECK-CP-JSON-DAG: "%5": 0 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 82817 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 82817 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: } # CHECK-CP-JSON-NEXT: ], # CHECK-CP-JSON-NEXT: "bb.5": [ # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "dead %9:sgpr_32 = S_ADD_U32 %4, %3, implicit-def $scc", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": { # CHECK-CP-JSON-DAG: "%3": 0 # CHECK-CP-JSON-DAG: "%4": 0 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 0 # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "furthest-subreg": { # CHECK-CP-JSON-DAG: "register": "%3", # CHECK-CP-JSON-DAG: "use": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}", # CHECK-CP-JSON-DAG: "distance": 0 # CHECK-CP-JSON: } # CHECK-CP-JSON-NEXT: }, # CHECK-CP-JSON-NEXT: { # CHECK-CP-JSON-NEXT: "instr": "S_ENDPGM 0", # CHECK-CP-JSON-NEXT: "id": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "distances": {}, # CHECK-CP-JSON-NEXT: "furthest": {}, # CHECK-CP-JSON-NEXT: "furthest-subreg": {} # CHECK-CP-JSON-NEXT: } # CHECK-CP-JSON-NEXT: ] # CHECK-CP-JSON-NEXT: }, # CHECK-CP-JSON-NEXT: "distance-from-def-to-closest-use": { # CHECK-CP-JSON-DAG: "%0": 4, # CHECK-CP-JSON-DAG: "%1": 3, # CHECK-CP-JSON-DAG: "%2": 2, # CHECK-CP-JSON-DAG: "%3": 5, # CHECK-CP-JSON-DAG: "%4": 0, # CHECK-CP-JSON-DAG: "%6": 1, # CHECK-CP-JSON-DAG: "%7": 1, # CHECK-CP-JSON-DAG: "%8": 2, # CHECK-CP-JSON-DAG: "%5": 1, # CHECK-CP-JSON-DAG: "%9": "" # CHECK-CP-JSON: }, # CHECK-CP-JSON-NEXT: "paths": [ # CHECK-CP-JSON: ], # CHECK-CP-JSON-NEXT: "metrics": { # CHECK-CP-JSON-NEXT: "distance-cache": { # CHECK-CP-JSON-NEXT: "hits": {{[0-9]+}}, # CHECK-CP-JSON-NEXT: "misses": {{[0-9]+}} # CHECK-CP-JSON-NEXT: } # CHECK-CP-JSON-NEXT: } # CHECK-CP-JSON-NEXT: }, # CHECK-CP-JSON-DAG: "time.amdgpu-next-use-analysis-json.json.wall": {{[0-9.e+-]+}}, # CHECK-CP-JSON-DAG: "time.amdgpu-next-use-analysis-json.json.user": {{[0-9.e+-]+}}, # CHECK-CP-JSON-DAG: "time.amdgpu-next-use-analysis-json.json.sys": {{[0-9.e+-]+}} # CHECK-CP-JSON: }