| # 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<amdgpu-next-use-analysis>,print<amdgpu-next-use-analysis>" \ |
| # 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": "<unreachable>", |
| # CHECK-GX-JSON-DAG: "%5": "<unreachable>", |
| # CHECK-GX-JSON-DAG: "%9": "<unreachable>" |
| # 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": "<unreachable>" |
| # 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: } |