diff --git a/.gitignore b/.gitignore index 4de380c8e..3a4c5d209 100644 --- a/.gitignore +++ b/.gitignore @@ -479,10 +479,12 @@ unsloth_compiled_cache/ !/.run/P36/probe/*.md !/.run/P36/probe/*.json !/.run/P36/probe/*.py +!/.run/P36/probe/*.jsonl !/.run/P36/delever/ /.run/P36/delever/* !/.run/P36/delever/*.log !/.run/P36/delever/*.json +/.run/P36/delever/recipes.json !/.run/P36/delever/*.jsonl !/.run/P36/delever/*.txt !/.run/P36/permuter/ diff --git a/.run/P36/baseline/kit_corpus_t2.log b/.run/P36/baseline/kit_corpus_t2.log new file mode 100644 index 000000000..9ecafa43e --- /dev/null +++ b/.run/P36/baseline/kit_corpus_t2.log @@ -0,0 +1,6 @@ +.venv/bin/python tools/tool_census.py --all +tool_census: 298 tool files (find == git ls-files) + 38 retired; classes {'LIVE': 238, 'ORPHAN': 30, 'REFERENCED': 30, 'RETIRED': 38}; dictionary rows 336 +tool_census: wrote docs/tool-index.md +tool_census: wrote decomp-architect/tools/MANIFEST.md +tool_census: corpus materialised — 365 verbatim copies, 30 pointers, INDEX.md +kit-corpus wall=24.17 s diff --git a/.run/P36/census/lever_census.json b/.run/P36/census/lever_census.json index c99d7e8fe..6999949d5 100644 --- a/.run/P36/census/lever_census.json +++ b/.run/P36/census/lever_census.json @@ -229,7 +229,7 @@ } }, "coverage_ok": true, - "elapsed_s": 35.0, + "elapsed_s": 40.0, "generated": "2026-09-09", "headers": 3181, "levers_AB": { diff --git a/.run/P36/census/lever_census.txt b/.run/P36/census/lever_census.txt index 8356d94e3..a2b36071f 100644 --- a/.run/P36/census/lever_census.txt +++ b/.run/P36/census/lever_census.txt @@ -25,4 +25,4 @@ lever_census: 218 binaries · 4,121 TUs + 3,181 headers · coverage OK · unclas src/shared/ov/func_80178004.h pins got 26 expected 26 OK ov_SC03_006 func_80184034 bare-name pins got 3 expected 3 OK engine_prelude.h asm sites (a macro definition only) got 0 expected 0 OK - elapsed 35.0 s + elapsed 40.0 s diff --git a/.run/P36/delever/calibration.json b/.run/P36/delever/calibration.json new file mode 100644 index 000000000..f9a78a0f3 --- /dev/null +++ b/.run/P36/delever/calibration.json @@ -0,0 +1,227 @@ +{ + "head": "a1407bdfc", + "stamp": "b44c5a8a3423", + "generated": "2026-09-09 01:50", + "aliases": [ + "main", + "ov_SC03_014", + "ov_SC03_015", + "ov_SC04_011" + ], + "objects": 177, + "identical": 177, + "failures": [], + "twin_checks": 32, + "twin_mismatch": [], + "positive_control": { + "obj": "build/src/800.o", + "verdict": "DIFFERS" + }, + "per_alias": { + "main": { + "objects": 85, + "identical": 85, + "seconds": 6.707000000000002, + "mean_s": 0.079 + }, + "ov_SC03_014": { + "objects": 32, + "identical": 32, + "seconds": 4.815, + "mean_s": 0.15 + }, + "ov_SC03_015": { + "objects": 32, + "identical": 32, + "seconds": 4.541, + "mean_s": 0.142 + }, + "ov_SC04_011": { + "objects": 28, + "identical": 28, + "seconds": 3.943, + "mean_s": 0.141 + } + }, + "per_object_seconds": { + "build/src/800.o": 0.752, + "build/src/800_b.o": 0.07, + "build/src/800_b_2.o": 0.329, + "build/src/800_b_o0a.o": 0.074, + "build/src/800_c.o": 0.195, + "build/src/800b2.o": 0.078, + "build/src/apicard1.o": 0.061, + "build/src/apicard2.o": 0.069, + "build/src/apicard3.o": 0.076, + "build/src/apicard4.o": 0.066, + "build/src/apicard5.o": 0.086, + "build/src/apicard6.o": 0.072, + "build/src/apicard7.o": 0.081, + "build/src/boot.o": 0.08, + "build/src/gap.o": 0.071, + "build/src/libapi1.o": 0.07, + "build/src/libapi2.o": 0.063, + "build/src/libc2_1.o": 0.064, + "build/src/libc2_2.o": 0.059, + "build/src/libcd1.o": 0.069, + "build/src/libcd2.o": 0.065, + "build/src/libetc.o": 0.062, + "build/src/libgpu.o": 0.059, + "build/src/libgpu2.o": 0.067, + "build/src/libgs1.o": 0.057, + "build/src/libgs2.o": 0.064, + "build/src/libgs3.o": 0.057, + "build/src/libgs4.o": 0.064, + "build/src/libgs5.o": 0.057, + "build/src/libgs6.o": 0.077, + "build/src/libgs7.o": 0.061, + "build/src/libgs8.o": 0.059, + "build/src/libgte1.o": 0.055, + "build/src/libgte10.o": 0.065, + "build/src/libgte11.o": 0.063, + "build/src/libgte12.o": 0.061, + "build/src/libgte13.o": 0.056, + "build/src/libgte14.o": 0.058, + "build/src/libgte15.o": 0.071, + "build/src/libgte16.o": 0.063, + "build/src/libgte17.o": 0.063, + "build/src/libgte18.o": 0.061, + "build/src/libgte19.o": 0.063, + "build/src/libgte2.o": 0.061, + "build/src/libgte20.o": 0.066, + "build/src/libgte21.o": 0.058, + "build/src/libgte22.o": 0.063, + "build/src/libgte23.o": 0.064, + "build/src/libgte24.o": 0.057, + "build/src/libgte25.o": 0.061, + "build/src/libgte26.o": 0.068, + "build/src/libgte27.o": 0.062, + "build/src/libgte28.o": 0.06, + "build/src/libgte29.o": 0.068, + "build/src/libgte3.o": 0.069, + "build/src/libgte30.o": 0.069, + "build/src/libgte4.o": 0.065, + "build/src/libgte5.o": 0.065, + "build/src/libgte6.o": 0.061, + "build/src/libgte7.o": 0.058, + "build/src/libgte8.o": 0.059, + "build/src/libgte9.o": 0.068, + "build/src/libmcrd1.o": 0.082, + "build/src/libmcrd2.o": 0.064, + "build/src/libpad1.o": 0.068, + "build/src/libpad2.o": 0.066, + "build/src/sgap.o": 0.066, + "build/src/sgap_2.o": 0.067, + "build/src/sgap_3.o": 0.073, + "build/src/sgap_4.o": 0.078, + "build/src/sgap_5.o": 0.065, + "build/src/sgap_6.o": 0.064, + "build/src/sgap_8.o": 0.076, + "build/src/snd1.o": 0.073, + "build/src/snd10.o": 0.07, + "build/src/snd11.o": 0.071, + "build/src/snd12.o": 0.063, + "build/src/snd2.o": 0.072, + "build/src/snd3.o": 0.068, + "build/src/snd4.o": 0.073, + "build/src/snd5.o": 0.067, + "build/src/snd6.o": 0.069, + "build/src/snd7.o": 0.069, + "build/src/snd8.o": 0.063, + "build/src/snd9.o": 0.065, + "build/src/ov_SC03_014/ov_SC03_014.o": 0.141, + "build/src/ov_SC03_014/ov_SC03_014_after.o": 0.509, + "build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.394, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.082, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.08, + "build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.126, + "build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.169, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.129, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.097, + "build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.074, + "build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.182, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.086, + "build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.174, + "build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.102, + "build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.079, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.075, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.093, + "build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.487, + "build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.267, + "build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.102, + "build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.205, + "build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.064, + "build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.099, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.066, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.168, + "build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.193, + "build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.054, + "build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.281, + "build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.059, + "build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.06, + "build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.053, + "build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.065, + "build/src/ov_SC03_015/ov_SC03_015.o": 0.12, + "build/src/ov_SC03_015/ov_SC03_015_after.o": 0.526, + "build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.382, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.051, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.051, + "build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.116, + "build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.148, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.113, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.064, + "build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.06, + "build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.18, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.07, + "build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.169, + "build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.085, + "build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.066, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.068, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.092, + "build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.472, + "build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.259, + "build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.101, + "build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.201, + "build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.058, + "build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.1, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.064, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.164, + "build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.189, + "build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.05, + "build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.278, + "build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.06, + "build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.061, + "build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.054, + "build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.069, + "build/src/ov_SC04_011/ov_SC04_011.o": 0.121, + "build/src/ov_SC04_011/ov_SC04_011_after.o": 0.423, + "build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.353, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.054, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.053, + "build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.12, + "build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.152, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.109, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.076, + "build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.065, + "build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.172, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.072, + "build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.169, + "build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.092, + "build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.066, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.073, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.093, + "build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.353, + "build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.217, + "build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.099, + "build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.164, + "build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.054, + "build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.085, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.063, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.093, + "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.444, + "build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.048, + "build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.06 + }, + "ok": true, + "seconds": 2.3 +} diff --git a/.run/P36/probe/probe_log.txt b/.run/P36/probe/probe_log.txt new file mode 100644 index 000000000..c53f839da --- /dev/null +++ b/.run/P36/probe/probe_log.txt @@ -0,0 +1,231 @@ +01:56:54 probe: 285 bodies sampled from 19868 lever bodies (2340 distinct classes); seed 11 +01:56:54 src/md_MAIN_003/md_MAIN_003_o0e.c:func_800D0B1C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:54 src/md_MAIN_003/md_MAIN_003_o0c.c:func_800D0D6C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:54 src/boot.c:func_80011380 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:54 src/md_MAIN_011/md_MAIN_011.c:func_800CEF00 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:54 src/md_MAIN_003/md_MAIN_003_o0e.c:func_800D0268 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:54 src/boot.c:func_80011C8C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:54 src/800_b.c:func_8002B0B4 A=DIFFERS B: removed 0 needed 5 compiles 6 +01:56:54 src/md_MAIN_003/md_MAIN_003_jr_800D1E18.c:func_800D2A24 A=DIFFERS B: removed 0 needed 3 compiles 5 +01:56:54 src/md_MAIN_021/md_MAIN_021.c:func_800CB0C8 A=DIFFERS B: removed 0 needed 3 compiles 4 +01:56:54 src/boot.c:func_80010F80 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:54 src/md_MAIN_026/md_MAIN_026.c:func_800CB900 A=DIFFERS B: removed 1 needed 1 compiles 3 +01:56:54 src/800_c.c:func_800383A4 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:56:54 src/boot.c:func_80010A08 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:54 src/md_MAIN_009/md_MAIN_009.c:func_800CD674 A=DIFFERS B: removed 2 needed 6 compiles 10 +01:56:55 src/md_SC03_076/md_SC03_076_jr_801F218C.c:func_801F2348 A=DIFFERS B: removed 2 needed 1 compiles 4 +01:56:55 src/md_MAIN_044/md_MAIN_044.c:func_800CCD2C A=DIFFERS B: removed 1 needed 1 compiles 4 +01:56:55 src/md_SC03_135/md_SC03_135_jr_801E5358.c:func_801E559C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:55 src/md_SC03_075/md_SC03_075.c:func_801F02D4 A=DIFFERS B: removed 1 needed 1 compiles 4 +01:56:55 src/md_SC04_026/md_SC04_026.c:func_801E89D4 A=DIFFERS B: removed 1 needed 1 compiles 4 +01:56:55 src/md_MAIN_001/md_MAIN_001.c:func_800CF290 A=DIFFERS B: removed 9 needed 4 compiles 15 +01:56:55 src/md_MAIN_044/md_MAIN_044.c:func_800CD894 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:56:55 src/md_MAIN_003/md_MAIN_003.c:func_800CF3E8 A=DIFFERS B: removed 4 needed 8 compiles 14 +01:56:55 src/md_MAIN_043/md_MAIN_043.c:func_800CD404 A=DIFFERS B: removed 7 needed 1 compiles 10 +01:56:55 src/md_MAIN_013/md_MAIN_013.c:func_800CB138 A=DIFFERS B: removed 0 needed 13 compiles 15 +01:56:55 src/md_SC05_026/md_SC05_026_jr_801F0748.c:func_801F0C4C A=DIFFERS B: removed 4 needed 2 compiles 8 +01:56:55 src/800_c.c:func_800385C0 A=DIFFERS B: removed 0 needed 2 compiles 4 +01:56:55 src/ov_MAIN_012/ov_MAIN_012_jr_8013F350.c:func_801418F8 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:55 src/ov_MAIN_012/ov_MAIN_012_jr_8013C98C.c:func_8013D53C A=DIFFERS B: removed 0 needed 2 compiles 3 +01:56:55 src/md_SC07_003/md_SC07_003.c:func_801A293C A=DIFFERS B: removed 1 needed 1 compiles 4 +01:56:55 src/md_SC07_004/md_SC07_004.c:func_801AB818 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:56 src/md_MAIN_003/md_MAIN_003.c:func_800CFEB4 A=DIFFERS B: removed 7 needed 4 compiles 13 +01:56:56 src/800_b_2.c:func_8002EFF8 A=DIFFERS B: removed 1 needed 2 compiles 5 +01:56:56 src/ov_MAIN_012/ov_MAIN_012_jr_8016AE5C.c:func_8016E9EC A=DIFFERS B: removed 0 needed 1 compiles 3 +01:56:56 src/ov_SC01_004/ov_SC01_004_jr_8017E5B8.c:func_8017E5B8 A=DIFFERS B: removed 0 needed 2 compiles 3 +01:56:56 src/ov_SC01_004/ov_SC01_004_jr_8017BE9C.c:func_8017DC38 A=DIFFERS B: removed 1 needed 3 compiles 6 +01:56:56 src/ov_MAIN_012/ov_MAIN_012_jr_801380E0.c:func_8013B274 A=DIFFERS B: removed 4 needed 8 compiles 13 +01:56:56 src/ov_SC01_004/ov_SC01_004_jr_8017E5B8.c:func_8017E804 A=DIFFERS B: removed 1 needed 5 compiles 8 +01:56:56 src/800.c:func_80012E6C A=DIFFERS B: removed 0 needed 1 compiles 3 +01:56:57 src/800_b_2.c:func_8002FF0C A=DIFFERS B: removed 0 needed 3 compiles 4 +01:56:57 src/ov_SC01_000/ov_SC01_000_jr_8017BEBC.c:func_8017E4A0 A=DIFFERS B: removed 7 needed 2 compiles 11 +01:56:57 src/md_SC07_004/md_SC07_004.c:func_801AE908 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:56:57 src/800_c.c:func_800391D4 A=DIFFERS B: removed 0 needed 10 compiles 12 +01:56:57 src/ov_SC01_008/ov_SC01_008_jr_8017BE9C.c:func_8017E050 A=DIFFERS B: removed 0 needed 4 compiles 6 +01:56:57 src/ov_SC01_084/ov_SC01_084_jr_80182A00.c:func_80183BD0 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:57 src/ov_SC01_009/ov_SC01_009_jr_8017E590.c:func_8017FFD0 A=DIFFERS B: removed 3 needed 4 compiles 9 +01:56:58 src/ov_SC01_084/ov_SC01_084_jr_80182A00.c:func_8018392C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:58 src/ov_SC01_077/ov_SC01_077_jr_8017AE2C.c:func_8017B614 A=DIFFERS B: removed 0 needed 3 compiles 5 +01:56:58 src/ov_SC01_084/ov_SC01_084_jr_80182A00.c:func_80183A7C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:58 src/800_b_2.c:func_80034314 A=DIFFERS B: removed 2 needed 1 compiles 5 +01:56:58 src/ov_MAIN_012/ov_MAIN_012.c:func_80130D48 A=DIFFERS B: removed 5 needed 4 compiles 11 +01:56:58 src/ov_SC02_005/ov_SC02_005_jr_8017CF90.c:func_8018118C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:58 src/ov_SC02_005/ov_SC02_005_jr_8017AE2C.c:func_8017C41C A=DIFFERS B: removed 2 needed 3 compiles 7 +01:56:58 src/800_c.c:func_80038958 A=DIFFERS B: removed 5 needed 2 compiles 9 +01:56:58 src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.c:func_80180728 A=DIFFERS B: removed 0 needed 5 compiles 6 +01:56:58 src/ov_MAIN_012/ov_MAIN_012_jr_8015A3C8.c:func_80162438 A=DIFFERS B: removed 2 needed 3 compiles 7 +01:56:59 src/ov_SC01_000/ov_SC01_000_jr_8013C98C.c:func_8013D9B0 A=DIFFERS B: removed 9 needed 25 compiles 36 +01:56:59 src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.c:func_8017FD9C A=DIFFERS B: removed 0 needed 2 compiles 3 +01:56:59 src/ov_SC02_005/ov_SC02_005_jr_8018EA04.c:func_8018FEA0 A=DIFFERS B: removed 5 needed 3 compiles 10 +01:56:59 src/ov_SC02_005/ov_SC02_005_jr_80185E80.c:func_8018D270 A=DIFFERS B: removed 0 needed 2 compiles 4 +01:56:59 src/ov_SC02_005/ov_SC02_005_jr_8018EA04.c:func_8018FA34 A=DIFFERS B: removed 0 needed 3 compiles 5 +01:57:00 src/ov_SC01_077/ov_SC01_077.c:func_80140958 A=DIFFERS B: removed 7 needed 4 compiles 13 +01:57:00 src/ov_SC02_021/ov_SC02_021_jr_8017ECFC.c:func_8017F1B4 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:00 src/ov_SC02_011/ov_SC02_011_jr_80183178.c:func_80187E08 A=DIFFERS B: removed 1 needed 4 compiles 7 +01:57:00 src/ov_SC02_021/ov_SC02_021_jr_8017C294.c:func_8017DC10 A=DIFFERS B: removed 1 needed 3 compiles 6 +01:57:00 src/md_SC07_004/md_SC07_004.c:func_801A2DC4 A=DIFFERS B: removed 2 needed 3 compiles 7 +01:57:00 src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.c:func_8017F67C A=DIFFERS B: removed 0 needed 2 compiles 4 +01:57:00 src/ov_SC02_028/ov_SC02_028_jr_801884D8.c:func_8018AB34 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:00 src/ov_SC02_028/ov_SC02_028_jr_8017D898.c:func_80181264 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:00 src/ov_SC02_011/ov_SC02_011_jr_80188E3C.c:func_8018AB20 A=DIFFERS B: removed 1 needed 4 compiles 7 +01:57:01 src/ov_SC02_026/ov_SC02_026_jr_8017C180.c:func_8017F6B0 A=DIFFERS B: removed 0 needed 2 compiles 3 +01:57:01 src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.c:func_8017D710 A=DIFFERS B: removed 0 needed 2 compiles 3 +01:57:01 src/ov_SC02_011/ov_SC02_011_jr_80183178.c:func_80186868 A=DIFFERS B: removed 1 needed 4 compiles 7 +01:57:01 src/ov_SC02_035/ov_SC02_035_jr_8017BEBC.c:func_80181B00 A=DIFFERS B: removed 1 needed 1 compiles 4 +01:57:01 src/ov_SC02_041/ov_SC02_041_jr_8017BEBC.c:func_8018317C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:01 src/ov_MAIN_012/ov_MAIN_012.c:func_8012956C A=DIFFERS B: removed 6 needed 4 compiles 12 +01:57:02 src/ov_SC02_039/ov_SC02_039_jr_8017BEBC.c:func_8017DE00 A=DIFFERS B: removed 6 needed 4 compiles 12 +01:57:02 src/ov_SC03_001/ov_SC03_001_jr_8017AE2C.c:func_80182058 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:02 src/ov_SC03_001/ov_SC03_001_jr_80189030.c:func_801898E4 A=DIFFERS B: removed 1 needed 5 compiles 8 +01:57:02 src/ov_SC03_001/ov_SC03_001_jr_8018B8DC.c:func_8018BCD4 A=DIFFERS B: removed 1 needed 4 compiles 7 +01:57:03 src/ov_SC02_026/ov_SC02_026_jr_8017C180.c:func_8017E3AC A=DIFFERS B: removed 4 needed 1 compiles 7 +01:57:03 src/ov_SC03_002/ov_SC03_002_jr_8017D604.c:func_8017EA54 A=DIFFERS B: removed 2 needed 3 compiles 7 +01:57:03 src/800_b_2.c:func_8003388C A=DIFFERS B: removed 2 needed 15 compiles 19 +01:57:03 src/ov_SC02_011/ov_SC02_011_jr_80183178.c:func_80187CE8 A=DIFFERS B: removed 4 needed 4 compiles 10 +01:57:03 src/ov_SC03_013/ov_SC03_013_jr_8017C730.c:func_8017DD98 A=DIFFERS B: removed 1 needed 1 compiles 4 +01:57:04 src/ov_SC02_011/ov_SC02_011_jr_80183178.c:func_80188250 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:04 src/ov_SC03_001/ov_SC03_001_jr_8017AE2C.c:func_8017BF50 A=DIFFERS B: removed 3 needed 1 compiles 6 +01:57:04 src/800_c.c:func_80038A58 A=DIFFERS B: removed 26 needed 9 compiles 37 +01:57:04 src/ov_SC03_011/ov_SC03_011_jr_80140608.c:func_80140958 A=DIFFERS B: removed 7 needed 4 compiles 13 +01:57:04 src/ov_SC03_024/ov_SC03_024_jr_80183BF8.c:func_80185E38 A=DIFFERS B: removed 1 needed 4 compiles 7 +01:57:04 src/ov_SC03_028/ov_SC03_028_jr_8017DF98.c:func_80180AC4 A=DIFFERS B: removed 0 needed 2 compiles 4 +01:57:05 src/ov_SC03_024/ov_SC03_024_jr_8017DF84.c:func_80182108 A=DIFFERS B: removed 1 needed 3 compiles 6 +01:57:05 src/ov_SC03_028/ov_SC03_028_jr_801887A8.c:func_80189AF4 A=DIFFERS B: removed 0 needed 3 compiles 5 +01:57:05 src/800.c:func_800242D0 A=DIFFERS B: removed 6 needed 5 compiles 13 +01:57:05 src/800_c.c:func_800384A8 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:05 src/md_SC07_004/md_SC07_004.c:func_801AB694 A=DIFFERS B: removed 5 needed 1 compiles 8 +01:57:06 src/ov_SC03_006/ov_SC03_006_jr_8017AE2C.c:func_80185BD4 A=DIFFERS B: removed 3 needed 2 compiles 7 +01:57:06 src/ov_SC03_030/ov_SC03_030_jr_8017AE2C.c:func_80180960 A=DIFFERS B: removed 0 needed 3 compiles 5 +01:57:06 src/ov_SC03_105/ov_SC03_105_jr_8017C8D0.c:func_8017E180 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:06 src/ov_SC03_029/ov_SC03_029_jr_8017FF7C.c:func_80180B84 A=DIFFERS B: removed 4 needed 1 compiles 7 +01:57:06 src/ov_SC03_105/ov_SC03_105_jr_80186DDC.c:func_80187928 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:06 src/ov_SC03_097/ov_SC03_097_jr_8017D898.c:func_80181CF4 A=DIFFERS B: removed 1 needed 4 compiles 7 +01:57:06 src/ov_SC03_092/ov_SC03_092_jr_80181694.c:func_8018478C A=DIFFERS B: removed 0 needed 8 compiles 10 +01:57:06 src/ov_SC03_108/ov_SC03_108_jr_8017F83C.c:func_8017FD64 A=DIFFERS B: removed 0 needed 2 compiles 3 +01:57:07 src/ov_SC03_028/ov_SC03_028_jr_80185C14.c:func_80186368 A=DIFFERS B: removed 17 needed 3 compiles 22 +01:57:07 src/ov_SC03_105/ov_SC03_105_jr_80181C84.c:func_80183A98 A=DIFFERS B: removed 0 needed 5 compiles 6 +01:57:07 src/ov_SC03_121/ov_SC03_121_jr_8017E1D0.c:func_8017F374 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:07 src/ov_SC03_112/ov_SC03_112_jr_8017C294.c:func_8017D174 A=DIFFERS B: removed 1 needed 3 compiles 5 +01:57:07 src/ov_SC03_094/ov_SC03_094_jr_8017BEBC.c:func_80181448 A=DIFFERS B: removed 2 needed 4 compiles 8 +01:57:07 src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.c:func_8017DBAC A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:08 src/md_SC07_004/md_SC07_004.c:func_801A395C A=DIFFERS B: removed 1 needed 2 compiles 5 +01:57:08 src/ov_SC04_018/ov_SC04_018_jr_80188E1C.c:func_80189EA0 A=DIFFERS B: removed 1 needed 1 compiles 3 +01:57:08 src/ov_SC04_018/ov_SC04_018_jr_801878E8.c:func_80188778 A=DIFFERS B: removed 2 needed 4 compiles 8 +01:57:08 src/ov_SC02_037/ov_SC02_037_jr_8017AE2C.c:func_8017F2B4 A=DIFFERS B: removed 6 needed 17 compiles 25 +01:57:08 src/ov_SC04_020/ov_SC04_020_jr_8017D604.c:func_8018087C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:08 src/ov_SC03_113/ov_SC03_113_jr_8017C294.c:func_8017F394 A=DIFFERS B: removed 5 needed 1 compiles 8 +01:57:08 src/md_SC07_004/md_SC07_004.c:func_801A7CDC A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:08 src/ov_SC03_107/ov_SC03_107_jr_801789AC.c:func_8017BEBC A=DIFFERS B: removed 0 needed 7 compiles 8 +01:57:09 src/ov_SC01_077/ov_SC01_077.c:func_8013D9B0 A=DIFFERS B: removed 9 needed 25 compiles 36 +01:57:09 src/ov_SC05_001/ov_SC05_001_jr_8017BEBC.c:func_80182258 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:09 src/ov_SC04_016/ov_SC04_016_jr_8017BEBC.c:func_8017DA50 A=DIFFERS B: removed 2 needed 8 compiles 12 +01:57:09 src/ov_SC05_003/ov_SC05_003_jr_8017BEBC.c:func_801815A0 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:09 src/ov_SC03_113/ov_SC03_113_jr_8017C294.c:func_8017E178 A=DIFFERS B: removed 0 needed 2 compiles 3 +01:57:09 src/ov_SC05_005/ov_SC05_005_jr_8017D898.c:func_801816A8 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:09 src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.c:func_8017BF70 A=DIFFERS B: removed 3 needed 1 compiles 6 +01:57:09 src/ov_SC05_010/ov_SC05_010_jr_80180F84.c:func_801814AC A=DIFFERS B: removed 1 needed 1 compiles 3 +01:57:09 src/ov_SC01_077/ov_SC01_077.c:func_801418F8 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:09 src/ov_SC05_008/ov_SC05_008_jr_8017AE2C.c:func_8017E6A4 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:09 src/ov_SC05_002/ov_SC05_002_jr_8017BEBC.c:func_8017F200 A=DIFFERS B: removed 5 needed 1 compiles 8 +01:57:09 src/ov_SC05_003/ov_SC05_003_jr_8017BEBC.c:func_801812AC A=DIFFERS B: removed 1 needed 1 compiles 3 +01:57:09 src/ov_SC03_124/ov_SC03_124_jr_80188544.c:func_80188C68 A=DIFFERS B: removed 5 needed 19 compiles 26 +01:57:10 src/ov_SC06_013/ov_SC06_013_jr_8017BEBC.c:func_8017DE14 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:10 src/ov_SC06_006/ov_SC06_006_jr_8017DB90.c:func_8017E550 A=DIFFERS B: removed 0 needed 3 compiles 4 +01:57:10 src/ov_SC06_016/ov_SC06_016_jr_801816DC.c:func_80181C78 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:10 src/ov_SC06_011/ov_SC06_011_jr_8017EEEC.c:func_8017F3C8 A=DIFFERS B: removed 4 needed 1 compiles 7 +01:57:10 src/ov_SC06_008/ov_SC06_008_jr_8017C294.c:func_8017D73C A=DIFFERS B: removed 0 needed 2 compiles 3 +01:57:10 src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c:func_8018A688 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:10 src/ov_SC04_011/ov_SC04_011_jr_8017D494.c:func_801835B0 A=DIFFERS B: removed 0 needed 3 compiles 4 +01:57:10 src/ov_SC06_011/ov_SC06_011_jr_8017BEBC.c:func_8017E5D0 A=DIFFERS B: removed 4 needed 3 compiles 9 +01:57:10 src/ov_SC05_010/ov_SC05_010_jr_80181CDC.c:func_80183D5C A=DIFFERS B: removed 9 needed 1 compiles 12 +01:57:10 src/ov_SC06_016/ov_SC06_016_jr_8017C8D0.c:func_801810A4 A=DIFFERS B: removed 2 needed 3 compiles 6 +01:57:11 src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c:func_80182464 A=DIFFERS B: removed 0 needed 2 compiles 4 +01:57:11 src/ov_SC06_024/ov_SC06_024_jr_80186F00.c:func_8018D674 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:11 src/ov_SC03_107/ov_SC03_107_jr_801789AC.c:func_8017CF48 A=DIFFERS B: removed 2 needed 4 compiles 8 +01:57:11 src/ov_SC06_029/ov_SC06_029_jr_801898CC.c:func_8018A180 A=COMPILE-ERROR B: removed 0 needed 6 compiles 7 +01:57:11 src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c:func_801811DC A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:12 src/ov_SC06_024/ov_SC06_024_jr_8017BEBC.c:func_8017FA1C A=DIFFERS B: removed 1 needed 3 compiles 6 +01:57:12 src/ov_SC06_030/ov_SC06_030_jr_8017F65C.c:func_80180FF4 A=DIFFERS B: removed 0 needed 10 compiles 12 +01:57:12 src/ov_SC06_033/ov_SC06_033_jr_8018D98C.c:func_8018D98C A=DIFFERS B: removed 0 needed 2 compiles 3 +01:57:12 src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c:func_80185DD8 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:12 src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c:func_8018A974 A=DIFFERS B: removed 2 needed 3 compiles 7 +01:57:12 src/ov_SC06_032/ov_SC06_032_jr_801902EC.c:func_801902EC A=DIFFERS B: removed 4 needed 9 compiles 14 +01:57:12 src/ov_SC06_033/ov_SC06_033_jr_8018C2D8.c:func_8018C2D8 A=DIFFERS B: removed 4 needed 8 compiles 13 +01:57:12 src/ov_SC06_032/ov_SC06_032_jr_801919A0.c:func_801919A0 A=REFUSED B: removed 4 needed 10 compiles 14 +01:57:13 src/ov_SC07_000/ov_SC07_000_jr_8017F8B8.c:func_80181BA8 A=DIFFERS B: removed 1 needed 4 compiles 7 +01:57:13 src/ov_SC07_007/ov_SC07_007_jr_8013C98C.c:func_8013D53C A=DIFFERS B: removed 0 needed 2 compiles 3 +01:57:13 src/ov_SC06_016/ov_SC06_016_jr_8017C8D0.c:func_801813B0 A=DIFFERS B: removed 0 needed 12 compiles 13 +01:57:13 src/ov_SC07_007/ov_SC07_007_jr_8017BEBC.c:func_8018044C A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:13 src/resident/resident.c:func_800CFE60 A=DIFFERS B: removed 1 needed 2 compiles 5 +01:57:13 src/ov_SC07_002/ov_SC07_002_jr_8017C8D0.c:func_80185FB0 A=DIFFERS B: removed 0 needed 2 compiles 4 +01:57:13 src/ov_SC07_010/ov_SC07_010_jr_8017AE2C.c:func_80180480 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:13 src/resident/resident_jr_800D00E4.c:func_800D0488 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:13 src/resident/resident_jr_800D128C.c:func_800D1984 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:14 src/ov_SC06_032/ov_SC06_032_jr_80182890.c:func_8018BA4C A=DIFFERS B: removed 3 needed 2 compiles 7 +01:57:14 src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c:func_801835B0 A=DIFFERS B: removed 0 needed 7 compiles 8 +01:57:14 src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c:func_8017DB20 A=DIFFERS B: removed 2 needed 1 compiles 5 +01:57:14 src/resident/resident_jr_800D00E4.c:func_800D0E30 A=DIFFERS B: removed 2 needed 3 compiles 7 +01:57:14 src/resident/resident_jr_800D128C.c:func_800D128C A=DIFFERS B: removed 0 needed 3 compiles 4 +01:57:14 src/ov_SC07_007/ov_SC07_007_jr_8017BEBC.c:func_8018122C A=DIFFERS B: removed 1 needed 1 compiles 4 +01:57:14 src/resident/resident_jr_800D00E4.c:func_800D0214 A=DIFFERS B: removed 1 needed 1 compiles 4 +01:57:14 src/resident/resident_jr_800D128C.c:func_800D1658 A=DIFFERS B: removed 0 needed 3 compiles 5 +01:57:14 src/resident/resident_jr_800D00E4.c:func_800D02D0 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:14 src/ov_SC04_011/ov_SC04_011_jr_8017D494.c:func_8018E428 A=DIFFERS B: removed 1 needed 4 compiles 7 +01:57:14 src/resident/resident_jr_800D00E4.c:func_800D0D7C A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:14 src/resident/resident_jr_800D128C.c:func_800D2D10 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:14 src/ov_SC07_010/ov_SC07_010_jr_80140608.c:func_80140958 A=DIFFERS B: removed 7 needed 4 compiles 13 +01:57:15 src/resident/resident_jr_800D128C.c:func_800D2650 A=DIFFERS B: removed 1 needed 4 compiles 7 +01:57:15 src/resident/resident_jr_800D128C.c:func_800D1B80 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:15 src/ov_SC07_006/ov_SC07_006_jr_8017BEBC.c:func_80182F3C A=DIFFERS B: removed 6 needed 6 compiles 13 +01:57:15 src/ov_SC07_006/ov_SC07_006_jr_80171B4C.c:func_80176734 A=DIFFERS B: removed 1 needed 11 compiles 14 +01:57:16 src/ov_SC04_011/ov_SC04_011_jr_8017D494.c:func_8018315C A=DIFFERS B: removed 0 needed 2 compiles 4 +01:57:29 src/800.c:func_800226C0 A=DIFFERS B: removed 31 needed 14 compiles 47 +01:57:30 src/800.c:func_80020DA4 A=DIFFERS B: removed 0 needed 2 compiles 3 +01:57:34 src/800.c:func_8002AF70 A=DIFFERS B: removed 2 needed 3 compiles 7 +01:57:37 src/800.c:func_800241C0 A=DIFFERS B: removed 3 needed 3 compiles 8 +01:57:38 src/800.c:func_80016A7C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:45 src/800.c:func_80023570 A=DIFFERS B: removed 9 needed 4 compiles 15 +01:57:47 src/800.c:func_8001A114 A=DIFFERS B: removed 0 needed 2 compiles 3 +01:57:53 src/800.c:func_80016224 A=DIFFERS B: removed 3 needed 6 compiles 11 +01:57:54 src/800.c:func_80025A30 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:55 src/800.c:func_8001EA14 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:58:13 src/800.c:func_800215F4 A=DIFFERS B: removed 29 needed 7 compiles 38 +01:58:19 src/800.c:func_8002AC00 A=DIFFERS B: removed 4 needed 5 compiles 11 +01:58:25 src/800.c:func_8001BADC A=DIFFERS B: removed 5 needed 3 compiles 10 +01:58:26 src/800.c:func_800273F4 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:58:30 src/800.c:func_80015208 A=DIFFERS B: removed 3 needed 1 compiles 6 +01:58:35 src/800.c:func_8001BBBC A=DIFFERS B: removed 4 needed 4 compiles 10 +01:58:39 src/800.c:LoaderInitFileTable A=DIFFERS B: removed 0 needed 7 compiles 9 +01:58:40 src/shared/ov/func_8012A860.h:func_8012A860 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:58:41 src/shared/ov/func_8012C2D0.h:func_8012C2D0 A=DIFFERS B: removed 0 needed 2 compiles 3 +01:58:44 src/shared/ov/func_8012DBD0.h:func_8012DBD0 A=DIFFERS B: removed 8 needed 4 compiles 14 +01:58:46 src/shared/ov/func_80135004__0f8f8d0b.h:func_80135004 A=DIFFERS B: removed 4 needed 4 compiles 10 +01:58:48 src/shared/ov/func_80135168__bad0a585.h:func_80135168 A=DIFFERS B: removed 0 needed 5 compiles 7 +01:58:48 src/shared/ov/func_80135A4C__e0129286.h:func_80135A4C A=DIFFERS B: removed 0 needed 3 compiles 5 +01:58:49 src/shared/ov/func_80135EB0__c9438c12.h:func_80135EB0 A=DIFFERS B: removed 0 needed 6 compiles 8 +01:58:50 src/shared/ov/func_80136334__6e7f4730.h:func_80136334 A=DIFFERS B: removed 4 needed 4 compiles 10 +01:58:51 src/shared/ov/func_8013B274__28562738.h:func_8013B274 A=DIFFERS B: removed 4 needed 8 compiles 13 +01:58:51 src/shared/ov/func_8013D178__421ba659.h:func_8013D178 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:58:52 src/shared/ov/func_80140608__2fb5c201.h:func_80140608 A=DIFFERS B: removed 1 needed 1 compiles 4 +01:58:53 src/shared/ov/func_801415C0.h:func_801415C0 A=DIFFERS B: removed 3 needed 2 compiles 7 +01:58:53 src/shared/ov/func_80141B90.h:func_80141B90 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:58:54 src/shared/ov/func_80145A2C__530ca2ff.h:func_80145A2C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:58:54 src/shared/ov/func_801497A8.h:func_801497A8 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:58:55 src/shared/ov/func_8014DD8C.h:func_8014DD8C A=DIFFERS B: removed 0 needed 2 compiles 3 +01:58:56 src/shared/ov/func_8014F74C.h:func_8014F74C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:58:58 src/shared/ov/func_801536DC.h:func_801536DC A=DIFFERS B: removed 2 needed 1 compiles 5 +01:59:00 src/shared/ov/func_8015B6F4.h:func_8015B6F4 A=DIFFERS B: removed 1 needed 3 compiles 6 +01:59:02 src/shared/ov/func_801612B8.h:func_801612B8 A=DIFFERS B: removed 2 needed 1 compiles 5 +01:59:05 src/shared/ov/func_80162438__e113e304.h:func_80162438 A=DIFFERS B: removed 2 needed 3 compiles 7 +01:59:09 src/shared/ov/func_80166054.h:func_80166054 A=DIFFERS B: removed 5 needed 5 compiles 12 +01:59:11 src/shared/ov/func_80166F58__3728db8a.h:func_80166F58 A=DIFFERS B: removed 2 needed 2 compiles 6 +01:59:12 src/shared/ov/func_8016DF5C__a8a4aea4.h:func_8016DF5C A=DIFFERS B: removed 1 needed 2 compiles 5 +01:59:13 src/shared/ov/func_801759D8.h:func_801759D8 A=DIFFERS B: removed 1 needed 1 compiles 3 +01:59:16 src/shared/ov/func_80176734__261d72d2.h:func_80176734 A=DIFFERS B: removed 1 needed 11 compiles 14 +01:59:18 src/shared/ov/func_801778A8.h:func_801778A8 A=DIFFERS B: removed 3 needed 2 compiles 7 +01:59:23 src/shared/ov/func_80177B5C__879ede92.h:func_80177B5C A=DIFFERS B: removed 8 needed 15 compiles 25 +01:59:24 src/shared/ov/func_8017CF6C__4771362e.h:func_8017CF6C A=DIFFERS B: removed 0 needed 1 compiles 3 +01:59:24 src/shared/ov/func_8017D0BC__4f23330c.h:func_8017D0BC A=DIFFERS B: removed 0 needed 1 compiles 3 +01:59:24 src/shared/ov/func_8017E98C__94ae7b9b.h:func_8017E98C A=DIFFERS B: removed 0 needed 1 compiles 3 +01:59:25 src/shared/ov/func_80181538__27797037.h:func_80181538 A=DIFFERS B: removed 0 needed 2 compiles 4 +01:59:25 src/shared/ov/func_80188028.h:func_80188028 A=DIFFERS B: removed 0 needed 1 compiles 2 diff --git a/.run/P36/probe/probe_results.jsonl b/.run/P36/probe/probe_results.jsonl new file mode 100644 index 000000000..17b68079a --- /dev/null +++ b/.run/P36/probe/probe_results.jsonl @@ -0,0 +1,285 @@ +{"tu": "src/800.c", "fn": "func_80014E24", "nhash": "ec8a1f8a781726e1e9f211277252f59425a53e7c", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 1, "sites": [{"kind": "instruction", "cls": "B", "detail": "andi", "line": 2308}], "refused": [], "compiles": 1, "seconds": 0.6941778659820557, "features": {"kind": "main", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": true, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "instruction", "detail": "andi", "line": 2308}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/800.c", "fn": "func_80012E6C", "nhash": "7a70787d7083b44c39e66f77c8ec2360b804252b", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$0", "line": 644}], "refused": [], "compiles": 3, "seconds": 1.9099109172821045, "features": {"kind": "main", "n": 1, "bucket": "1", "mix": "pins-only", "zero": true, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$0", "line": 644, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800.c", "fn": "func_800242D0", "nhash": "fc0d508f2be23b480f10fbc420bf9c0de582cef0", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 11, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 16295}, {"kind": "launder", "cls": "B", "detail": "", "line": 16309}, {"kind": "launder", "cls": "B", "detail": "", "line": 16325}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 16276}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 16277}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 16279}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 16280}, {"kind": "pin", "cls": "A", "detail": "$12", "line": 16281}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 16282}, {"kind": "pin", "cls": "A", "detail": "$11", "line": 16283}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 16284}], "refused": [], "compiles": 13, "seconds": 8.117592334747314, "features": {"kind": "main", "n": 11, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 11, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$8", "line": 16276}, {"kind": "pin", "detail": "$9", "line": 16277}, {"kind": "pin", "detail": "$3", "line": 16279}, {"kind": "pin", "detail": "$12", "line": 16281}, {"kind": "pin", "detail": "$10", "line": 16282}, {"kind": "pin", "detail": "$11", "line": 16283}], "needed": [{"kind": "launder", "detail": "", "line": 16295, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 16309, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 16325, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$7", "line": 16280, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 16284, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800.c", "fn": "func_800226C0", "nhash": "47f1042f0dda6f163009793a11ef16f405c29af1", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 45, "sites": [{"kind": "pin", "cls": "A", "detail": "$25", "line": 14934}, {"kind": "pin", "cls": "A", "detail": "$24", "line": 14935}, {"kind": "pin", "cls": "A", "detail": "$11", "line": 14936}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 14937}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 14938}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 14949}, {"kind": "pin", "cls": "A", "detail": "$13", "line": 14950}, {"kind": "pin", "cls": "A", "detail": "$14", "line": 14951}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 14952}, {"kind": "pin", "cls": "A", "detail": "$12", "line": 14953}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 14979}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 14980}, {"kind": "pin", "cls": "A", "detail": "$14", "line": 14981}, {"kind": "pin", "cls": "A", "detail": "$15", "line": 14982}, {"kind": "pin", "cls": "A", "detail": "$12", "line": 14983}, {"kind": "pin", "cls": "A", "detail": "$13", "line": 14984}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 15029}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 15030}, {"kind": "pin", "cls": "A", "detail": "$12", "line": 15045}, {"kind": "pin", "cls": "A", "detail": "$15", "line": 15046}, {"kind": "pin", "cls": "A", "detail": "$14", "line": 15047}, {"kind": "pin", "cls": "A", "detail": "$13", "line": 15048}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 15049}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 15050}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 15117}, {"kind": "pin", "cls": "A", "detail": "$15", "line": 15118}, {"kind": "pin", "cls": "A", "detail": "$14", "line": 15119}, {"kind": "pin", "cls": "A", "detail": "$13", "line": 15120}, {"kind": "pin", "cls": "A", "detail": "$12", "line": 15121}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 15122}, {"kind": "pin", "cls": "A", "detail": "$12", "line": 15189}, {"kind": "pin", "cls": "A", "detail": "$13", "line": 15190}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 15191}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 15192}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 15259}, {"kind": "pin", "cls": "A", "detail": "$14", "line": 15262}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 15263}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 15264}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 15294}, {"kind": "pin", "cls": "A", "detail": "$14", "line": 15297}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 15298}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 15299}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 15300}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 15331}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 15332}], "refused": [], "compiles": 47, "seconds": 24.264562606811523, "features": {"kind": "main", "n": 45, "bucket": "10+", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 45, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$25", "line": 14934}, {"kind": "pin", "detail": "$24", "line": 14935}, {"kind": "pin", "detail": "$11", "line": 14936}, {"kind": "pin", "detail": "$17", "line": 14937}, {"kind": "pin", "detail": "$5", "line": 14949}, {"kind": "pin", "detail": "$13", "line": 14950}, {"kind": "pin", "detail": "$14", "line": 14951}, {"kind": "pin", "detail": "$10", "line": 14952}, {"kind": "pin", "detail": "$12", "line": 14953}, {"kind": "pin", "detail": "$10", "line": 14979}, {"kind": "pin", "detail": "$14", "line": 14981}, {"kind": "pin", "detail": "$15", "line": 14982}, {"kind": "pin", "detail": "$12", "line": 14983}, {"kind": "pin", "detail": "$13", "line": 14984}, {"kind": "pin", "detail": "$5", "line": 15029}, {"kind": "pin", "detail": "$12", "line": 15045}, {"kind": "pin", "detail": "$15", "line": 15046}, {"kind": "pin", "detail": "$10", "line": 15117}, {"kind": "pin", "detail": "$15", "line": 15118}, {"kind": "pin", "detail": "$14", "line": 15119}, {"kind": "pin", "detail": "$13", "line": 15120}, {"kind": "pin", "detail": "$12", "line": 15189}, {"kind": "pin", "detail": "$13", "line": 15190}, {"kind": "pin", "detail": "$5", "line": 15259}, {"kind": "pin", "detail": "$14", "line": 15262}, {"kind": "pin", "detail": "$9", "line": 15263}, {"kind": "pin", "detail": "$10", "line": 15264}, {"kind": "pin", "detail": "$5", "line": 15294}, {"kind": "pin", "detail": "$14", "line": 15297}, {"kind": "pin", "detail": "$9", "line": 15298}, {"kind": "pin", "detail": "$10", "line": 15299}], "needed": [{"kind": "pin", "detail": "$4", "line": 14938, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 14980, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 15030, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$14", "line": 15047, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$13", "line": 15048, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$10", "line": 15049, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 15050, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$12", "line": 15121, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 15122, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$10", "line": 15191, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 15192, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$6", "line": 15300, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 15331, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 15332, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800.c", "fn": "func_80020DA4", "nhash": "13e7efd861982042ce5742382c2f8f7f7570312b", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 2, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 13498}, {"kind": "launder", "cls": "B", "detail": "", "line": 13517}], "refused": [], "compiles": 3, "seconds": 1.4114608764648438, "features": {"kind": "main", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "launder", "detail": "", "line": 13498, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 13517, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800.c", "fn": "func_8002AF70", "nhash": "ec004c59de18dba719738372ae019784dbc60a69", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 5, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 22350}, {"kind": "instruction", "cls": "B", "detail": "lui", "line": 22335}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 22330}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 22331}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 22332}], "refused": [], "compiles": 7, "seconds": 3.1497817039489746, "features": {"kind": "main", "n": 5, "bucket": "5-9", "mix": "mixed", "zero": false, "init": true, "instr": true, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$17", "line": 22330}, {"kind": "pin", "detail": "$18", "line": 22331}], "needed": [{"kind": "launder", "detail": "", "line": 22350, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "lui", "line": 22335, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$16", "line": 22332, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800.c", "fn": "func_800241C0", "nhash": "92b21194264aaf5a40c91b2dddf3fe29e1b35800", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 6, "sites": [{"kind": "pin", "cls": "A", "detail": "$7", "line": 16220}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 16222}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 16223}, {"kind": "pin", "cls": "A", "detail": "$0", "line": 16224}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 16225}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 16226}], "refused": [], "compiles": 8, "seconds": 3.7086384296417236, "features": {"kind": "main", "n": 6, "bucket": "5-9", "mix": "pins-only", "zero": true, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 6, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$7", "line": 16220}, {"kind": "pin", "detail": "$6", "line": 16223}, {"kind": "pin", "detail": "$3", "line": 16226}], "needed": [{"kind": "pin", "detail": "$4", "line": 16222, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$0", "line": 16224, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 16225, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800.c", "fn": "func_80016A7C", "nhash": "867f7651c55c3bc9879b5fe5c30f38a950e24616", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 4159}], "refused": [], "compiles": 2, "seconds": 0.9399509429931641, "features": {"kind": "main", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 4159, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800.c", "fn": "func_80023570", "nhash": "be1e5f2b5089cef5231d199d0394c7ae59452988", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 13, "sites": [{"kind": "pin", "cls": "A", "detail": "$5", "line": 15525}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 15532}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 15533}, {"kind": "pin", "cls": "A", "detail": "$14", "line": 15534}, {"kind": "pin", "cls": "A", "detail": "$13", "line": 15535}, {"kind": "pin", "cls": "A", "detail": "$11", "line": 15536}, {"kind": "pin", "cls": "A", "detail": "$15", "line": 15537}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 15538}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 15539}, {"kind": "pin", "cls": "A", "detail": "$12", "line": 15540}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 15541}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 15542}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 15543}], "refused": [], "compiles": 15, "seconds": 6.89096736907959, "features": {"kind": "main", "n": 13, "bucket": "10+", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 13, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$5", "line": 15525}, {"kind": "pin", "detail": "$8", "line": 15532}, {"kind": "pin", "detail": "$7", "line": 15533}, {"kind": "pin", "detail": "$14", "line": 15534}, {"kind": "pin", "detail": "$13", "line": 15535}, {"kind": "pin", "detail": "$11", "line": 15536}, {"kind": "pin", "detail": "$15", "line": 15537}, {"kind": "pin", "detail": "$10", "line": 15538}, {"kind": "pin", "detail": "$12", "line": 15540}], "needed": [{"kind": "pin", "detail": "$9", "line": 15539, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$6", "line": 15541, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 15542, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 15543, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800.c", "fn": "func_8001A114", "nhash": "2a3b876106c4ff67e5bad1ae68c5d168d83143b8", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 2, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 7512}, {"kind": "launder", "cls": "B", "detail": "", "line": 7514}], "refused": [], "compiles": 3, "seconds": 1.415764331817627, "features": {"kind": "main", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "launder", "detail": "", "line": 7512, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 7514, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800.c", "fn": "func_80013478", "nhash": "04b605d66792a933f7fd9319cae15146ca60e31d", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 3, "sites": [{"kind": "pin", "cls": "A", "detail": "$4", "line": 866}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 867}, {"kind": "decl-body", "cls": "C", "detail": "", "line": 868}], "refused": [], "compiles": 2, "seconds": 0.9448676109313965, "features": {"kind": "main", "n": 3, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 3, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$4", "line": 866}, {"kind": "pin", "detail": "$5", "line": 867}, {"kind": "decl-body", "detail": "", "line": 868}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/800.c", "fn": "func_80016224", "nhash": "fc931ada06a4b84f474d7541fb25c43d60b78dfc", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 9, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 3615}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 3622}, {"kind": "launder", "cls": "B", "detail": "out-only", "line": 3643}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 3628}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 3629}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 3630}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3631}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3639}, {"kind": "register", "cls": "D", "detail": "", "line": 3638}], "refused": [], "compiles": 11, "seconds": 5.167917728424072, "features": {"kind": "main", "n": 9, "bucket": "5-9", "mix": "mixed", "zero": false, "init": true, "instr": false, "cast": false, "register": true, "volatile": false, "launder": true, "barrier": true, "keepalive": false}, "n_usable": 9, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$7", "line": 3628}, {"kind": "pin", "detail": "$8", "line": 3629}, {"kind": "register", "detail": "", "line": 3638}], "needed": [{"kind": "barrier", "detail": "memory", "line": 3615, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "memory", "line": 3622, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "out-only", "line": 3643, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$6", "line": 3630, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 3631, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 3639, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800.c", "fn": "func_80025A30", "nhash": "68980ea7003f07ba6c05215cc1bd2bcb49ab9ee7", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 1, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 17660}], "refused": [], "compiles": 2, "seconds": 0.8886568546295166, "features": {"kind": "main", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "launder", "detail": "", "line": 17660, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800.c", "fn": "func_8001EA14", "nhash": "6d9c735d2607ce68b0a9884ec62df91ab2bba8b4", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 11631}], "refused": [], "compiles": 3, "seconds": 1.3525948524475098, "features": {"kind": "main", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$2", "line": 11631, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800.c", "fn": "func_800215F4", "nhash": "8bae4b8e8d1ac46a32546ff30118354e158a12f9", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 36, "sites": [{"kind": "pin", "cls": "A", "detail": "$8", "line": 14016}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 14017}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 14018}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 14019}, {"kind": "pin", "cls": "A", "detail": "$11", "line": 14020}, {"kind": "pin", "cls": "A", "detail": "$12", "line": 14021}, {"kind": "pin", "cls": "A", "detail": "$13", "line": 14022}, {"kind": "pin", "cls": "A", "detail": "$14", "line": 14023}, {"kind": "pin", "cls": "A", "detail": "$25", "line": 14024}, {"kind": "pin", "cls": "A", "detail": "$24", "line": 14025}, {"kind": "pin", "cls": "A", "detail": "$15", "line": 14026}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 14027}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 14028}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 14029}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 14030}, {"kind": "pin", "cls": "A", "detail": "$13", "line": 14032}, {"kind": "pin", "cls": "A", "detail": "$11", "line": 14033}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 14034}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 14035}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 14036}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 14037}, {"kind": "pin", "cls": "A", "detail": "$11", "line": 14049}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 14050}, {"kind": "pin", "cls": "A", "detail": "$24", "line": 14052}, {"kind": "pin", "cls": "A", "detail": "$15", "line": 14053}, {"kind": "pin", "cls": "A", "detail": "$14", "line": 14054}, {"kind": "pin", "cls": "A", "detail": "$13", "line": 14055}, {"kind": "pin", "cls": "A", "detail": "$12", "line": 14056}, {"kind": "pin", "cls": "A", "detail": "$11", "line": 14057}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 14058}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 14059}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 14060}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 14061}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 14064}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 14065}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 14066}], "refused": [], "compiles": 38, "seconds": 17.681344985961914, "features": {"kind": "main", "n": 36, "bucket": "10+", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 36, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$8", "line": 14016}, {"kind": "pin", "detail": "$9", "line": 14018}, {"kind": "pin", "detail": "$10", "line": 14019}, {"kind": "pin", "detail": "$11", "line": 14020}, {"kind": "pin", "detail": "$12", "line": 14021}, {"kind": "pin", "detail": "$13", "line": 14022}, {"kind": "pin", "detail": "$14", "line": 14023}, {"kind": "pin", "detail": "$25", "line": 14024}, {"kind": "pin", "detail": "$24", "line": 14025}, {"kind": "pin", "detail": "$15", "line": 14026}, {"kind": "pin", "detail": "$6", "line": 14029}, {"kind": "pin", "detail": "$3", "line": 14030}, {"kind": "pin", "detail": "$13", "line": 14032}, {"kind": "pin", "detail": "$11", "line": 14033}, {"kind": "pin", "detail": "$10", "line": 14034}, {"kind": "pin", "detail": "$9", "line": 14035}, {"kind": "pin", "detail": "$7", "line": 14036}, {"kind": "pin", "detail": "$11", "line": 14049}, {"kind": "pin", "detail": "$10", "line": 14050}, {"kind": "pin", "detail": "$24", "line": 14052}, {"kind": "pin", "detail": "$15", "line": 14053}, {"kind": "pin", "detail": "$14", "line": 14054}, {"kind": "pin", "detail": "$13", "line": 14055}, {"kind": "pin", "detail": "$12", "line": 14056}, {"kind": "pin", "detail": "$11", "line": 14057}, {"kind": "pin", "detail": "$10", "line": 14058}, {"kind": "pin", "detail": "$4", "line": 14064}, {"kind": "pin", "detail": "$3", "line": 14065}, {"kind": "pin", "detail": "$4", "line": 14066}], "needed": [{"kind": "pin", "detail": "$7", "line": 14017, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 14027, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 14028, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$6", "line": 14037, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$9", "line": 14059, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 14060, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 14061, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800.c", "fn": "func_8002AC00", "nhash": "1f80f0ae419f75e8ecb497f8547abac89bde8629", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 9, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 22155}, {"kind": "launder", "cls": "B", "detail": "", "line": 22159}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 22143}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 22144}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 22145}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 22146}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 22147}, {"kind": "pin", "cls": "A", "detail": "$0", "line": 22148}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 22149}], "refused": [], "compiles": 11, "seconds": 6.0163493156433105, "features": {"kind": "main", "n": 9, "bucket": "5-9", "mix": "mixed", "zero": true, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 9, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "launder", "detail": "", "line": 22155}, {"kind": "pin", "detail": "$18", "line": 22143}, {"kind": "pin", "detail": "$3", "line": 22147}, {"kind": "pin", "detail": "$0", "line": 22148}], "needed": [{"kind": "launder", "detail": "", "line": 22159, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$16", "line": 22144, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$19", "line": 22145, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 22146, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 22149, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800.c", "fn": "func_8001BADC", "nhash": "2791484226781aae21fde2675527ca1b0881c02e", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 8, "sites": [{"kind": "pin", "cls": "A", "detail": "$10", "line": 8998}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 8999}, {"kind": "pin", "cls": "A", "detail": "$11", "line": 9000}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 9001}, {"kind": "pin", "cls": "A", "detail": "$12", "line": 9002}, {"kind": "pin", "cls": "A", "detail": "$13", "line": 9003}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 9004}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 9005}], "refused": [], "compiles": 10, "seconds": 6.149710416793823, "features": {"kind": "main", "n": 8, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 8, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$10", "line": 8998}, {"kind": "pin", "detail": "$8", "line": 8999}, {"kind": "pin", "detail": "$9", "line": 9001}, {"kind": "pin", "detail": "$12", "line": 9002}, {"kind": "pin", "detail": "$13", "line": 9003}], "needed": [{"kind": "pin", "detail": "$11", "line": 9000, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$6", "line": 9004, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 9005, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800.c", "fn": "func_800273F4", "nhash": "3b716231ab6a6fb9f40741f94140e4793210ebbb", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 1, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 19386}], "refused": [], "compiles": 2, "seconds": 1.1731901168823242, "features": {"kind": "main", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "launder", "detail": "", "line": 19386, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800.c", "fn": "func_80015208", "nhash": "e920d69338090c58c46ca35763b8650971b80f20", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 4, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 2526}, {"kind": "launder", "cls": "B", "detail": "", "line": 2547}, {"kind": "launder", "cls": "B", "detail": "", "line": 2550}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 2518}], "refused": [], "compiles": 6, "seconds": 3.4005818367004395, "features": {"kind": "main", "n": 4, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 4, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "launder", "detail": "", "line": 2526}, {"kind": "launder", "detail": "", "line": 2547}, {"kind": "pin", "detail": "$5", "line": 2518}], "needed": [{"kind": "launder", "detail": "", "line": 2550, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800.c", "fn": "func_8001BBBC", "nhash": "c8c1d1b8f650917cb431d1d4f3736c7668a298a5", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 8, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 9111}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 9100}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 9101}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 9102}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 9103}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 9104}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 9105}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 9106}], "refused": [], "compiles": 10, "seconds": 5.154584646224976, "features": {"kind": "main", "n": 8, "bucket": "5-9", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 8, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$7", "line": 9100}, {"kind": "pin", "detail": "$9", "line": 9104}, {"kind": "pin", "detail": "$4", "line": 9105}, {"kind": "pin", "detail": "$10", "line": 9106}], "needed": [{"kind": "launder", "detail": "", "line": 9111, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$8", "line": 9101, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 9102, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 9103, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800.c", "fn": "LoaderInitFileTable", "nhash": "5fdbc8242149ee3c1d0193f40f23dcc6425a1fc3", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800.o", "n_sites": 7, "sites": [{"kind": "pin", "cls": "A", "detail": "$21", "line": 6771}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 6772}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 6773}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 6774}, {"kind": "pin", "cls": "A", "detail": "$21", "line": 6777}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 6783}, {"kind": "pin", "cls": "A", "detail": "$21", "line": 6784}], "refused": [], "compiles": 9, "seconds": 4.5361175537109375, "features": {"kind": "main", "n": 7, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 7, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$21", "line": 6771, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$18", "line": 6772, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$19", "line": 6773, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$17", "line": 6774, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$21", "line": 6777, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$19", "line": 6783, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$21", "line": 6784, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800_b.c", "fn": "func_8002B0B4", "nhash": "7a7f51a45f34d5374c01f47abc5cb93767218b3d", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800_b.o", "n_sites": 5, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 353}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 358}, {"kind": "launder", "cls": "B", "detail": "", "line": 292}, {"kind": "launder", "cls": "B", "detail": "", "line": 307}, {"kind": "launder", "cls": "B", "detail": "", "line": 314}], "refused": [], "compiles": 6, "seconds": 0.38515782356262207, "features": {"kind": "main", "n": 5, "bucket": "5-9", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": true, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 353, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "memory", "line": 358, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 292, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 307, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 314, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800_b_2.c", "fn": "func_8002D034", "nhash": "23af6367933214ca2057026fbc615555d50db489", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800_b_2.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$8", "line": 560}], "refused": [], "compiles": 2, "seconds": 0.5361876487731934, "features": {"kind": "main", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$8", "line": 560}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/800_b_2.c", "fn": "func_8002EFF8", "nhash": "5cd4d3aee488bb9c164f5dfba7e8e530381410f5", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800_b_2.o", "n_sites": 3, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 2063}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 2064}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 2065}], "refused": [], "compiles": 5, "seconds": 1.2357933521270752, "features": {"kind": "main", "n": 3, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$2", "line": 2063}], "needed": [{"kind": "pin", "detail": "$3", "line": 2064, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 2065, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800_b_2.c", "fn": "func_8002FF0C", "nhash": "827913560a7f26fa86af42b08506e0ea820c1404", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800_b_2.o", "n_sites": 3, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 2962}, {"kind": "barrier", "cls": "B", "detail": "", "line": 2979}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 2988}], "refused": [], "compiles": 4, "seconds": 0.9725127220153809, "features": {"kind": "main", "n": 3, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 2962, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 2979, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "memory", "line": 2988, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800_b_2.c", "fn": "func_80034314", "nhash": "be6a9582b481f188f2cca51cda61b9e3b73ccf36", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800_b_2.o", "n_sites": 3, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 6876}, {"kind": "launder", "cls": "B", "detail": "", "line": 6908}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 6818}], "refused": [], "compiles": 5, "seconds": 1.1650714874267578, "features": {"kind": "main", "n": 3, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "launder", "detail": "", "line": 6876}, {"kind": "launder", "detail": "", "line": 6908}], "needed": [{"kind": "pin", "detail": "$3", "line": 6818, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800_b_2.c", "fn": "func_80030CA4", "nhash": "2f41634bb0e8ee7bc2775bb9444c770215aa7820", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800_b_2.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$6", "line": 3485}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 3486}], "refused": [], "compiles": 2, "seconds": 0.46119189262390137, "features": {"kind": "main", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$6", "line": 3485}, {"kind": "pin", "detail": "$7", "line": 3486}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/800_b_2.c", "fn": "func_8003388C", "nhash": "22d7b1af5e42c8909a2ba578830a98b67a6fb9ac", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800_b_2.o", "n_sites": 17, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 6680}, {"kind": "launder", "cls": "B", "detail": "", "line": 6590}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 6305}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 6306}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 6307}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 6308}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 6313}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 6314}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 6315}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 6319}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 6320}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 6321}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 6327}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 6331}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 6332}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 6333}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 6334}], "refused": [], "compiles": 19, "seconds": 4.823818922042847, "features": {"kind": "main", "n": 17, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": true, "keepalive": false}, "n_usable": 17, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$3", "line": 6306}, {"kind": "pin", "detail": "$3", "line": 6313}], "needed": [{"kind": "barrier", "detail": "", "line": 6680, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 6590, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 6305, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 6307, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 6308, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 6314, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 6315, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 6319, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 6320, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 6321, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 6327, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 6331, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 6332, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 6333, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 6334, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800_b_2.c", "fn": "func_8002FDE8", "nhash": "16d57f6828886a83179588c208cc05dff010dcbf", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800_b_2.o", "n_sites": 2, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 2867}, {"kind": "barrier", "cls": "B", "detail": "", "line": 2874}], "refused": [], "compiles": 1, "seconds": 0.2434368133544922, "features": {"kind": "main", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 2, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "barrier", "detail": "", "line": 2867}, {"kind": "barrier", "detail": "", "line": 2874}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/800_b_2.c", "fn": "func_8002C8BC", "nhash": "5513bcec83150003ad40aa50f082fb65126d8f93", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800_b_2.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$4", "line": 98}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 99}], "refused": [], "compiles": 2, "seconds": 0.4946305751800537, "features": {"kind": "main", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$4", "line": 98}, {"kind": "pin", "detail": "$3", "line": 99}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/800_c.c", "fn": "func_800383A4", "nhash": "4c8691ea55e023e80e74c018fca25dcb6b91ac66", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800_c.o", "n_sites": 2, "sites": [{"kind": "instruction", "cls": "B", "detail": "sll", "line": 2595}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 2593}], "refused": [{"kind": "instruction", "line": 2595, "why": "instruction `sll` has no C spelling in the table"}], "compiles": 3, "seconds": 0.4886894226074219, "features": {"kind": "main", "n": 2, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": true, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$2", "line": 2593, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800_c.c", "fn": "func_800385C0", "nhash": "e98bce6cfc6e87c0af321b4ce3177d555eb345c1", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800_c.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$4", "line": 2677}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 2678}], "refused": [], "compiles": 4, "seconds": 0.657034158706665, "features": {"kind": "main", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$4", "line": 2677, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 2678, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800_c.c", "fn": "func_800391D4", "nhash": "11ec0bfa18c1e6113c7591198185635f1ac6d2dd", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800_c.o", "n_sites": 10, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 3402}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3403}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3404}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3405}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3406}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3407}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3408}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3409}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3410}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 3392}], "refused": [], "compiles": 12, "seconds": 1.788902759552002, "features": {"kind": "main", "n": 10, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 10, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 3402, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3403, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3404, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3405, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3406, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3407, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3408, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3409, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3410, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$7", "line": 3392, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800_c.c", "fn": "func_80038958", "nhash": "d4d8d5d6be19a0208253eaaf697ba7b9357bde11", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800_c.o", "n_sites": 7, "sites": [{"kind": "pin", "cls": "A", "detail": "$7", "line": 2886}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 2887}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 2888}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 2889}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 2890}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 2891}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 2892}], "refused": [], "compiles": 9, "seconds": 1.318082332611084, "features": {"kind": "main", "n": 7, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 7, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$7", "line": 2886}, {"kind": "pin", "detail": "$6", "line": 2887}, {"kind": "pin", "detail": "$5", "line": 2888}, {"kind": "pin", "detail": "$8", "line": 2890}, {"kind": "pin", "detail": "$2", "line": 2891}], "needed": [{"kind": "pin", "detail": "$4", "line": 2889, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 2892, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800_c.c", "fn": "func_80038A58", "nhash": "f21d67b99aba0598906ff5e767c4fc9a480e59e7", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800_c.o", "n_sites": 35, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 3129}, {"kind": "instruction", "cls": "B", "detail": "addiu", "line": 3155}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 2988}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 2989}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 2990}, {"kind": "pin", "cls": "A", "detail": "$20", "line": 2991}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 2996}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 3007}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 3008}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 3009}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3010}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 3011}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3012}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3013}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3061}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 3062}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3063}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 3064}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3065}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3097}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3102}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 3114}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 3115}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 3149}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3150}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 3167}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3168}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3188}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 3189}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3190}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3206}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 3207}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 3208}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3209}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 3210}], "refused": [], "compiles": 37, "seconds": 5.967303276062012, "features": {"kind": "main", "n": 35, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": true, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 35, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$19", "line": 2988}, {"kind": "pin", "detail": "$18", "line": 2990}, {"kind": "pin", "detail": "$20", "line": 2991}, {"kind": "pin", "detail": "$2", "line": 2996}, {"kind": "pin", "detail": "$7", "line": 3007}, {"kind": "pin", "detail": "$6", "line": 3008}, {"kind": "pin", "detail": "$5", "line": 3009}, {"kind": "pin", "detail": "$8", "line": 3011}, {"kind": "pin", "detail": "$2", "line": 3012}, {"kind": "pin", "detail": "$3", "line": 3061}, {"kind": "pin", "detail": "$5", "line": 3062}, {"kind": "pin", "detail": "$4", "line": 3063}, {"kind": "pin", "detail": "$16", "line": 3064}, {"kind": "pin", "detail": "$3", "line": 3065}, {"kind": "pin", "detail": "$2", "line": 3097}, {"kind": "pin", "detail": "$2", "line": 3102}, {"kind": "pin", "detail": "$8", "line": 3114}, {"kind": "pin", "detail": "$5", "line": 3149}, {"kind": "pin", "detail": "$3", "line": 3150}, {"kind": "pin", "detail": "$5", "line": 3167}, {"kind": "pin", "detail": "$3", "line": 3188}, {"kind": "pin", "detail": "$5", "line": 3189}, {"kind": "pin", "detail": "$4", "line": 3190}, {"kind": "pin", "detail": "$3", "line": 3206}, {"kind": "pin", "detail": "$5", "line": 3208}, {"kind": "pin", "detail": "$6", "line": 3210}], "needed": [{"kind": "barrier", "detail": "", "line": 3129, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "addiu", "line": 3155, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$17", "line": 2989, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 3010, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 3013, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 3115, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 3168, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 3207, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 3209, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/800_c.c", "fn": "func_800384A8", "nhash": "ec06d02a25786ff320fe744d486e735c06bb84e4", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/800_c.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$4", "line": 2633}], "refused": [], "compiles": 3, "seconds": 0.5024056434631348, "features": {"kind": "main", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$4", "line": 2633, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/boot.c", "fn": "func_80011380", "nhash": "d3117dc009972b4a02d75608b7032fbf9d109d2c", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/boot.o", "n_sites": 1, "sites": [{"kind": "register", "cls": "D", "detail": "", "line": 771}], "refused": [], "compiles": 2, "seconds": 0.13570070266723633, "features": {"kind": "main", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": true, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "register", "detail": "", "line": 771, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/boot.c", "fn": "func_80011C8C", "nhash": "bd9fa1f98307e79154e0772a80cdb318c3930d34", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/boot.o", "n_sites": 1, "sites": [{"kind": "register", "cls": "D", "detail": "", "line": 982}], "refused": [], "compiles": 2, "seconds": 0.14371275901794434, "features": {"kind": "main", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": true, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "register", "detail": "", "line": 982, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/boot.c", "fn": "func_80010F80", "nhash": "596e97d734cf00e7ad60b564ff4673768ebfece9", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/boot.o", "n_sites": 1, "sites": [{"kind": "register", "cls": "D", "detail": "", "line": 603}], "refused": [], "compiles": 2, "seconds": 0.13730931282043457, "features": {"kind": "main", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": true, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "register", "detail": "", "line": 603, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/boot.c", "fn": "func_80010A08", "nhash": "04c2d36aa26aaf41582dba31d95605ae54a44e1e", "kind": "main", "aliases": ["main"], "header": false, "obj": "build/src/boot.o", "n_sites": 1, "sites": [{"kind": "register", "cls": "D", "detail": "", "line": 416}], "refused": [], "compiles": 2, "seconds": 0.14122772216796875, "features": {"kind": "main", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": true, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "register", "detail": "", "line": 416, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_MAIN_001/md_MAIN_001.c", "fn": "func_800CF290", "nhash": "3c8ee9ada9a267efb0b08e7092c4ec3c825b2819", "kind": "md", "aliases": ["md_MAIN_001"], "header": false, "obj": "build/src/md_MAIN_001/md_MAIN_001.o", "n_sites": 13, "sites": [{"kind": "pin", "cls": "A", "detail": "$7", "line": 235}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 236}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 237}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 238}, {"kind": "pin", "cls": "A", "detail": "$13", "line": 239}, {"kind": "pin", "cls": "A", "detail": "$14", "line": 240}, {"kind": "pin", "cls": "A", "detail": "$12", "line": 241}, {"kind": "pin", "cls": "A", "detail": "$11", "line": 242}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 243}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 244}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 285}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 305}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 306}], "refused": [], "compiles": 15, "seconds": 0.864593505859375, "features": {"kind": "md", "n": 13, "bucket": "10+", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 13, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$7", "line": 235}, {"kind": "pin", "detail": "$4", "line": 236}, {"kind": "pin", "detail": "$6", "line": 238}, {"kind": "pin", "detail": "$13", "line": 239}, {"kind": "pin", "detail": "$12", "line": 241}, {"kind": "pin", "detail": "$11", "line": 242}, {"kind": "pin", "detail": "$10", "line": 243}, {"kind": "pin", "detail": "$9", "line": 244}, {"kind": "pin", "detail": "$5", "line": 306}], "needed": [{"kind": "pin", "detail": "$3", "line": 237, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$14", "line": 240, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$8", "line": 285, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$8", "line": 305, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_MAIN_003/md_MAIN_003.c", "fn": "func_800CF3E8", "nhash": "d1c13cfb21ff96bc06a99474dcd8d2c3fbb49a77", "kind": "md", "aliases": ["md_MAIN_003"], "header": false, "obj": "build/src/md_MAIN_003/md_MAIN_003.o", "n_sites": 12, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 343}, {"kind": "barrier", "cls": "B", "detail": "", "line": 354}, {"kind": "barrier", "cls": "B", "detail": "", "line": 461}, {"kind": "pin", "cls": "A", "detail": "$15", "line": 301}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 306}, {"kind": "pin", "cls": "A", "detail": "$13", "line": 307}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 308}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 309}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 310}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 311}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 312}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 313}], "refused": [], "compiles": 14, "seconds": 0.9040002822875977, "features": {"kind": "md", "n": 12, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 12, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$6", "line": 306}, {"kind": "pin", "detail": "$4", "line": 311}, {"kind": "pin", "detail": "$3", "line": 312}, {"kind": "pin", "detail": "$5", "line": 313}], "needed": [{"kind": "barrier", "detail": "", "line": 343, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 354, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 461, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$15", "line": 301, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$13", "line": 307, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$8", "line": 308, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 309, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$9", "line": 310, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_MAIN_003/md_MAIN_003.c", "fn": "func_800CFEB4", "nhash": "37755c31e1a0634953f9b72d16e8528dee99cb3a", "kind": "md", "aliases": ["md_MAIN_003"], "header": false, "obj": "build/src/md_MAIN_003/md_MAIN_003.o", "n_sites": 11, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 718}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 709}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 710}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 714}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 726}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 730}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 731}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 732}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 733}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 734}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 735}], "refused": [], "compiles": 13, "seconds": 0.7507901191711426, "features": {"kind": "md", "n": 11, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 11, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$18", "line": 709}, {"kind": "pin", "detail": "$9", "line": 714}, {"kind": "pin", "detail": "$8", "line": 726}, {"kind": "pin", "detail": "$7", "line": 730}, {"kind": "pin", "detail": "$4", "line": 731}, {"kind": "pin", "detail": "$2", "line": 733}, {"kind": "pin", "detail": "$4", "line": 735}], "needed": [{"kind": "launder", "detail": "", "line": 718, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$16", "line": 710, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$6", "line": 732, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 734, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_MAIN_003/md_MAIN_003_jr_800D1E18.c", "fn": "func_800D2A24", "nhash": "3cbe94224769fe3223c1e7e210411f0ff2c33975", "kind": "md", "aliases": ["md_MAIN_003"], "header": false, "obj": "build/src/md_MAIN_003/md_MAIN_003_jr_800D1E18.o", "n_sites": 3, "sites": [{"kind": "keepalive", "cls": "B", "detail": "", "line": 588}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 593}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 571}], "refused": [], "compiles": 5, "seconds": 0.37981414794921875, "features": {"kind": "md", "n": 3, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": true}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "keepalive", "detail": "", "line": 588, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 593, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 571, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_MAIN_003/md_MAIN_003_o0c.c", "fn": "func_800D0D6C", "nhash": "ac632ce2ee7686c0d579337967fb730384a219ad", "kind": "md", "aliases": ["md_MAIN_003"], "header": false, "obj": "build/src/md_MAIN_003/md_MAIN_003_o0c.o", "n_sites": 1, "sites": [{"kind": "register", "cls": "D", "detail": "", "line": 176}], "refused": [], "compiles": 2, "seconds": 0.12300777435302734, "features": {"kind": "md", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": true, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "register", "detail": "", "line": 176, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_MAIN_003/md_MAIN_003_o0e.c", "fn": "func_800D0B1C", "nhash": "de81cdc4a34b0ac81a14424a535c83211b60ce40", "kind": "md", "aliases": ["md_MAIN_003"], "header": false, "obj": "build/src/md_MAIN_003/md_MAIN_003_o0e.o", "n_sites": 1, "sites": [{"kind": "register", "cls": "D", "detail": "", "line": 593}], "refused": [], "compiles": 2, "seconds": 0.1139678955078125, "features": {"kind": "md", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": true, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "register", "detail": "", "line": 593, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_MAIN_003/md_MAIN_003_o0e.c", "fn": "func_800D0268", "nhash": "c9c431248fcd1f295a879820df3ade35b5b2c2b0", "kind": "md", "aliases": ["md_MAIN_003"], "header": false, "obj": "build/src/md_MAIN_003/md_MAIN_003_o0e.o", "n_sites": 1, "sites": [{"kind": "register", "cls": "D", "detail": "", "line": 162}], "refused": [], "compiles": 2, "seconds": 0.1166999340057373, "features": {"kind": "md", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": true, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "register", "detail": "", "line": 162, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_MAIN_009/md_MAIN_009.c", "fn": "func_800CD674", "nhash": "d5be42b15a833192998a7231b409626e5c54a725", "kind": "md", "aliases": ["md_MAIN_009"], "header": false, "obj": "build/src/md_MAIN_009/md_MAIN_009.o", "n_sites": 8, "sites": [{"kind": "launder", "cls": "B", "detail": "out-only", "line": 322}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 230}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 231}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 232}, {"kind": "pin", "cls": "A", "detail": "$11", "line": 233}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 234}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 235}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 238}], "refused": [], "compiles": 10, "seconds": 0.5788073539733887, "features": {"kind": "md", "n": 8, "bucket": "5-9", "mix": "mixed", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 8, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$3", "line": 230}, {"kind": "pin", "detail": "$11", "line": 233}], "needed": [{"kind": "launder", "detail": "out-only", "line": 322, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$7", "line": 231, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$9", "line": 232, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$17", "line": 234, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$8", "line": 235, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 238, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_MAIN_011/md_MAIN_011.c", "fn": "func_800CEF00", "nhash": "012607e097ecfa1e9fa4694b79953ad3694e61b6", "kind": "md", "aliases": ["md_MAIN_011"], "header": false, "obj": "build/src/md_MAIN_011/md_MAIN_011.o", "n_sites": 1, "sites": [{"kind": "register", "cls": "D", "detail": "", "line": 48}], "refused": [], "compiles": 2, "seconds": 0.1622931957244873, "features": {"kind": "md", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": true, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "register", "detail": "", "line": 48, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_MAIN_013/md_MAIN_013.c", "fn": "func_800CB138", "nhash": "f0e539dfee1b3b8ee39e9755a74e71b4f2a3d4e8", "kind": "md", "aliases": ["md_MAIN_013"], "header": false, "obj": "build/src/md_MAIN_013/md_MAIN_013.o", "n_sites": 13, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 182}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 202}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 204}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 214}, {"kind": "launder", "cls": "B", "detail": "", "line": 184}, {"kind": "launder", "cls": "B", "detail": "out-only", "line": 192}, {"kind": "launder", "cls": "B", "detail": "out-only", "line": 196}, {"kind": "launder", "cls": "B", "detail": "", "line": 207}, {"kind": "launder", "cls": "B", "detail": "out-only", "line": 215}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 166}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 183}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 205}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 206}], "refused": [], "compiles": 15, "seconds": 0.8997855186462402, "features": {"kind": "md", "n": 13, "bucket": "10+", "mix": "mixed", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": true, "keepalive": false}, "n_usable": 13, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "memory", "line": 182, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "memory", "line": 202, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "memory", "line": 204, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "memory", "line": 214, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 184, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "out-only", "line": 192, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "out-only", "line": 196, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 207, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "out-only", "line": 215, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 166, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 183, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$7", "line": 205, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$6", "line": 206, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_MAIN_021/md_MAIN_021.c", "fn": "func_800CB0C8", "nhash": "c429b8ab6cdce2feacaf2aeff5e40dd3b43ad146", "kind": "md", "aliases": ["md_MAIN_021"], "header": false, "obj": "build/src/md_MAIN_021/md_MAIN_021.o", "n_sites": 3, "sites": [{"kind": "launder", "cls": "B", "detail": "out-only", "line": 168}, {"kind": "launder", "cls": "B", "detail": "out-only", "line": 174}, {"kind": "launder", "cls": "B", "detail": "out-only", "line": 178}], "refused": [], "compiles": 4, "seconds": 0.23017406463623047, "features": {"kind": "md", "n": 3, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "launder", "detail": "out-only", "line": 168, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "out-only", "line": 174, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "out-only", "line": 178, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_MAIN_026/md_MAIN_026.c", "fn": "func_800CB900", "nhash": "88240d557d965aad6af5a78f75266ce8fe92e905", "kind": "md", "aliases": ["md_MAIN_026"], "header": false, "obj": "build/src/md_MAIN_026/md_MAIN_026.o", "n_sites": 2, "sites": [{"kind": "keepalive", "cls": "B", "detail": "", "line": 438}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 482}], "refused": [], "compiles": 3, "seconds": 0.19598007202148438, "features": {"kind": "md", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": true}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "keepalive", "detail": "", "line": 438}], "needed": [{"kind": "keepalive", "detail": "", "line": 482, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_MAIN_043/md_MAIN_043.c", "fn": "func_800CD404", "nhash": "263853c0d423be30a03a2dea7a0282505bb8eb7f", "kind": "md", "aliases": ["md_MAIN_043"], "header": false, "obj": "build/src/md_MAIN_043/md_MAIN_043.o", "n_sites": 8, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 425}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 426}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 427}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 428}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 435}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 436}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 452}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 453}], "refused": [], "compiles": 10, "seconds": 0.6086952686309814, "features": {"kind": "md", "n": 8, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 8, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$16", "line": 425}, {"kind": "pin", "detail": "$18", "line": 427}, {"kind": "pin", "detail": "$19", "line": 428}, {"kind": "pin", "detail": "$3", "line": 435}, {"kind": "pin", "detail": "$2", "line": 436}, {"kind": "pin", "detail": "$3", "line": 452}, {"kind": "pin", "detail": "$2", "line": 453}], "needed": [{"kind": "pin", "detail": "$17", "line": 426, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_MAIN_044/md_MAIN_044.c", "fn": "func_800CCD2C", "nhash": "217dc52be29aea424bd2f9007704ab6ed16707da", "kind": "md", "aliases": ["md_MAIN_044"], "header": false, "obj": "build/src/md_MAIN_044/md_MAIN_044.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$17", "line": 83}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 84}], "refused": [], "compiles": 4, "seconds": 0.2855496406555176, "features": {"kind": "md", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$16", "line": 84}], "needed": [{"kind": "pin", "detail": "$17", "line": 83, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_MAIN_044/md_MAIN_044.c", "fn": "func_800CD894", "nhash": "e36db9ccccc27cb0108ec6517b1390edfcae3ba8", "kind": "md", "aliases": ["md_MAIN_044"], "header": false, "obj": "build/src/md_MAIN_044/md_MAIN_044.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 544}], "refused": [], "compiles": 3, "seconds": 0.21518540382385254, "features": {"kind": "md", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$2", "line": 544, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_SC03_075/md_SC03_075.c", "fn": "func_801F02D4", "nhash": "0264965a881b05d1770242a4a7d3eda8451156a5", "kind": "md", "aliases": ["md_SC03_075"], "header": false, "obj": "build/src/md_SC03_075/md_SC03_075.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 562}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 563}], "refused": [], "compiles": 4, "seconds": 0.2925143241882324, "features": {"kind": "md", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$4", "line": 563}], "needed": [{"kind": "pin", "detail": "$2", "line": 562, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_SC03_076/md_SC03_076_jr_801F218C.c", "fn": "func_801F2348", "nhash": "d2b2c3a33302a479997592a92e7c856367448e44", "kind": "md", "aliases": ["md_SC03_076"], "header": false, "obj": "build/src/md_SC03_076/md_SC03_076_jr_801F218C.o", "n_sites": 3, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 194}, {"kind": "barrier", "cls": "B", "detail": "", "line": 199}, {"kind": "barrier", "cls": "B", "detail": "", "line": 204}], "refused": [], "compiles": 4, "seconds": 0.23208332061767578, "features": {"kind": "md", "n": 3, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "barrier", "detail": "", "line": 194}, {"kind": "barrier", "detail": "", "line": 199}], "needed": [{"kind": "barrier", "detail": "", "line": 204, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_SC03_135/md_SC03_135_jr_801E5358.c", "fn": "func_801E559C", "nhash": "3909ec738c1a379b8b28872b9e8de41eaffc7bdc", "kind": "md", "aliases": ["md_SC03_135"], "header": false, "obj": "build/src/md_SC03_135/md_SC03_135_jr_801E5358.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 241}], "refused": [], "compiles": 2, "seconds": 0.12038159370422363, "features": {"kind": "md", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 241, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_SC04_026/md_SC04_026.c", "fn": "func_801E89D4", "nhash": "c423f2435579de12662e31eb57dd93cfcc3fdf25", "kind": "md", "aliases": ["md_SC04_026"], "header": false, "obj": "build/src/md_SC04_026/md_SC04_026.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 614}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 615}], "refused": [], "compiles": 4, "seconds": 0.2566516399383545, "features": {"kind": "md", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$4", "line": 615}], "needed": [{"kind": "pin", "detail": "$2", "line": 614, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_SC05_026/md_SC05_026_jr_801F0748.c", "fn": "func_801F0C4C", "nhash": "52309b93627e43829627064310064af97f8519cf", "kind": "md", "aliases": ["md_SC05_026"], "header": false, "obj": "build/src/md_SC05_026/md_SC05_026_jr_801F0748.o", "n_sites": 6, "sites": [{"kind": "keepalive", "cls": "B", "detail": "", "line": 434}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 386}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 387}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 388}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 389}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 390}], "refused": [], "compiles": 8, "seconds": 0.4355325698852539, "features": {"kind": "md", "n": 6, "bucket": "5-9", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": true}, "n_usable": 6, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$17", "line": 386}, {"kind": "pin", "detail": "$16", "line": 387}, {"kind": "pin", "detail": "$2", "line": 388}, {"kind": "pin", "detail": "$3", "line": 389}], "needed": [{"kind": "keepalive", "detail": "", "line": 434, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 390, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_SC07_003/md_SC07_003.c", "fn": "func_801A293C", "nhash": "6285be7f368a35e65d89c3bd752b281e96b43f0e", "kind": "md", "aliases": ["md_SC07_003"], "header": false, "obj": "build/src/md_SC07_003/md_SC07_003.o", "n_sites": 2, "sites": [{"kind": "instruction", "cls": "B", "detail": "addiu", "line": 2187}, {"kind": "pin", "cls": "A", "detail": "$21", "line": 2136}], "refused": [], "compiles": 4, "seconds": 0.7446925640106201, "features": {"kind": "md", "n": 2, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": true, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$21", "line": 2136}], "needed": [{"kind": "instruction", "detail": "addiu", "line": 2187, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_SC07_004/md_SC07_004.c", "fn": "func_801AB818", "nhash": "e7e5db288102da5485911009cd95e11c51020c31", "kind": "md", "aliases": ["md_SC07_004"], "header": false, "obj": "build/src/md_SC07_004/md_SC07_004.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 8002}], "refused": [], "compiles": 2, "seconds": 0.912022590637207, "features": {"kind": "md", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "memory", "line": 8002, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_SC07_004/md_SC07_004.c", "fn": "func_801AE908", "nhash": "c921302e84921292f2ba3d5336b8f9b8e810a8fa", "kind": "md", "aliases": ["md_SC07_004"], "header": false, "obj": "build/src/md_SC07_004/md_SC07_004.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$4", "line": 10270}], "refused": [], "compiles": 3, "seconds": 1.3065214157104492, "features": {"kind": "md", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$4", "line": 10270, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_SC07_004/md_SC07_004.c", "fn": "func_801A2DC4", "nhash": "4f0a0e631e62cbda7d2b86fccfcdd6baaf26adc7", "kind": "md", "aliases": ["md_SC07_004"], "header": false, "obj": "build/src/md_SC07_004/md_SC07_004.o", "n_sites": 5, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 1831}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 1832}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 1833}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 1834}, {"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 1841}], "refused": [], "compiles": 7, "seconds": 3.028043746948242, "features": {"kind": "md", "n": 5, "bucket": "5-9", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$3", "line": 1834}, {"kind": "cast", "detail": "volatile u16 *", "line": 1841}], "needed": [{"kind": "pin", "detail": "$2", "line": 1831, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 1832, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 1833, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_SC07_004/md_SC07_004.c", "fn": "func_801AA2F8", "nhash": "e1307b412e7a053257faa36d546cc861734e8424", "kind": "md", "aliases": ["md_SC07_004"], "header": false, "obj": "build/src/md_SC07_004/md_SC07_004.o", "n_sites": 7, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 6957}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 6958}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 6959}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 6960}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 6961}, {"kind": "pin", "cls": "A", "detail": "$20", "line": 6962}, {"kind": "pin", "cls": "A", "detail": "$21", "line": 6963}], "refused": [], "compiles": 2, "seconds": 0.882798433303833, "features": {"kind": "md", "n": 7, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 7, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$2", "line": 6957}, {"kind": "pin", "detail": "$16", "line": 6958}, {"kind": "pin", "detail": "$17", "line": 6959}, {"kind": "pin", "detail": "$18", "line": 6960}, {"kind": "pin", "detail": "$19", "line": 6961}, {"kind": "pin", "detail": "$20", "line": 6962}, {"kind": "pin", "detail": "$21", "line": 6963}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/md_SC07_004/md_SC07_004.c", "fn": "func_801A9C00", "nhash": "4f8dac75da704bf4b33a7ddac7092226ec87f128", "kind": "md", "aliases": ["md_SC07_004"], "header": false, "obj": "build/src/md_SC07_004/md_SC07_004.o", "n_sites": 1, "sites": [{"kind": "instruction", "cls": "B", "detail": "addu", "line": 6699}], "refused": [{"kind": "instruction", "line": 6699, "why": "instruction `addu` has no C spelling in the table"}], "compiles": 0, "seconds": 0.0, "features": {"kind": "md", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": true, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 0, "verdict": "NOTHING-USABLE"} +{"tu": "src/md_SC07_004/md_SC07_004.c", "fn": "func_801A2400", "nhash": "6ec0be2fb4663670e8384ce09b19510686171c5a", "kind": "md", "aliases": ["md_SC07_004"], "header": false, "obj": "build/src/md_SC07_004/md_SC07_004.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$17", "line": 1529}], "refused": [], "compiles": 2, "seconds": 0.8924307823181152, "features": {"kind": "md", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$17", "line": 1529}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/md_SC07_004/md_SC07_004.c", "fn": "func_801AB694", "nhash": "406dfad1c37ec6292d0e56ef6bf33f3135aaaf79", "kind": "md", "aliases": ["md_SC07_004"], "header": false, "obj": "build/src/md_SC07_004/md_SC07_004.o", "n_sites": 6, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 7884}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 7885}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 7886}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 7890}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 7903}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 7911}], "refused": [], "compiles": 8, "seconds": 3.6197683811187744, "features": {"kind": "md", "n": 6, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 6, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$16", "line": 7884}, {"kind": "pin", "detail": "$6", "line": 7886}, {"kind": "pin", "detail": "$4", "line": 7890}, {"kind": "pin", "detail": "$4", "line": 7903}, {"kind": "pin", "detail": "$2", "line": 7911}], "needed": [{"kind": "pin", "detail": "$5", "line": 7885, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_SC07_004/md_SC07_004.c", "fn": "func_801A395C", "nhash": "bc3e364bbda1e05f2a4c2604209f60b239b823a2", "kind": "md", "aliases": ["md_SC07_004"], "header": false, "obj": "build/src/md_SC07_004/md_SC07_004.o", "n_sites": 3, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 2400}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 2419}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 2392}], "refused": [], "compiles": 5, "seconds": 2.2745790481567383, "features": {"kind": "md", "n": 3, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": true}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$2", "line": 2392}], "needed": [{"kind": "barrier", "detail": "", "line": 2400, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 2419, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/md_SC07_004/md_SC07_004.c", "fn": "func_801A7CDC", "nhash": "d899401a59bb55a5a2533b01fe7e6d7bb168c295", "kind": "md", "aliases": ["md_SC07_004"], "header": false, "obj": "build/src/md_SC07_004/md_SC07_004.o", "n_sites": 1, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 5299}], "refused": [], "compiles": 2, "seconds": 0.888211727142334, "features": {"kind": "md", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "launder", "detail": "", "line": 5299, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_MAIN_012/ov_MAIN_012.c", "fn": "func_80130D48", "nhash": "05c26b6b66a6fe7bd82a3b10d9c9a52f0f52dc96", "kind": "ov", "aliases": ["ov_MAIN_012"], "header": false, "obj": "build/src/ov_MAIN_012/ov_MAIN_012.o", "n_sites": 9, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 2063}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 2064}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 2065}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 2105}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 2105}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 2136}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 2136}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 2152}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 2152}], "refused": [], "compiles": 11, "seconds": 3.070014238357544, "features": {"kind": "ov", "n": 9, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 9, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$16", "line": 2063}, {"kind": "pin", "detail": "$18", "line": 2064}, {"kind": "pin", "detail": "$2", "line": 2105}, {"kind": "pin", "detail": "$2", "line": 2136}, {"kind": "pin", "detail": "$2", "line": 2152}], "needed": [{"kind": "pin", "detail": "$19", "line": 2065, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 2105, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 2136, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 2152, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_MAIN_012/ov_MAIN_012.c", "fn": "func_8012956C", "nhash": "82881ea489a6542936fc3587f63a35d749ca7f06", "kind": "ov", "aliases": ["ov_MAIN_012"], "header": false, "obj": "build/src/ov_MAIN_012/ov_MAIN_012.o", "n_sites": 10, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 612}, {"kind": "launder", "cls": "B", "detail": "", "line": 571}, {"kind": "pin", "cls": "A", "detail": "$21", "line": 551}, {"kind": "pin", "cls": "A", "detail": "$22", "line": 552}, {"kind": "pin", "cls": "A", "detail": "$23", "line": 553}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 557}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 558}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 559}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 560}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 561}], "refused": [], "compiles": 12, "seconds": 3.452664375305176, "features": {"kind": "ov", "n": 10, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": true, "keepalive": false}, "n_usable": 10, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "launder", "detail": "", "line": 571}, {"kind": "pin", "detail": "$21", "line": 551}, {"kind": "pin", "detail": "$22", "line": 552}, {"kind": "pin", "detail": "$23", "line": 553}, {"kind": "pin", "detail": "$2", "line": 559}, {"kind": "pin", "detail": "$8", "line": 561}], "needed": [{"kind": "barrier", "detail": "", "line": 612, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$7", "line": 557, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 558, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 560, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_MAIN_012/ov_MAIN_012_jr_801380E0.c", "fn": "func_8013B274", "nhash": "e3fc6ab4130b0dab667c53ffbbafded1f7edb859", "kind": "ov", "aliases": ["ov_MAIN_012"], "header": false, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_801380E0.o", "n_sites": 12, "sites": [{"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 1202}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 1203}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 1204}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 1204}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 1205}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 1206}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 1207}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 1207}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 1208}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 1208}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 1209}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 1209}], "refused": [], "compiles": 13, "seconds": 1.6015632152557373, "features": {"kind": "ov", "n": 12, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 12, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "cast", "detail": "volatile s32 *", "line": 1202}, {"kind": "cast", "detail": "volatile s32 *", "line": 1203}, {"kind": "cast", "detail": "volatile s32 *", "line": 1204}, {"kind": "cast", "detail": "volatile s32 *", "line": 1207}], "needed": [{"kind": "cast", "detail": "volatile s32 *", "line": 1204, "verdict": "DIFFERS", "err": ""}, {"kind": "cast", "detail": "volatile s32 *", "line": 1205, "verdict": "DIFFERS", "err": ""}, {"kind": "cast", "detail": "volatile s32 *", "line": 1206, "verdict": "DIFFERS", "err": ""}, {"kind": "cast", "detail": "volatile s32 *", "line": 1207, "verdict": "DIFFERS", "err": ""}, {"kind": "cast", "detail": "volatile s32 *", "line": 1208, "verdict": "DIFFERS", "err": ""}, {"kind": "cast", "detail": "volatile s32 *", "line": 1208, "verdict": "DIFFERS", "err": ""}, {"kind": "cast", "detail": "volatile s32 *", "line": 1209, "verdict": "DIFFERS", "err": ""}, {"kind": "cast", "detail": "volatile s32 *", "line": 1209, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_MAIN_012/ov_MAIN_012_jr_8013C98C.c", "fn": "func_8013EF88", "nhash": "0eafc07bc76fd7921346dba5c091acb8e0d5776c", "kind": "ov", "aliases": ["ov_MAIN_012"], "header": false, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_8013C98C.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 2142}], "refused": [], "compiles": 2, "seconds": 0.20208311080932617, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$16", "line": 2142}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_MAIN_012/ov_MAIN_012_jr_8013C98C.c", "fn": "func_8013D53C", "nhash": "ada47ad9d62d87e50dbfdd8b28eb65818be9a65c", "kind": "ov", "aliases": ["ov_MAIN_012"], "header": false, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_8013C98C.o", "n_sites": 2, "sites": [{"kind": "keepalive", "cls": "B", "detail": "", "line": 1344}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 1350}], "refused": [], "compiles": 3, "seconds": 0.263308048248291, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": true}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "keepalive", "detail": "", "line": 1344, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 1350, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_MAIN_012/ov_MAIN_012_jr_8013F350.c", "fn": "func_801418F8", "nhash": "2dce5991f79d8fd6c93b569c0438bc214a0c0002", "kind": "ov", "aliases": ["ov_MAIN_012"], "header": false, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_8013F350.o", "n_sites": 1, "sites": [{"kind": "decl-body", "cls": "C", "detail": "extern", "line": 2042}], "refused": [], "compiles": 2, "seconds": 0.34160280227661133, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "decl-body", "detail": "extern", "line": 2042, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_MAIN_012/ov_MAIN_012_jr_801458E0.c", "fn": "func_80153D7C", "nhash": "71ad760d1d642d8e391dee7a6088d44d20adc891", "kind": "ov", "aliases": ["ov_MAIN_012"], "header": false, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_801458E0.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 4698}], "refused": [], "compiles": 1, "seconds": 0.4359433650970459, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "barrier", "detail": "memory", "line": 4698}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_MAIN_012/ov_MAIN_012_jr_801594E8.c", "fn": "func_801596F0", "nhash": "b023251fb3056cd49d3094639c2cf0c083c47cbd", "kind": "ov", "aliases": ["ov_MAIN_012"], "header": false, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_801594E8.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 2208}], "refused": [], "compiles": 1, "seconds": 0.060179710388183594, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "barrier", "detail": "memory", "line": 2208}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_MAIN_012/ov_MAIN_012_jr_8015A3C8.c", "fn": "func_80162438", "nhash": "b944802fdad4e0640c6655cce221e09152db19b1", "kind": "ov", "aliases": ["ov_MAIN_012"], "header": false, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_8015A3C8.o", "n_sites": 5, "sites": [{"kind": "pin", "cls": "A", "detail": "$18", "line": 6027}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 6028}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 6034}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 6045}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 6056}], "refused": [], "compiles": 7, "seconds": 3.346715211868286, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$18", "line": 6027}, {"kind": "pin", "detail": "$17", "line": 6028}], "needed": [{"kind": "pin", "detail": "$2", "line": 6034, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 6045, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 6056, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_MAIN_012/ov_MAIN_012_jr_8016AE5C.c", "fn": "func_8016E9EC", "nhash": "f01be1a7807255948700c53f0dc6146122520b69", "kind": "ov", "aliases": ["ov_MAIN_012"], "header": false, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_8016AE5C.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$0", "line": 4584}], "refused": [], "compiles": 3, "seconds": 0.6247503757476807, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "pins-only", "zero": true, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$0", "line": 4584, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_MAIN_012/ov_MAIN_012_jr_8016AE5C.c", "fn": "func_8016E7C8", "nhash": "c48776c303698f1746bab76c011974dc79f4c01f", "kind": "ov", "aliases": ["ov_MAIN_012"], "header": false, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_8016AE5C.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$18", "line": 4483}], "refused": [], "compiles": 2, "seconds": 0.43587517738342285, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$18", "line": 4483}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC01_000/ov_SC01_000_jr_8013C98C.c", "fn": "func_8013D9B0", "nhash": "23699590f4ebe1e8fd56281c41437273d82211f7", "kind": "ov", "aliases": ["ov_SC01_000"], "header": false, "obj": "build/src/ov_SC01_000/ov_SC01_000_jr_8013C98C.o", "n_sites": 34, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 1499}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 1501}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 1503}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 1505}, {"kind": "barrier", "cls": "B", "detail": "", "line": 1534}, {"kind": "launder", "cls": "B", "detail": "", "line": 1517}, {"kind": "launder", "cls": "B", "detail": "", "line": 1536}, {"kind": "launder", "cls": "B", "detail": "", "line": 1542}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 1469}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 1470}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 1471}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 1472}, {"kind": "pin", "cls": "A", "detail": "$20", "line": 1473}, {"kind": "pin", "cls": "A", "detail": "$11", "line": 1474}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 1475}, {"kind": "pin", "cls": "A", "detail": "$13", "line": 1476}, {"kind": "pin", "cls": "A", "detail": "$14", "line": 1477}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 1479}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 1480}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 1481}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 1482}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 1483}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 1484}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 1507}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 1508}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 1514}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 1515}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 1522}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 1523}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 1532}, {"kind": "pin", "cls": "A", "detail": "$12", "line": 1533}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 1551}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 1558}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 1565}], "refused": [], "compiles": 36, "seconds": 3.299137830734253, "features": {"kind": "ov", "n": 34, "bucket": "10+", "mix": "mixed", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": true, "keepalive": false}, "n_usable": 34, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$16", "line": 1469}, {"kind": "pin", "detail": "$18", "line": 1471}, {"kind": "pin", "detail": "$19", "line": 1472}, {"kind": "pin", "detail": "$20", "line": 1473}, {"kind": "pin", "detail": "$11", "line": 1474}, {"kind": "pin", "detail": "$13", "line": 1476}, {"kind": "pin", "detail": "$4", "line": 1482}, {"kind": "pin", "detail": "$2", "line": 1508}, {"kind": "pin", "detail": "$2", "line": 1551}], "needed": [{"kind": "barrier", "detail": "memory", "line": 1499, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "memory", "line": 1501, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "memory", "line": 1503, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "memory", "line": 1505, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 1534, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 1517, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 1536, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 1542, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$17", "line": 1470, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$10", "line": 1475, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$14", "line": 1477, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 1479, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$6", "line": 1480, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$7", "line": 1481, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$8", "line": 1483, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$9", "line": 1484, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 1507, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 1514, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 1515, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 1522, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 1523, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 1532, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$12", "line": 1533, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 1558, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 1565, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC01_000/ov_SC01_000_jr_801734BC.c", "fn": "func_801749C8", "nhash": "24b26e581bfd806b5214f8d4d64f0dfb48973dce", "kind": "ov", "aliases": ["ov_SC01_000"], "header": false, "obj": "build/src/ov_SC01_000/ov_SC01_000_jr_801734BC.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$18", "line": 2591}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 2592}], "refused": [], "compiles": 2, "seconds": 0.35538196563720703, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$18", "line": 2591}, {"kind": "pin", "detail": "$17", "line": 2592}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC01_000/ov_SC01_000_jr_8017BEBC.c", "fn": "func_8017E4A0", "nhash": "56d4a97eccaa7d968429b110d65a45d7c06c248a", "kind": "ov", "aliases": ["ov_SC01_000"], "header": false, "obj": "build/src/ov_SC01_000/ov_SC01_000_jr_8017BEBC.o", "n_sites": 10, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 3699}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3704}, {"kind": "instruction", "cls": "B", "detail": "li", "line": 3705}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3684}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3685}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3686}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 3687}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 3688}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3689}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3690}], "refused": [{"kind": "instruction", "line": 3705, "why": "instruction `li` has no C spelling in the table"}], "compiles": 11, "seconds": 1.285813570022583, "features": {"kind": "ov", "n": 10, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": true, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 9, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "barrier", "detail": "memory", "line": 3699}, {"kind": "barrier", "detail": "", "line": 3704}, {"kind": "pin", "detail": "$3", "line": 3684}, {"kind": "pin", "detail": "$5", "line": 3687}, {"kind": "pin", "detail": "$6", "line": 3688}, {"kind": "pin", "detail": "$4", "line": 3689}, {"kind": "pin", "detail": "$2", "line": 3690}], "needed": [{"kind": "pin", "detail": "$2", "line": 3685, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 3686, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC01_004/ov_SC01_004_jr_8017BE9C.c", "fn": "func_8017DAB4", "nhash": "d3049fe122e24e9219eb4c492de1cda1bf5fbe29", "kind": "ov", "aliases": ["ov_SC01_004"], "header": false, "obj": "build/src/ov_SC01_004/ov_SC01_004_jr_8017BE9C.o", "n_sites": 1, "sites": [{"kind": "decl-body", "cls": "C", "detail": "", "line": 3865}], "refused": [], "compiles": 1, "seconds": 0.09263730049133301, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "decl-body", "detail": "", "line": 3865}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC01_004/ov_SC01_004_jr_8017BE9C.c", "fn": "func_8017DC38", "nhash": "5d77d2bf88fcb8e4174568bf036497945a1f7bfe", "kind": "ov", "aliases": ["ov_SC01_004"], "header": false, "obj": "build/src/ov_SC01_004/ov_SC01_004_jr_8017BE9C.o", "n_sites": 4, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 3961}, {"kind": "launder", "cls": "B", "detail": "", "line": 4047}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 3934}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3942}], "refused": [], "compiles": 6, "seconds": 0.593804121017456, "features": {"kind": "ov", "n": 4, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 4, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$2", "line": 3942}], "needed": [{"kind": "launder", "detail": "", "line": 3961, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 4047, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$19", "line": 3934, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC01_004/ov_SC01_004_jr_8017E5B8.c", "fn": "func_8017E5B8", "nhash": "0062bb6a8852a0da20d70f83bdbe0f2a10463fc8", "kind": "ov", "aliases": ["ov_SC01_004"], "header": false, "obj": "build/src/ov_SC01_004/ov_SC01_004_jr_8017E5B8.o", "n_sites": 2, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 2830}, {"kind": "launder", "cls": "B", "detail": "", "line": 2832}], "refused": [], "compiles": 3, "seconds": 0.19484758377075195, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": true, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 2830, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 2832, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC01_004/ov_SC01_004_jr_8017E5B8.c", "fn": "func_8017E804", "nhash": "9137963deb017aae8d8bced75ae49c4e7b6c2204", "kind": "ov", "aliases": ["ov_SC01_004"], "header": false, "obj": "build/src/ov_SC01_004/ov_SC01_004_jr_8017E5B8.o", "n_sites": 6, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 3082}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 3061}, {"kind": "pin", "cls": "A", "detail": "$0", "line": 3008}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3012}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3015}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3092}], "refused": [], "compiles": 8, "seconds": 0.5336062908172607, "features": {"kind": "ov", "n": 6, "bucket": "5-9", "mix": "mixed", "zero": true, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": true}, "n_usable": 6, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$0", "line": 3008}], "needed": [{"kind": "barrier", "detail": "memory", "line": 3082, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 3061, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 3012, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 3015, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 3092, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC01_005/ov_SC01_005_jr_8017ED5C.c", "fn": "func_801800C0", "nhash": "32926f7aa95accfb1597a1e9be3b0b36972e491c", "kind": "ov", "aliases": ["ov_SC01_005", "ov_SC01_006"], "header": false, "obj": "build/src/ov_SC01_005/ov_SC01_005_jr_8017ED5C.o", "n_sites": 2, "sites": [{"kind": "keepalive", "cls": "B", "detail": "", "line": 3662}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 3583}], "refused": [], "compiles": 2, "seconds": 0.26892900466918945, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": true}, "n_usable": 2, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "keepalive", "detail": "", "line": 3662}, {"kind": "pin", "detail": "$17", "line": 3583}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC01_008/ov_SC01_008_jr_8017BE9C.c", "fn": "func_8017DBEC", "nhash": "86aed74a8fe5abab6b4bf3ce5880829fa68dadd9", "kind": "ov", "aliases": ["ov_SC01_008"], "header": false, "obj": "build/src/ov_SC01_008/ov_SC01_008_jr_8017BE9C.o", "n_sites": 1, "sites": [{"kind": "decl-body", "cls": "C", "detail": "", "line": 3892}], "refused": [], "compiles": 1, "seconds": 0.10332965850830078, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "decl-body", "detail": "", "line": 3892}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC01_008/ov_SC01_008_jr_8017BE9C.c", "fn": "func_8017E050", "nhash": "baf6a84351c54d27da99fa744c3e7c12e04a2cf2", "kind": "ov", "aliases": ["ov_SC01_008"], "header": false, "obj": "build/src/ov_SC01_008/ov_SC01_008_jr_8017BE9C.o", "n_sites": 4, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 4255}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 4271}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 4252}, {"kind": "pin", "cls": "A", "detail": "$0", "line": 4206}], "refused": [], "compiles": 6, "seconds": 0.5996291637420654, "features": {"kind": "ov", "n": 4, "bucket": "2-4", "mix": "mixed", "zero": true, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": true}, "n_usable": 4, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 4255, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "memory", "line": 4271, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 4252, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$0", "line": 4206, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC01_008/ov_SC01_008_jr_8017E6F0.c", "fn": "func_8017F2DC", "nhash": "1f59f9d2c08551801c1b8af6f056f165d079ad84", "kind": "ov", "aliases": ["ov_SC01_008"], "header": false, "obj": "build/src/ov_SC01_008/ov_SC01_008_jr_8017E6F0.o", "n_sites": 1, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 3422}], "refused": [], "compiles": 1, "seconds": 0.07102680206298828, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "launder", "detail": "", "line": 3422}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC01_009/ov_SC01_009_jr_8017E590.c", "fn": "func_8017FFD0", "nhash": "266e202f408df0294218010e617d18a81a12f49c", "kind": "ov", "aliases": ["ov_SC01_009"], "header": false, "obj": "build/src/ov_SC01_009/ov_SC01_009_jr_8017E590.o", "n_sites": 7, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 4162}, {"kind": "barrier", "cls": "B", "detail": "", "line": 4166}, {"kind": "barrier", "cls": "B", "detail": "", "line": 4174}, {"kind": "barrier", "cls": "B", "detail": "", "line": 4182}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 4192}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 4209}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 4120}], "refused": [], "compiles": 9, "seconds": 0.9150705337524414, "features": {"kind": "ov", "n": 7, "bucket": "5-9", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": true}, "n_usable": 7, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "barrier", "detail": "", "line": 4166}, {"kind": "barrier", "detail": "", "line": 4174}, {"kind": "barrier", "detail": "", "line": 4182}], "needed": [{"kind": "barrier", "detail": "", "line": 4162, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "memory", "line": 4192, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 4209, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 4120, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC01_077/ov_SC01_077.c", "fn": "func_80140958", "nhash": "44563773e7a409f1b20c1f7c1314dab32a13f09e", "kind": "ov", "aliases": ["ov_SC01_077"], "header": false, "obj": "build/src/ov_SC01_077/ov_SC01_077.o", "n_sites": 11, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 2373}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 2390}, {"kind": "pin", "cls": "A", "detail": "$20", "line": 2286}, {"kind": "pin", "cls": "A", "detail": "$21", "line": 2287}, {"kind": "pin", "cls": "A", "detail": "$23", "line": 2288}, {"kind": "pin", "cls": "A", "detail": "$22", "line": 2289}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 2290}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 2291}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 2292}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 2293}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 2384}], "refused": [], "compiles": 13, "seconds": 3.0921471118927, "features": {"kind": "ov", "n": 11, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": true}, "n_usable": 11, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$20", "line": 2286}, {"kind": "pin", "detail": "$21", "line": 2287}, {"kind": "pin", "detail": "$23", "line": 2288}, {"kind": "pin", "detail": "$22", "line": 2289}, {"kind": "pin", "detail": "$10", "line": 2290}, {"kind": "pin", "detail": "$8", "line": 2291}, {"kind": "pin", "detail": "$9", "line": 2292}], "needed": [{"kind": "barrier", "detail": "memory", "line": 2373, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 2390, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 2293, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 2384, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC01_077/ov_SC01_077.c", "fn": "func_8013D9B0", "nhash": "756fea81505b2f3d756717ad084cb51e008e7120", "kind": "ov", "aliases": ["ov_SC01_077"], "header": false, "obj": "build/src/ov_SC01_077/ov_SC01_077.o", "n_sites": 34, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 708}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 710}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 712}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 714}, {"kind": "barrier", "cls": "B", "detail": "", "line": 743}, {"kind": "launder", "cls": "B", "detail": "", "line": 726}, {"kind": "launder", "cls": "B", "detail": "", "line": 745}, {"kind": "launder", "cls": "B", "detail": "", "line": 751}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 678}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 679}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 680}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 681}, {"kind": "pin", "cls": "A", "detail": "$20", "line": 682}, {"kind": "pin", "cls": "A", "detail": "$11", "line": 683}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 684}, {"kind": "pin", "cls": "A", "detail": "$13", "line": 685}, {"kind": "pin", "cls": "A", "detail": "$14", "line": 686}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 688}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 689}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 690}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 691}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 692}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 693}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 716}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 717}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 723}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 724}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 731}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 732}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 741}, {"kind": "pin", "cls": "A", "detail": "$12", "line": 742}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 760}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 767}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 774}], "refused": [], "compiles": 36, "seconds": 8.955620050430298, "features": {"kind": "ov", "n": 34, "bucket": "10+", "mix": "mixed", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": true, "keepalive": false}, "n_usable": 34, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$16", "line": 678}, {"kind": "pin", "detail": "$18", "line": 680}, {"kind": "pin", "detail": "$19", "line": 681}, {"kind": "pin", "detail": "$20", "line": 682}, {"kind": "pin", "detail": "$11", "line": 683}, {"kind": "pin", "detail": "$13", "line": 685}, {"kind": "pin", "detail": "$4", "line": 691}, {"kind": "pin", "detail": "$2", "line": 717}, {"kind": "pin", "detail": "$2", "line": 760}], "needed": [{"kind": "barrier", "detail": "memory", "line": 708, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "memory", "line": 710, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "memory", "line": 712, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "memory", "line": 714, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 743, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 726, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 745, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 751, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$17", "line": 679, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$10", "line": 684, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$14", "line": 686, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 688, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$6", "line": 689, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$7", "line": 690, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$8", "line": 692, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$9", "line": 693, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 716, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 723, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 724, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 731, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 732, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 741, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$12", "line": 742, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 767, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 774, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC01_077/ov_SC01_077.c", "fn": "func_801418F8", "nhash": "182a8ca007f5df53833117be3c1eb57b873e2605", "kind": "ov", "aliases": ["ov_SC01_077"], "header": false, "obj": "build/src/ov_SC01_077/ov_SC01_077.o", "n_sites": 1, "sites": [{"kind": "decl-body", "cls": "C", "detail": "extern", "line": 2729}], "refused": [], "compiles": 2, "seconds": 0.49083828926086426, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "decl-body", "detail": "extern", "line": 2729, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC01_077/ov_SC01_077_jr_8017AE2C.c", "fn": "func_8017B614", "nhash": "608d12388b66b61aecd843f587d51ec86594d07b", "kind": "ov", "aliases": ["ov_SC01_077"], "header": false, "obj": "build/src/ov_SC01_077/ov_SC01_077_jr_8017AE2C.o", "n_sites": 3, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 3086}, {"kind": "launder", "cls": "B", "detail": "", "line": 3062}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 3061}], "refused": [], "compiles": 5, "seconds": 1.000168800354004, "features": {"kind": "ov", "n": 3, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": true, "keepalive": false}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 3086, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3062, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$16", "line": 3061, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.c", "fn": "func_80180728", "nhash": "ce70f4c2ffeae70003b64682beb59a7690ad2fd4", "kind": "ov", "aliases": ["ov_SC01_080"], "header": false, "obj": "build/src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.o", "n_sites": 5, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 6119}, {"kind": "barrier", "cls": "B", "detail": "", "line": 6160}, {"kind": "launder", "cls": "B", "detail": "", "line": 6112}, {"kind": "launder", "cls": "B", "detail": "", "line": 6152}, {"kind": "launder", "cls": "B", "detail": "", "line": 6153}], "refused": [], "compiles": 6, "seconds": 1.624462366104126, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": true, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 6119, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 6160, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 6112, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 6152, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 6153, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC01_084/ov_SC01_084_jr_80182A00.c", "fn": "func_80183BD0", "nhash": "e3702ea96388c978146345c053f09d44cc74672c", "kind": "ov", "aliases": ["ov_SC01_084"], "header": false, "obj": "build/src/ov_SC01_084/ov_SC01_084_jr_80182A00.o", "n_sites": 1, "sites": [{"kind": "cast", "cls": "C", "detail": "volatile s16 *", "line": 995}], "refused": [], "compiles": 2, "seconds": 0.25791072845458984, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "cast", "detail": "volatile s16 *", "line": 995, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC01_084/ov_SC01_084_jr_80182A00.c", "fn": "func_8018392C", "nhash": "55fda14d52383e5ce15463b8fb774af4502dc571", "kind": "ov", "aliases": ["ov_SC01_084"], "header": false, "obj": "build/src/ov_SC01_084/ov_SC01_084_jr_80182A00.o", "n_sites": 1, "sites": [{"kind": "cast", "cls": "C", "detail": "volatile s16 *", "line": 809}], "refused": [], "compiles": 2, "seconds": 0.24770331382751465, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "cast", "detail": "volatile s16 *", "line": 809, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC01_084/ov_SC01_084_jr_80182A00.c", "fn": "func_80183A7C", "nhash": "189f0b7ff1455faa2075cb2daee5d3880b1a9481", "kind": "ov", "aliases": ["ov_SC01_084"], "header": false, "obj": "build/src/ov_SC01_084/ov_SC01_084_jr_80182A00.o", "n_sites": 1, "sites": [{"kind": "cast", "cls": "C", "detail": "volatile s16 *", "line": 896}], "refused": [], "compiles": 2, "seconds": 0.25690746307373047, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "cast", "detail": "volatile s16 *", "line": 896, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_005/ov_SC02_005_jr_8017AE2C.c", "fn": "func_8017C41C", "nhash": "4f31245cdbf76e711e408a5a377c02f474253b63", "kind": "ov", "aliases": ["ov_SC02_005"], "header": false, "obj": "build/src/ov_SC02_005/ov_SC02_005_jr_8017AE2C.o", "n_sites": 5, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 3739}, {"kind": "launder", "cls": "B", "detail": "", "line": 3769}, {"kind": "launder", "cls": "B", "detail": "", "line": 3788}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 3772}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 3763}], "refused": [], "compiles": 7, "seconds": 0.697094202041626, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": true}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "keepalive", "detail": "", "line": 3772}, {"kind": "pin", "detail": "$6", "line": 3763}], "needed": [{"kind": "launder", "detail": "", "line": 3739, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3769, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3788, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_005/ov_SC02_005_jr_8017CF90.c", "fn": "func_8018118C", "nhash": "e7a30ba10c153e8ce779ea65884c98d533d373db", "kind": "ov", "aliases": ["ov_SC02_005"], "header": false, "obj": "build/src/ov_SC02_005/ov_SC02_005_jr_8017CF90.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 5454}], "refused": [], "compiles": 2, "seconds": 0.30324578285217285, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 5454, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_005/ov_SC02_005_jr_80185E80.c", "fn": "func_801898F4", "nhash": "9473b671406b90aecb7e0882aab6ee7b13554e15", "kind": "ov", "aliases": ["ov_SC02_005"], "header": false, "obj": "build/src/ov_SC02_005/ov_SC02_005_jr_80185E80.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 2804}], "refused": [], "compiles": 1, "seconds": 0.24042677879333496, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "barrier", "detail": "", "line": 2804}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC02_005/ov_SC02_005_jr_80185E80.c", "fn": "func_8018D270", "nhash": "3a10c68a7ee40b87c51f17efc49095c2c5870a86", "kind": "ov", "aliases": ["ov_SC02_005"], "header": false, "obj": "build/src/ov_SC02_005/ov_SC02_005_jr_80185E80.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 5443}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 5458}], "refused": [], "compiles": 4, "seconds": 1.0319411754608154, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$2", "line": 5443, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 5458, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_005/ov_SC02_005_jr_8018EA04.c", "fn": "func_8018FEA0", "nhash": "6f7cfdb85669582782021bd196566ad65b6b472d", "kind": "ov", "aliases": ["ov_SC02_005"], "header": false, "obj": "build/src/ov_SC02_005/ov_SC02_005_jr_8018EA04.o", "n_sites": 8, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 4639}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 4641}, {"kind": "instruction", "cls": "B", "detail": "la", "line": 4613}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 4604}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 4605}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 4606}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 4607}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 4608}], "refused": [], "compiles": 10, "seconds": 0.9987421035766602, "features": {"kind": "ov", "n": 8, "bucket": "5-9", "mix": "mixed", "zero": false, "init": false, "instr": true, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 8, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "barrier", "detail": "memory", "line": 4639}, {"kind": "pin", "detail": "$16", "line": 4604}, {"kind": "pin", "detail": "$17", "line": 4605}, {"kind": "pin", "detail": "$18", "line": 4606}, {"kind": "pin", "detail": "$19", "line": 4607}], "needed": [{"kind": "barrier", "detail": "memory", "line": 4641, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "la", "line": 4613, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 4608, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_005/ov_SC02_005_jr_8018EA04.c", "fn": "func_8018FA34", "nhash": "f728c15a70ebe01f901e27eb020744295690e603", "kind": "ov", "aliases": ["ov_SC02_005"], "header": false, "obj": "build/src/ov_SC02_005/ov_SC02_005_jr_8018EA04.o", "n_sites": 3, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 4328}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 4335}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 4323}], "refused": [], "compiles": 5, "seconds": 0.5187695026397705, "features": {"kind": "ov", "n": 3, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "memory", "line": 4328, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "memory", "line": 4335, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 4323, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.c", "fn": "func_8017FD9C", "nhash": "3c23416c3123fddde7cb81b239586316f0eb4bc7", "kind": "ov", "aliases": ["ov_SC02_011"], "header": false, "obj": "build/src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.o", "n_sites": 2, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 6351}, {"kind": "barrier", "cls": "B", "detail": "", "line": 6355}], "refused": [], "compiles": 3, "seconds": 0.725477933883667, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 6351, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 6355, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.c", "fn": "func_8017F67C", "nhash": "8ad53914bca6e61f55e1ddd2efee06ffad2edbf4", "kind": "ov", "aliases": ["ov_SC02_011"], "header": false, "obj": "build/src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$4", "line": 5940}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 5941}], "refused": [], "compiles": 4, "seconds": 1.0771489143371582, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$4", "line": 5940, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$17", "line": 5941, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.c", "fn": "func_8017D710", "nhash": "e4d2d147936ed3273ffe56a826ae1e7c806664e4", "kind": "ov", "aliases": ["ov_SC02_011"], "header": false, "obj": "build/src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.o", "n_sites": 2, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 4488}, {"kind": "launder", "cls": "B", "detail": "", "line": 4635}], "refused": [], "compiles": 3, "seconds": 0.7478804588317871, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "launder", "detail": "", "line": 4488, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 4635, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_011/ov_SC02_011_jr_80183178.c", "fn": "func_80187E08", "nhash": "2676a471dab950c39850cddfed51ea5a33166a9e", "kind": "ov", "aliases": ["ov_SC02_011"], "header": false, "obj": "build/src/ov_SC02_011/ov_SC02_011_jr_80183178.o", "n_sites": 5, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 3614}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3603}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3604}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3605}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 3648}], "refused": [], "compiles": 7, "seconds": 1.409160852432251, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$2", "line": 3603}], "needed": [{"kind": "barrier", "detail": "", "line": 3614, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 3604, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 3605, "verdict": "DIFFERS", "err": ""}, {"kind": "cast", "detail": "volatile s32 *", "line": 3648, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_011/ov_SC02_011_jr_80183178.c", "fn": "func_80186868", "nhash": "01fd10ffd07caa32e8e078ad83e89ba7561c6b20", "kind": "ov", "aliases": ["ov_SC02_011"], "header": false, "obj": "build/src/ov_SC02_011/ov_SC02_011_jr_80183178.o", "n_sites": 5, "sites": [{"kind": "pin", "cls": "A", "detail": "$17", "line": 2590}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 2593}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 2594}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 2595}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 2596}], "refused": [], "compiles": 7, "seconds": 1.4036014080047607, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$17", "line": 2590}], "needed": [{"kind": "pin", "detail": "$2", "line": 2593, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$19", "line": 2594, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 2595, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$18", "line": 2596, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_011/ov_SC02_011_jr_80183178.c", "fn": "func_80187CE8", "nhash": "a13ea44bd7680712ffb6e462f3a1470d85377fb8", "kind": "ov", "aliases": ["ov_SC02_011"], "header": false, "obj": "build/src/ov_SC02_011/ov_SC02_011_jr_80183178.o", "n_sites": 8, "sites": [{"kind": "pin", "cls": "A", "detail": "$17", "line": 3477}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 3478}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3479}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3480}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3481}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 3482}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 3483}, {"kind": "pin", "cls": "A", "detail": "$0", "line": 3484}], "refused": [], "compiles": 10, "seconds": 2.0270729064941406, "features": {"kind": "ov", "n": 8, "bucket": "5-9", "mix": "pins-only", "zero": true, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 8, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$16", "line": 3478}, {"kind": "pin", "detail": "$2", "line": 3479}, {"kind": "pin", "detail": "$3", "line": 3480}, {"kind": "pin", "detail": "$4", "line": 3481}], "needed": [{"kind": "pin", "detail": "$17", "line": 3477, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 3482, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$6", "line": 3483, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$0", "line": 3484, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_011/ov_SC02_011_jr_80183178.c", "fn": "func_80188250", "nhash": "a4db869f80048dee5760a954d659f48846ec0ad9", "kind": "ov", "aliases": ["ov_SC02_011"], "header": false, "obj": "build/src/ov_SC02_011/ov_SC02_011_jr_80183178.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 3889}], "refused": [], "compiles": 2, "seconds": 0.39437317848205566, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "memory", "line": 3889, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_011/ov_SC02_011_jr_80188E3C.c", "fn": "func_8018AB20", "nhash": "fdeb7a900f2357b7b62779aa4d539f7c2b38d50f", "kind": "ov", "aliases": ["ov_SC02_011"], "header": false, "obj": "build/src/ov_SC02_011/ov_SC02_011_jr_80188E3C.o", "n_sites": 5, "sites": [{"kind": "launder", "cls": "B", "detail": "out-only", "line": 1589}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 1527}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 1530}, {"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 1581}, {"kind": "decl-body", "cls": "C", "detail": "", "line": 1528}], "refused": [], "compiles": 7, "seconds": 1.7984654903411865, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "cast", "detail": "volatile u16 *", "line": 1581}], "needed": [{"kind": "launder", "detail": "out-only", "line": 1589, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 1527, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 1530, "verdict": "DIFFERS", "err": ""}, {"kind": "decl-body", "detail": "", "line": 1528, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_016/ov_SC02_016_jr_8017DC70.c", "fn": "func_8017F33C", "nhash": "c0325a639aedc5d143ddb0d29b30ebb6f2984baa", "kind": "ov", "aliases": ["ov_SC02_016"], "header": false, "obj": "build/src/ov_SC02_016/ov_SC02_016_jr_8017DC70.o", "n_sites": 6, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 3524}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 3525}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 3526}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 3527}, {"kind": "pin", "cls": "A", "detail": "$20", "line": 3528}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3529}], "refused": [], "compiles": 2, "seconds": 0.258772611618042, "features": {"kind": "ov", "n": 6, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 6, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$16", "line": 3524}, {"kind": "pin", "detail": "$17", "line": 3525}, {"kind": "pin", "detail": "$18", "line": 3526}, {"kind": "pin", "detail": "$19", "line": 3527}, {"kind": "pin", "detail": "$20", "line": 3528}, {"kind": "pin", "detail": "$2", "line": 3529}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC02_017/ov_SC02_017_jr_8017DF34.c", "fn": "func_80183800", "nhash": "2c5d3f32388a14268750bfc2a40876289c17f436", "kind": "ov", "aliases": ["ov_SC02_017"], "header": false, "obj": "build/src/ov_SC02_017/ov_SC02_017_jr_8017DF34.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 6568}], "refused": [], "compiles": 1, "seconds": 0.2699618339538574, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "barrier", "detail": "", "line": 6568}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC02_017/ov_SC02_017_jr_8017DF34.c", "fn": "func_801862B8", "nhash": "965042b3d10dfc834ab2d89d659fd1680dcb3772", "kind": "ov", "aliases": ["ov_SC02_017"], "header": false, "obj": "build/src/ov_SC02_017/ov_SC02_017_jr_8017DF34.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 8609}], "refused": [], "compiles": 2, "seconds": 0.5763413906097412, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$2", "line": 8609}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC02_021/ov_SC02_021_jr_8017C294.c", "fn": "func_8017DC10", "nhash": "fc6dc043df7643744f710272112a55afe6f548a5", "kind": "ov", "aliases": ["ov_SC02_021"], "header": false, "obj": "build/src/ov_SC02_021/ov_SC02_021_jr_8017C294.o", "n_sites": 4, "sites": [{"kind": "keepalive", "cls": "B", "detail": "", "line": 3395}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 3498}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3354}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3355}], "refused": [], "compiles": 6, "seconds": 0.67824387550354, "features": {"kind": "ov", "n": 4, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": true}, "n_usable": 4, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "keepalive", "detail": "", "line": 3498}], "needed": [{"kind": "keepalive", "detail": "", "line": 3395, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 3354, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 3355, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_021/ov_SC02_021_jr_8017ECFC.c", "fn": "func_8017F1B4", "nhash": "831e7a8c798d4c5bf5100dc1f51479753d8522e8", "kind": "ov", "aliases": ["ov_SC02_021"], "header": false, "obj": "build/src/ov_SC02_021/ov_SC02_021_jr_8017ECFC.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 2948}], "refused": [], "compiles": 3, "seconds": 0.23150300979614258, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$16", "line": 2948, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_026/ov_SC02_026_jr_8017C180.c", "fn": "func_8017F6B0", "nhash": "639a65261ee34c99cb8b9bee19c468e6d5050d47", "kind": "ov", "aliases": ["ov_SC02_026"], "header": false, "obj": "build/src/ov_SC02_026/ov_SC02_026_jr_8017C180.o", "n_sites": 2, "sites": [{"kind": "keepalive", "cls": "B", "detail": "", "line": 4549}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 4553}], "refused": [], "compiles": 3, "seconds": 0.9674210548400879, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": true}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "keepalive", "detail": "", "line": 4549, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 4553, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_026/ov_SC02_026_jr_8017C180.c", "fn": "func_8017E3AC", "nhash": "cb0ef7e011617c3d02bda51a73818967cfe84152", "kind": "ov", "aliases": ["ov_SC02_026"], "header": false, "obj": "build/src/ov_SC02_026/ov_SC02_026_jr_8017C180.o", "n_sites": 5, "sites": [{"kind": "pin", "cls": "A", "detail": "$18", "line": 3698}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 3699}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 3700}, {"kind": "pin", "cls": "A", "detail": "$20", "line": 3701}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3723}], "refused": [], "compiles": 7, "seconds": 2.2436776161193848, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$18", "line": 3698}, {"kind": "pin", "detail": "$19", "line": 3700}, {"kind": "pin", "detail": "$20", "line": 3701}, {"kind": "pin", "detail": "$2", "line": 3723}], "needed": [{"kind": "pin", "detail": "$16", "line": 3699, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_026/ov_SC02_026_jr_8017C180.c", "fn": "func_8018200C", "nhash": "121f2d921c9ea21db68503a4b736ad2d2828207d", "kind": "ov", "aliases": ["ov_SC02_026"], "header": false, "obj": "build/src/ov_SC02_026/ov_SC02_026_jr_8017C180.o", "n_sites": 12, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 6280}, {"kind": "launder", "cls": "B", "detail": "", "line": 6282}, {"kind": "launder", "cls": "B", "detail": "", "line": 6291}, {"kind": "launder", "cls": "B", "detail": "", "line": 6292}, {"kind": "pin", "cls": "A", "detail": "$23", "line": 6250}, {"kind": "pin", "cls": "A", "detail": "$22", "line": 6251}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 6254}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 6255}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 6256}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 6266}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 6274}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 6275}], "refused": [], "compiles": 2, "seconds": 0.615774393081665, "features": {"kind": "ov", "n": 12, "bucket": "10+", "mix": "mixed", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 12, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "launder", "detail": "", "line": 6280}, {"kind": "launder", "detail": "", "line": 6282}, {"kind": "launder", "detail": "", "line": 6291}, {"kind": "launder", "detail": "", "line": 6292}, {"kind": "pin", "detail": "$23", "line": 6250}, {"kind": "pin", "detail": "$22", "line": 6251}, {"kind": "pin", "detail": "$18", "line": 6254}, {"kind": "pin", "detail": "$17", "line": 6255}, {"kind": "pin", "detail": "$19", "line": 6256}, {"kind": "pin", "detail": "$3", "line": 6266}, {"kind": "pin", "detail": "$16", "line": 6274}, {"kind": "pin", "detail": "$17", "line": 6275}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC02_028/ov_SC02_028_jr_8017D898.c", "fn": "func_80181264", "nhash": "181d2ef8270677fd67e302b5ea7e07958c4b858d", "kind": "ov", "aliases": ["ov_SC02_028"], "header": false, "obj": "build/src/ov_SC02_028/ov_SC02_028_jr_8017D898.o", "n_sites": 1, "sites": [{"kind": "decl-body", "cls": "C", "detail": "", "line": 4821}], "refused": [], "compiles": 2, "seconds": 0.47084856033325195, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "decl-body", "detail": "", "line": 4821, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_028/ov_SC02_028_jr_801884D8.c", "fn": "func_8018AB34", "nhash": "48a0bb567f6d8598ea9dfff54a372cfe0881790e", "kind": "ov", "aliases": ["ov_SC02_028"], "header": false, "obj": "build/src/ov_SC02_028/ov_SC02_028_jr_801884D8.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 4826}], "refused": [], "compiles": 2, "seconds": 0.28427648544311523, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "memory", "line": 4826, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_035/ov_SC02_035_jr_8017BEBC.c", "fn": "func_80181B00", "nhash": "ddac54d37eedc580d3017d426db8c2bfd54da3f5", "kind": "ov", "aliases": ["ov_SC02_035"], "header": false, "obj": "build/src/ov_SC02_035/ov_SC02_035_jr_8017BEBC.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$4", "line": 6176}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 6177}], "refused": [], "compiles": 4, "seconds": 1.122969627380371, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$4", "line": 6177}], "needed": [{"kind": "pin", "detail": "$4", "line": 6176, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_037/ov_SC02_037_jr_8017AE2C.c", "fn": "func_8017F2B4", "nhash": "d8ba25b89975c6837f735501c0ed7be43d1f2fc9", "kind": "ov", "aliases": ["ov_SC02_037"], "header": false, "obj": "build/src/ov_SC02_037/ov_SC02_037_jr_8017AE2C.o", "n_sites": 24, "sites": [{"kind": "instruction", "cls": "B", "detail": "addiu", "line": 6281}, {"kind": "instruction", "cls": "B", "detail": "nop", "line": 6288}, {"kind": "instruction", "cls": "B", "detail": "addiu", "line": 6290}, {"kind": "instruction", "cls": "B", "detail": "addiu", "line": 6292}, {"kind": "instruction", "cls": "B", "detail": "addiu", "line": 6294}, {"kind": "instruction", "cls": "B", "detail": "addiu", "line": 6296}, {"kind": "instruction", "cls": "B", "detail": "addiu", "line": 6298}, {"kind": "instruction", "cls": "B", "detail": "addiu", "line": 6300}, {"kind": "instruction", "cls": "B", "detail": "addu", "line": 6306}, {"kind": "instruction", "cls": "B", "detail": "addu", "line": 6316}, {"kind": "instruction", "cls": "B", "detail": "srl", "line": 6318}, {"kind": "instruction", "cls": "B", "detail": "addiu", "line": 6323}, {"kind": "instruction", "cls": "B", "detail": "addiu", "line": 6325}, {"kind": "instruction", "cls": "B", "detail": "addiu", "line": 6327}, {"kind": "instruction", "cls": "B", "detail": "addiu", "line": 6329}, {"kind": "instruction", "cls": "B", "detail": "addiu", "line": 6331}, {"kind": "instruction", "cls": "B", "detail": "addiu", "line": 6333}, {"kind": "instruction", "cls": "B", "detail": "addiu", "line": 6335}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 6266}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 6270}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 6271}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 6272}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 6273}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 6274}], "refused": [{"kind": "instruction", "line": 6288, "why": "instruction `nop` has no C spelling in the table"}], "compiles": 25, "seconds": 7.738486051559448, "features": {"kind": "ov", "n": 24, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": true, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 23, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "instruction", "detail": "addiu", "line": 6300}, {"kind": "instruction", "detail": "addiu", "line": 6335}, {"kind": "pin", "detail": "$4", "line": 6270}, {"kind": "pin", "detail": "$3", "line": 6271}, {"kind": "pin", "detail": "$5", "line": 6272}, {"kind": "pin", "detail": "$4", "line": 6273}], "needed": [{"kind": "instruction", "detail": "addiu", "line": 6281, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "addiu", "line": 6290, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "addiu", "line": 6292, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "addiu", "line": 6294, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "addiu", "line": 6296, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "addiu", "line": 6298, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "addu", "line": 6306, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "addu", "line": 6316, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "srl", "line": 6318, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "addiu", "line": 6323, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "addiu", "line": 6325, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "addiu", "line": 6327, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "addiu", "line": 6329, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "addiu", "line": 6331, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "addiu", "line": 6333, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$6", "line": 6266, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 6274, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_039/ov_SC02_039_jr_8017BEBC.c", "fn": "func_8017DE00", "nhash": "4d876fcb305c2f1b04c2f9621825782bb84ad291", "kind": "ov", "aliases": ["ov_SC02_039"], "header": false, "obj": "build/src/ov_SC02_039/ov_SC02_039_jr_8017BEBC.o", "n_sites": 10, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 3414}, {"kind": "launder", "cls": "B", "detail": "", "line": 3430}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 3402}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 3403}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 3404}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3405}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3406}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3407}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 3408}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 3409}], "refused": [], "compiles": 12, "seconds": 1.5599091053009033, "features": {"kind": "ov", "n": 10, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 10, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$16", "line": 3402}, {"kind": "pin", "detail": "$17", "line": 3403}, {"kind": "pin", "detail": "$18", "line": 3404}, {"kind": "pin", "detail": "$2", "line": 3405}, {"kind": "pin", "detail": "$3", "line": 3406}, {"kind": "pin", "detail": "$6", "line": 3409}], "needed": [{"kind": "launder", "detail": "", "line": 3414, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3430, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 3407, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 3408, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC02_041/ov_SC02_041_jr_8017BEBC.c", "fn": "func_8018317C", "nhash": "eebaab61b2a86378233f419c24295c48177a985d", "kind": "ov", "aliases": ["ov_SC02_041"], "header": false, "obj": "build/src/ov_SC02_041/ov_SC02_041_jr_8017BEBC.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 7664}], "refused": [], "compiles": 2, "seconds": 0.6093249320983887, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "memory", "line": 7664, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_001/ov_SC03_001_jr_8017AE2C.c", "fn": "func_80182058", "nhash": "5a69d74b3f3a5a1804675f9862a18aadeb90d107", "kind": "ov", "aliases": ["ov_SC03_001"], "header": false, "obj": "build/src/ov_SC03_001/ov_SC03_001_jr_8017AE2C.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 7443}], "refused": [], "compiles": 2, "seconds": 0.6365251541137695, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 7443, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_001/ov_SC03_001_jr_8017AE2C.c", "fn": "func_8017BF50", "nhash": "908febd9c5c1f879cb45f35e02749ebf173e521a", "kind": "ov", "aliases": ["ov_SC03_001"], "header": false, "obj": "build/src/ov_SC03_001/ov_SC03_001_jr_8017AE2C.o", "n_sites": 4, "sites": [{"kind": "pin", "cls": "A", "detail": "$19", "line": 3345}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 3346}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 3347}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 3348}], "refused": [], "compiles": 6, "seconds": 1.934159517288208, "features": {"kind": "ov", "n": 4, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 4, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$19", "line": 3345}, {"kind": "pin", "detail": "$16", "line": 3346}, {"kind": "pin", "detail": "$18", "line": 3348}], "needed": [{"kind": "pin", "detail": "$17", "line": 3347, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_001/ov_SC03_001_jr_80189030.c", "fn": "func_801898E4", "nhash": "cf81bddb740e45c3abd6618b3fd4b1f967fa730a", "kind": "ov", "aliases": ["ov_SC03_001"], "header": false, "obj": "build/src/ov_SC03_001/ov_SC03_001_jr_80189030.o", "n_sites": 6, "sites": [{"kind": "pin", "cls": "A", "detail": "$17", "line": 3516}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 3517}, {"kind": "pin", "cls": "A", "detail": "$20", "line": 3518}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 3519}, {"kind": "pin", "cls": "A", "detail": "$20", "line": 3520}, {"kind": "pin", "cls": "A", "detail": "$0", "line": 3637}], "refused": [], "compiles": 8, "seconds": 0.6300139427185059, "features": {"kind": "ov", "n": 6, "bucket": "5-9", "mix": "pins-only", "zero": true, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 6, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$17", "line": 3516}], "needed": [{"kind": "pin", "detail": "$19", "line": 3517, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$20", "line": 3518, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$19", "line": 3519, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$20", "line": 3520, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$0", "line": 3637, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_001/ov_SC03_001_jr_8018A3A8.c", "fn": "func_8018ABAC", "nhash": "5e87c2ee66b3396502588c6231f3cb434cd8ace9", "kind": "ov", "aliases": ["ov_SC03_001"], "header": false, "obj": "build/src/ov_SC03_001/ov_SC03_001_jr_8018A3A8.o", "n_sites": 4, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 3428}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 3429}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 3430}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 3431}], "refused": [], "compiles": 2, "seconds": 0.16811156272888184, "features": {"kind": "ov", "n": 4, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 4, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$16", "line": 3428}, {"kind": "pin", "detail": "$17", "line": 3429}, {"kind": "pin", "detail": "$18", "line": 3430}, {"kind": "pin", "detail": "$19", "line": 3431}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC03_001/ov_SC03_001_jr_8018B8DC.c", "fn": "func_8018BCD4", "nhash": "8c2539600a69750c54e59e7f63491febaaf210ac", "kind": "ov", "aliases": ["ov_SC03_001"], "header": false, "obj": "build/src/ov_SC03_001/ov_SC03_001_jr_8018B8DC.o", "n_sites": 5, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 3478}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 3446}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3489}, {"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 3417}, {"kind": "decl-body", "cls": "C", "detail": "", "line": 3398}], "refused": [], "compiles": 7, "seconds": 0.6539733409881592, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "cast", "detail": "volatile u16 *", "line": 3417}], "needed": [{"kind": "barrier", "detail": "memory", "line": 3478, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$6", "line": 3446, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 3489, "verdict": "DIFFERS", "err": ""}, {"kind": "decl-body", "detail": "", "line": 3398, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_002/ov_SC03_002_jr_8017D604.c", "fn": "func_8017EA54", "nhash": "3e84332a70848a1497f3a84377428e2f34b10abe", "kind": "ov", "aliases": ["ov_SC03_002"], "header": false, "obj": "build/src/ov_SC03_002/ov_SC03_002_jr_8017D604.o", "n_sites": 5, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 3391}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3392}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3393}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3394}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 3395}], "refused": [], "compiles": 7, "seconds": 1.0565319061279297, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$2", "line": 3392}, {"kind": "pin", "detail": "$3", "line": 3393}], "needed": [{"kind": "pin", "detail": "$16", "line": 3391, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 3394, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 3395, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_006/ov_SC03_006_jr_8017AE2C.c", "fn": "func_80185BD4", "nhash": "4f7ecd4ed8e6a4025b7f58357d6603effbac0729", "kind": "ov", "aliases": ["ov_SC03_006"], "header": false, "obj": "build/src/ov_SC03_006/ov_SC03_006_jr_8017AE2C.o", "n_sites": 5, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 10071}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 10072}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 10073}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 10074}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 10075}], "refused": [], "compiles": 7, "seconds": 3.706573247909546, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$2", "line": 10071}, {"kind": "pin", "detail": "$3", "line": 10072}, {"kind": "pin", "detail": "$4", "line": 10074}], "needed": [{"kind": "pin", "detail": "$2", "line": 10073, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 10075, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_006/ov_SC03_006_jr_8017AE2C.c", "fn": "func_80188AF4", "nhash": "7c166d7fa3a45a156ce0ee5e99cd478ef35a2705", "kind": "ov", "aliases": ["ov_SC03_006"], "header": false, "obj": "build/src/ov_SC03_006/ov_SC03_006_jr_8017AE2C.o", "n_sites": 4, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 12332}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 12333}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 12334}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 12335}], "refused": [], "compiles": 2, "seconds": 1.0786328315734863, "features": {"kind": "ov", "n": 4, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 4, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$2", "line": 12332}, {"kind": "pin", "detail": "$3", "line": 12333}, {"kind": "pin", "detail": "$7", "line": 12334}, {"kind": "pin", "detail": "$8", "line": 12335}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC03_011/ov_SC03_011_jr_80140608.c", "fn": "func_80140958", "nhash": "e35886b5c94a5bfa93bd67f0787b57d31b602162", "kind": "ov", "aliases": ["ov_SC03_011"], "header": false, "obj": "build/src/ov_SC03_011/ov_SC03_011_jr_80140608.o", "n_sites": 11, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 1163}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 1180}, {"kind": "pin", "cls": "A", "detail": "$20", "line": 1076}, {"kind": "pin", "cls": "A", "detail": "$21", "line": 1077}, {"kind": "pin", "cls": "A", "detail": "$23", "line": 1078}, {"kind": "pin", "cls": "A", "detail": "$22", "line": 1079}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 1080}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 1081}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 1082}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 1083}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 1174}], "refused": [], "compiles": 13, "seconds": 2.0616769790649414, "features": {"kind": "ov", "n": 11, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": true}, "n_usable": 11, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$20", "line": 1076}, {"kind": "pin", "detail": "$21", "line": 1077}, {"kind": "pin", "detail": "$23", "line": 1078}, {"kind": "pin", "detail": "$22", "line": 1079}, {"kind": "pin", "detail": "$10", "line": 1080}, {"kind": "pin", "detail": "$8", "line": 1081}, {"kind": "pin", "detail": "$9", "line": 1082}], "needed": [{"kind": "barrier", "detail": "memory", "line": 1163, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 1180, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 1083, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 1174, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_013/ov_SC03_013_jr_8017C730.c", "fn": "func_8017DD98", "nhash": "6cf37d5753074fa3b0c768429b14b0420fafcfc3", "kind": "ov", "aliases": ["ov_SC03_013"], "header": false, "obj": "build/src/ov_SC03_013/ov_SC03_013_jr_8017C730.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 3077}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 3078}], "refused": [], "compiles": 4, "seconds": 0.5370795726776123, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$16", "line": 3077}], "needed": [{"kind": "pin", "detail": "$17", "line": 3078, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_024/ov_SC03_024_jr_8017DF84.c", "fn": "func_80182108", "nhash": "d9eafbddab0c98aaabac80a32aa85afb861e7baf", "kind": "ov", "aliases": ["ov_SC03_024"], "header": false, "obj": "build/src/ov_SC03_024/ov_SC03_024_jr_8017DF84.o", "n_sites": 4, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 5605}, {"kind": "pin", "cls": "A", "detail": "v0", "line": 5598}, {"kind": "pin", "cls": "A", "detail": "v1", "line": 5599}, {"kind": "pin", "cls": "A", "detail": "a0", "line": 5600}], "refused": [], "compiles": 6, "seconds": 1.0951626300811768, "features": {"kind": "ov", "n": 4, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 4, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "v0", "line": 5598}], "needed": [{"kind": "launder", "detail": "", "line": 5605, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "v1", "line": 5599, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "a0", "line": 5600, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_024/ov_SC03_024_jr_80183BF8.c", "fn": "func_80185E38", "nhash": "5babfe79866cd93e8988274e52aec7d29e9a3275", "kind": "ov", "aliases": ["ov_SC03_024"], "header": false, "obj": "build/src/ov_SC03_024/ov_SC03_024_jr_80183BF8.o", "n_sites": 5, "sites": [{"kind": "launder", "cls": "B", "detail": "out-only", "line": 4705}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 4643}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 4646}, {"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 4697}, {"kind": "decl-body", "cls": "C", "detail": "", "line": 4644}], "refused": [], "compiles": 7, "seconds": 0.9295415878295898, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "cast", "detail": "volatile u16 *", "line": 4697}], "needed": [{"kind": "launder", "detail": "out-only", "line": 4705, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 4643, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 4646, "verdict": "DIFFERS", "err": ""}, {"kind": "decl-body", "detail": "", "line": 4644, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_028/ov_SC03_028_jr_8017DF98.c", "fn": "func_80180AC4", "nhash": "9f9b958e427489fe7c157faf9428e1594079f86d", "kind": "ov", "aliases": ["ov_SC03_028"], "header": false, "obj": "build/src/ov_SC03_028/ov_SC03_028_jr_8017DF98.o", "n_sites": 2, "sites": [{"kind": "keepalive", "cls": "B", "detail": "", "line": 4365}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 4346}], "refused": [], "compiles": 4, "seconds": 0.8834710121154785, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": true}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "keepalive", "detail": "", "line": 4365, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 4346, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_028/ov_SC03_028_jr_80185C14.c", "fn": "func_80186368", "nhash": "9d66ae3ea6afc1bcf86f79f9a28fbb35a6934946", "kind": "ov", "aliases": ["ov_SC03_028"], "header": false, "obj": "build/src/ov_SC03_028/ov_SC03_028_jr_80185C14.o", "n_sites": 20, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 3357}, {"kind": "launder", "cls": "B", "detail": "", "line": 3359}, {"kind": "launder", "cls": "B", "detail": "", "line": 3361}, {"kind": "launder", "cls": "B", "detail": "", "line": 3363}, {"kind": "launder", "cls": "B", "detail": "", "line": 3365}, {"kind": "launder", "cls": "B", "detail": "", "line": 3367}, {"kind": "launder", "cls": "B", "detail": "", "line": 3369}, {"kind": "launder", "cls": "B", "detail": "", "line": 3371}, {"kind": "launder", "cls": "B", "detail": "", "line": 3373}, {"kind": "launder", "cls": "B", "detail": "", "line": 3376}, {"kind": "launder", "cls": "B", "detail": "", "line": 3378}, {"kind": "launder", "cls": "B", "detail": "", "line": 3383}, {"kind": "launder", "cls": "B", "detail": "", "line": 3385}, {"kind": "launder", "cls": "B", "detail": "", "line": 3387}, {"kind": "launder", "cls": "B", "detail": "", "line": 3389}, {"kind": "launder", "cls": "B", "detail": "", "line": 3391}, {"kind": "launder", "cls": "B", "detail": "", "line": 3393}, {"kind": "launder", "cls": "B", "detail": "", "line": 3395}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3337}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3340}], "refused": [], "compiles": 22, "seconds": 2.744516372680664, "features": {"kind": "ov", "n": 20, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 20, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "launder", "detail": "", "line": 3359}, {"kind": "launder", "detail": "", "line": 3361}, {"kind": "launder", "detail": "", "line": 3363}, {"kind": "launder", "detail": "", "line": 3365}, {"kind": "launder", "detail": "", "line": 3367}, {"kind": "launder", "detail": "", "line": 3369}, {"kind": "launder", "detail": "", "line": 3371}, {"kind": "launder", "detail": "", "line": 3373}, {"kind": "launder", "detail": "", "line": 3376}, {"kind": "launder", "detail": "", "line": 3378}, {"kind": "launder", "detail": "", "line": 3385}, {"kind": "launder", "detail": "", "line": 3387}, {"kind": "launder", "detail": "", "line": 3389}, {"kind": "launder", "detail": "", "line": 3391}, {"kind": "launder", "detail": "", "line": 3393}, {"kind": "launder", "detail": "", "line": 3395}, {"kind": "pin", "detail": "$4", "line": 3337}], "needed": [{"kind": "launder", "detail": "", "line": 3357, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3383, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 3340, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_028/ov_SC03_028_jr_801887A8.c", "fn": "func_80189AF4", "nhash": "1b703f77db7171562a2dd13bc33bca81c4b4a4cf", "kind": "ov", "aliases": ["ov_SC03_028"], "header": false, "obj": "build/src/ov_SC03_028/ov_SC03_028_jr_801887A8.o", "n_sites": 3, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 3972}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 3945}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3964}], "refused": [], "compiles": 5, "seconds": 0.7008957862854004, "features": {"kind": "ov", "n": 3, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "memory", "line": 3972, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$16", "line": 3945, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 3964, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_029/ov_SC03_029_jr_8017FF7C.c", "fn": "func_80180B84", "nhash": "4e93cdbd6935e35daab856432166f6fe37526eec", "kind": "ov", "aliases": ["ov_SC03_029"], "header": false, "obj": "build/src/ov_SC03_029/ov_SC03_029_jr_8017FF7C.o", "n_sites": 5, "sites": [{"kind": "pin", "cls": "A", "detail": "$18", "line": 3312}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 3313}, {"kind": "pin", "cls": "A", "detail": "$20", "line": 3314}, {"kind": "pin", "cls": "A", "detail": "$21", "line": 3315}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3316}], "refused": [], "compiles": 7, "seconds": 1.5987870693206787, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$18", "line": 3312}, {"kind": "pin", "detail": "$19", "line": 3313}, {"kind": "pin", "detail": "$20", "line": 3314}, {"kind": "pin", "detail": "$21", "line": 3315}], "needed": [{"kind": "pin", "detail": "$4", "line": 3316, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_029/ov_SC03_029_jr_80186A34.c", "fn": "func_80187118", "nhash": "50336102850e195ace703ced661b3f4dd0bdc195", "kind": "ov", "aliases": ["ov_SC03_029"], "header": false, "obj": "build/src/ov_SC03_029/ov_SC03_029_jr_80186A34.o", "n_sites": 4, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 3562}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3563}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 3564}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 3565}], "refused": [], "compiles": 2, "seconds": 0.16167330741882324, "features": {"kind": "ov", "n": 4, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 4, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$2", "line": 3562}, {"kind": "pin", "detail": "$3", "line": 3563}, {"kind": "pin", "detail": "$7", "line": 3564}, {"kind": "pin", "detail": "$8", "line": 3565}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC03_030/ov_SC03_030_jr_8017AE2C.c", "fn": "func_80180960", "nhash": "fda32e62e7492326bd14bd801d2ac3761b7232a9", "kind": "ov", "aliases": ["ov_SC03_030"], "header": false, "obj": "build/src/ov_SC03_030/ov_SC03_030_jr_8017AE2C.o", "n_sites": 3, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 6065}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 6048}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 6049}], "refused": [], "compiles": 5, "seconds": 1.2432894706726074, "features": {"kind": "ov", "n": 3, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "memory", "line": 6065, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 6048, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 6049, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_090/ov_SC03_090_jr_8017CA80.c", "fn": "func_801840C0", "nhash": "a04a70acd0c3b1d0cd8cc29441fe6cafd9e55526", "kind": "ov", "aliases": ["ov_SC03_090"], "header": false, "obj": "build/src/ov_SC03_090/ov_SC03_090_jr_8017CA80.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 5700}], "refused": [], "compiles": 2, "seconds": 0.8347210884094238, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$2", "line": 5700}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC03_092/ov_SC03_092_jr_80181694.c", "fn": "func_8018478C", "nhash": "c3e47a9b3d04026590cdb27e76e991d21a66596c", "kind": "ov", "aliases": ["ov_SC03_092"], "header": false, "obj": "build/src/ov_SC03_092/ov_SC03_092_jr_80181694.o", "n_sites": 8, "sites": [{"kind": "keepalive", "cls": "B", "detail": "", "line": 4982}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 4983}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 4991}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 4998}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 5015}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 5059}, {"kind": "pin", "cls": "A", "detail": "$0", "line": 4938}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 5047}], "refused": [], "compiles": 10, "seconds": 1.4410126209259033, "features": {"kind": "ov", "n": 8, "bucket": "5-9", "mix": "mixed", "zero": true, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": true}, "n_usable": 8, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "keepalive", "detail": "", "line": 4982, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 4983, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 4991, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 4998, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 5015, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 5059, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$0", "line": 4938, "verdict": "DIFFERS", "err": ""}, {"kind": "cast", "detail": "volatile s32 *", "line": 5047, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_094/ov_SC03_094_jr_8017BEBC.c", "fn": "func_80181448", "nhash": "137f01595a1de66587f3a7923b965c94bdb33a68", "kind": "ov", "aliases": ["ov_SC03_094"], "header": false, "obj": "build/src/ov_SC03_094/ov_SC03_094_jr_8017BEBC.o", "n_sites": 6, "sites": [{"kind": "pin", "cls": "A", "detail": "$7", "line": 5643}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 5644}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 5645}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 5646}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 5647}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 5648}], "refused": [], "compiles": 8, "seconds": 2.5221354961395264, "features": {"kind": "ov", "n": 6, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 6, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$7", "line": 5643}, {"kind": "pin", "detail": "$2", "line": 5645}], "needed": [{"kind": "pin", "detail": "$3", "line": 5644, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 5646, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 5647, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$6", "line": 5648, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_097/ov_SC03_097_jr_8017D898.c", "fn": "func_80181CF4", "nhash": "6816cb16f5781e050e36f625b634b1a857cac917", "kind": "ov", "aliases": ["ov_SC03_097"], "header": false, "obj": "build/src/ov_SC03_097/ov_SC03_097_jr_8017D898.o", "n_sites": 5, "sites": [{"kind": "launder", "cls": "B", "detail": "out-only", "line": 5564}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 5502}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 5505}, {"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 5556}, {"kind": "decl-body", "cls": "C", "detail": "", "line": 5503}], "refused": [], "compiles": 7, "seconds": 1.2795233726501465, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "cast", "detail": "volatile u16 *", "line": 5556}], "needed": [{"kind": "launder", "detail": "out-only", "line": 5564, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 5502, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 5505, "verdict": "DIFFERS", "err": ""}, {"kind": "decl-body", "detail": "", "line": 5503, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_105/ov_SC03_105_jr_8017C8D0.c", "fn": "func_8017E180", "nhash": "6e9c085667b5be99ef0e8f50e667b77e27f1088c", "kind": "ov", "aliases": ["ov_SC03_105"], "header": false, "obj": "build/src/ov_SC03_105/ov_SC03_105_jr_8017C8D0.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 3270}], "refused": [], "compiles": 2, "seconds": 0.3730759620666504, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "memory", "line": 3270, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_105/ov_SC03_105_jr_80181C84.c", "fn": "func_80183A98", "nhash": "d5b218e8ee5d07e907e6397376a566d8ee29b3c0", "kind": "ov", "aliases": ["ov_SC03_105"], "header": false, "obj": "build/src/ov_SC03_105/ov_SC03_105_jr_80181C84.o", "n_sites": 5, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 3977}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3980}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3998}, {"kind": "barrier", "cls": "B", "detail": "", "line": 4001}, {"kind": "barrier", "cls": "B", "detail": "", "line": 4003}], "refused": [], "compiles": 6, "seconds": 0.975092887878418, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 3977, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3980, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3998, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 4001, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 4003, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_105/ov_SC03_105_jr_80181C84.c", "fn": "func_80184E74", "nhash": "078f69099332b9879a3d69511375833a67748d45", "kind": "ov", "aliases": ["ov_SC03_105"], "header": false, "obj": "build/src/ov_SC03_105/ov_SC03_105_jr_80181C84.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 4942}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 4943}], "refused": [], "compiles": 2, "seconds": 0.32085537910461426, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$16", "line": 4942}, {"kind": "pin", "detail": "$17", "line": 4943}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC03_105/ov_SC03_105_jr_80186DDC.c", "fn": "func_80187928", "nhash": "1c8e92251f8ce030d9fc398eb3900a8571097157", "kind": "ov", "aliases": ["ov_SC03_105"], "header": false, "obj": "build/src/ov_SC03_105/ov_SC03_105_jr_80186DDC.o", "n_sites": 1, "sites": [{"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 3420}], "refused": [], "compiles": 2, "seconds": 0.24022722244262695, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "cast", "detail": "volatile u16 *", "line": 3420, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_107/ov_SC03_107_jr_801789AC.c", "fn": "func_8017BEBC", "nhash": "2f5bb8980a78b6291daed07ea067561d4d16fa05", "kind": "ov", "aliases": ["ov_SC03_107"], "header": false, "obj": "build/src/ov_SC03_107/ov_SC03_107_jr_801789AC.o", "n_sites": 7, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 6072}, {"kind": "barrier", "cls": "B", "detail": "", "line": 6073}, {"kind": "barrier", "cls": "B", "detail": "", "line": 6128}, {"kind": "barrier", "cls": "B", "detail": "", "line": 6129}, {"kind": "launder", "cls": "B", "detail": "", "line": 5923}, {"kind": "launder", "cls": "B", "detail": "", "line": 5936}, {"kind": "launder", "cls": "B", "detail": "", "line": 5937}], "refused": [], "compiles": 8, "seconds": 2.6480326652526855, "features": {"kind": "ov", "n": 7, "bucket": "5-9", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": true, "keepalive": false}, "n_usable": 7, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 6072, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 6073, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 6128, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 6129, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5923, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5936, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5937, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_107/ov_SC03_107_jr_801789AC.c", "fn": "func_8017CF48", "nhash": "4fce167e54c4429f1e1c2fb80b340bbfafb4d8b5", "kind": "ov", "aliases": ["ov_SC03_107"], "header": false, "obj": "build/src/ov_SC03_107/ov_SC03_107_jr_801789AC.o", "n_sites": 6, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 6447}, {"kind": "launder", "cls": "B", "detail": "", "line": 6458}, {"kind": "launder", "cls": "B", "detail": "", "line": 6480}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 6426}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 6427}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 6428}], "refused": [], "compiles": 8, "seconds": 2.4659786224365234, "features": {"kind": "ov", "n": 6, "bucket": "5-9", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 6, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$16", "line": 6426}, {"kind": "pin", "detail": "$4", "line": 6428}], "needed": [{"kind": "launder", "detail": "", "line": 6447, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 6458, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 6480, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$18", "line": 6427, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_108/ov_SC03_108_jr_8017F83C.c", "fn": "func_8017FD64", "nhash": "94249239920e4c31e9b7d7abc8c5f70b6002d23c", "kind": "ov", "aliases": ["ov_SC03_108"], "header": false, "obj": "build/src/ov_SC03_108/ov_SC03_108_jr_8017F83C.o", "n_sites": 2, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 3026}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3034}], "refused": [], "compiles": 3, "seconds": 0.2850611209869385, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 3026, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3034, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_109/ov_SC03_109_jr_8017C180.c", "fn": "func_8017D8E0", "nhash": "e1ba5f4b9d11aa763c233e77180615666f74bc31", "kind": "ov", "aliases": ["ov_SC03_109"], "header": false, "obj": "build/src/ov_SC03_109/ov_SC03_109_jr_8017C180.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 3168}], "refused": [], "compiles": 2, "seconds": 0.21366167068481445, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$16", "line": 3168}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC03_112/ov_SC03_112_jr_8017C294.c", "fn": "func_8017D174", "nhash": "078d7892b2c3f26bb34ff9321f706016c7298c74", "kind": "ov", "aliases": ["ov_SC03_112"], "header": false, "obj": "build/src/ov_SC03_112/ov_SC03_112_jr_8017C294.o", "n_sites": 4, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 3071}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3072}, {"kind": "launder", "cls": "B", "detail": "", "line": 3040}, {"kind": "launder", "cls": "B", "detail": "", "line": 3056}], "refused": [], "compiles": 5, "seconds": 1.0023558139801025, "features": {"kind": "ov", "n": 4, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": true, "keepalive": false}, "n_usable": 4, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "barrier", "detail": "", "line": 3071}], "needed": [{"kind": "barrier", "detail": "", "line": 3072, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3040, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3056, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_113/ov_SC03_113_jr_8017C294.c", "fn": "func_8017F394", "nhash": "1dfe8c76ae43c16a90cc407088e7e256525f804e", "kind": "ov", "aliases": ["ov_SC03_113"], "header": false, "obj": "build/src/ov_SC03_113/ov_SC03_113_jr_8017C294.o", "n_sites": 6, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 4288}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 4289}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 4290}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 4291}, {"kind": "pin", "cls": "A", "detail": "$1", "line": 4292}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 4293}], "refused": [], "compiles": 8, "seconds": 1.871985912322998, "features": {"kind": "ov", "n": 6, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 6, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$16", "line": 4288}, {"kind": "pin", "detail": "$5", "line": 4289}, {"kind": "pin", "detail": "$3", "line": 4291}, {"kind": "pin", "detail": "$1", "line": 4292}, {"kind": "pin", "detail": "$4", "line": 4293}], "needed": [{"kind": "pin", "detail": "$2", "line": 4290, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_113/ov_SC03_113_jr_8017C294.c", "fn": "func_8017E178", "nhash": "61ed07ad8a98f8b0c45d2f1f6618dbab9daf48e7", "kind": "ov", "aliases": ["ov_SC03_113"], "header": false, "obj": "build/src/ov_SC03_113/ov_SC03_113_jr_8017C294.o", "n_sites": 2, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 3457}, {"kind": "launder", "cls": "B", "detail": "", "line": 3604}], "refused": [], "compiles": 3, "seconds": 0.6896612644195557, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "launder", "detail": "", "line": 3457, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3604, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_118/ov_SC03_118_jr_80183830.c", "fn": "func_80184698", "nhash": "85af1e8b985427089c2e6d99708c2318d2183052", "kind": "ov", "aliases": ["ov_SC03_118", "ov_SC03_119"], "header": false, "obj": "build/src/ov_SC03_118/ov_SC03_118_jr_80183830.o", "n_sites": 2, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 3433}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 3435}], "refused": [], "compiles": 1, "seconds": 0.11579489707946777, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 2, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "barrier", "detail": "memory", "line": 3433}, {"kind": "barrier", "detail": "memory", "line": 3435}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC03_121/ov_SC03_121_jr_8017E1D0.c", "fn": "func_8017F374", "nhash": "14143468c5e3be1c5b16e9e918eae467ff269318", "kind": "ov", "aliases": ["ov_SC03_121"], "header": false, "obj": "build/src/ov_SC03_121/ov_SC03_121_jr_8017E1D0.o", "n_sites": 1, "sites": [{"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 3324}], "refused": [], "compiles": 2, "seconds": 0.3454165458679199, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "cast", "detail": "volatile u16 *", "line": 3324, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC03_124/ov_SC03_124_jr_80188544.c", "fn": "func_80188C68", "nhash": "3216d43a1e12dd8c01eafc0d9492459d8e851f4a", "kind": "ov", "aliases": ["ov_SC03_124"], "header": false, "obj": "build/src/ov_SC03_124/ov_SC03_124_jr_80188544.o", "n_sites": 24, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 3689}, {"kind": "launder", "cls": "B", "detail": "", "line": 3449}, {"kind": "launder", "cls": "B", "detail": "", "line": 3471}, {"kind": "launder", "cls": "B", "detail": "", "line": 3491}, {"kind": "launder", "cls": "B", "detail": "", "line": 3587}, {"kind": "launder", "cls": "B", "detail": "", "line": 3617}, {"kind": "instruction", "cls": "B", "detail": "addu", "line": 3525}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 3431}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 3432}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 3433}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 3434}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 3463}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 3465}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 3493}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3494}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3569}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 3570}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3571}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3572}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3574}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 3605}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3606}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3646}, {"kind": "decl-body", "cls": "C", "detail": "", "line": 3688}], "refused": [], "compiles": 26, "seconds": 2.8106026649475098, "features": {"kind": "ov", "n": 24, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": true, "cast": false, "register": false, "volatile": true, "launder": true, "barrier": true, "keepalive": false}, "n_usable": 24, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$17", "line": 3432}, {"kind": "pin", "detail": "$18", "line": 3433}, {"kind": "pin", "detail": "$17", "line": 3465}, {"kind": "pin", "detail": "$2", "line": 3569}, {"kind": "pin", "detail": "$3", "line": 3574}], "needed": [{"kind": "barrier", "detail": "", "line": 3689, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3449, "verdict": "COMPILE-ERROR", "err": "bash: line 1: 3745983 Done mipsel-linux-gnu-cpp -lang-c -Iinclude -undef -Wall -fno-builtin -Dmips -D"}, {"kind": "launder", "detail": "", "line": 3471, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3491, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3587, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3617, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "addu", "line": 3525, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$16", "line": 3431, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 3434, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$16", "line": 3463, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$16", "line": 3493, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 3494, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$16", "line": 3570, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 3571, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 3572, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$16", "line": 3605, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 3606, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 3646, "verdict": "DIFFERS", "err": ""}, {"kind": "decl-body", "detail": "", "line": 3688, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC04_007/ov_SC04_007_jr_8017BEBC.c", "fn": "func_80183438", "nhash": "575213b6bb987e190039c65256419f27c03178c8", "kind": "ov", "aliases": ["ov_SC04_007"], "header": false, "obj": "build/src/ov_SC04_007/ov_SC04_007_jr_8017BEBC.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 7601}], "refused": [], "compiles": 1, "seconds": 0.32079029083251953, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "barrier", "detail": "", "line": 7601}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC04_011/ov_SC04_011_jr_8017D494.c", "fn": "func_80185A30", "nhash": "74de066dd57ed0d9c64c20fb51b7f97d5360b36b", "kind": "ov", "aliases": ["ov_SC04_011"], "header": false, "obj": "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$17", "line": 8842}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 8843}], "refused": [], "compiles": 2, "seconds": 1.135831356048584, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$17", "line": 8842}, {"kind": "pin", "detail": "$18", "line": 8843}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC04_011/ov_SC04_011_jr_8017D494.c", "fn": "func_801835B0", "nhash": "cf754f55211cfd7815057357e76cbc8644b45f08", "kind": "ov", "aliases": ["ov_SC04_011"], "header": false, "obj": "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o", "n_sites": 3, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 7109}, {"kind": "launder", "cls": "B", "detail": "", "line": 7119}, {"kind": "launder", "cls": "B", "detail": "", "line": 7132}], "refused": [], "compiles": 4, "seconds": 2.2681026458740234, "features": {"kind": "ov", "n": 3, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "launder", "detail": "", "line": 7109, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 7119, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 7132, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC04_011/ov_SC04_011_jr_8017D494.c", "fn": "func_8018E428", "nhash": "c65dc4703eace03c47e8e96c0599b6b3422ba389", "kind": "ov", "aliases": ["ov_SC04_011"], "header": false, "obj": "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o", "n_sites": 5, "sites": [{"kind": "launder", "cls": "B", "detail": "out-only", "line": 15668}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 15606}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 15609}, {"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 15660}, {"kind": "decl-body", "cls": "C", "detail": "", "line": 15607}], "refused": [], "compiles": 7, "seconds": 3.901747465133667, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "cast", "detail": "volatile u16 *", "line": 15660}], "needed": [{"kind": "launder", "detail": "out-only", "line": 15668, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 15606, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 15609, "verdict": "DIFFERS", "err": ""}, {"kind": "decl-body", "detail": "", "line": 15607, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC04_011/ov_SC04_011_jr_8017D494.c", "fn": "func_8018315C", "nhash": "a34007e012f5ba3a806284388a249725b2d5b79f", "kind": "ov", "aliases": ["ov_SC04_011"], "header": false, "obj": "build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$3", "line": 6810}, {"kind": "pin", "cls": "A", "detail": "$0", "line": 6855}], "refused": [], "compiles": 4, "seconds": 1.7488083839416504, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": true, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$3", "line": 6810, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$0", "line": 6855, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.c", "fn": "func_8017DBAC", "nhash": "25334c84eacfb0844b5327f7e45f29ffa966d42e", "kind": "ov", "aliases": ["ov_SC04_015"], "header": false, "obj": "build/src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.o", "n_sites": 1, "sites": [{"kind": "decl-body", "cls": "C", "detail": "", "line": 4451}], "refused": [], "compiles": 2, "seconds": 0.47712087631225586, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "decl-body", "detail": "", "line": 4451, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.c", "fn": "func_8017BF70", "nhash": "9df243ccf142be71265afb2318d8401b842058f8", "kind": "ov", "aliases": ["ov_SC04_015"], "header": false, "obj": "build/src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.o", "n_sites": 4, "sites": [{"kind": "pin", "cls": "A", "detail": "$19", "line": 3377}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 3378}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 3379}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 3380}], "refused": [], "compiles": 6, "seconds": 1.4555079936981201, "features": {"kind": "ov", "n": 4, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 4, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$19", "line": 3377}, {"kind": "pin", "detail": "$16", "line": 3378}, {"kind": "pin", "detail": "$18", "line": 3380}], "needed": [{"kind": "pin", "detail": "$17", "line": 3379, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.c", "fn": "func_8017DD2C", "nhash": "951a2d65c661ea368b067d5be26f10671916f4ca", "kind": "ov", "aliases": ["ov_SC04_015"], "header": false, "obj": "build/src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 4544}], "refused": [], "compiles": 2, "seconds": 0.4349846839904785, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$16", "line": 4544}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC04_016/ov_SC04_016_jr_8017BEBC.c", "fn": "func_8017DA50", "nhash": "a6f6849a8a4cda40049d8a4740361f19fd8806f4", "kind": "ov", "aliases": ["ov_SC04_016"], "header": false, "obj": "build/src/ov_SC04_016/ov_SC04_016_jr_8017BEBC.o", "n_sites": 10, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 3377}, {"kind": "launder", "cls": "B", "detail": "", "line": 3378}, {"kind": "launder", "cls": "B", "detail": "", "line": 3379}, {"kind": "launder", "cls": "B", "detail": "", "line": 3380}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3335}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3338}, {"kind": "pin", "cls": "A", "detail": "$21", "line": 3340}, {"kind": "pin", "cls": "A", "detail": "$20", "line": 3341}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 3342}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 3343}], "refused": [], "compiles": 12, "seconds": 1.6001338958740234, "features": {"kind": "ov", "n": 10, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 10, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$4", "line": 3335}, {"kind": "pin", "detail": "$21", "line": 3340}], "needed": [{"kind": "launder", "detail": "", "line": 3377, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3378, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3379, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3380, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 3338, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$20", "line": 3341, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$18", "line": 3342, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$19", "line": 3343, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC04_018/ov_SC04_018_jr_801878E8.c", "fn": "func_80188778", "nhash": "9c4592b7c857fa44a1d1d6b04237be38b2acb896", "kind": "ov", "aliases": ["ov_SC04_018", "ov_SC04_019"], "header": false, "obj": "build/src/ov_SC04_018/ov_SC04_018_jr_801878E8.o", "n_sites": 6, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 3776}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 3793}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3740}, {"kind": "pin", "cls": "A", "detail": "$0", "line": 3742}, {"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 3787}, {"kind": "decl-body", "cls": "C", "detail": "", "line": 3744}], "refused": [], "compiles": 8, "seconds": 0.7104952335357666, "features": {"kind": "ov", "n": 6, "bucket": "5-9", "mix": "mixed", "zero": true, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 6, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$2", "line": 3740}, {"kind": "cast", "detail": "volatile u16 *", "line": 3787}], "needed": [{"kind": "barrier", "detail": "", "line": 3776, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "memory", "line": 3793, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$0", "line": 3742, "verdict": "DIFFERS", "err": ""}, {"kind": "decl-body", "detail": "", "line": 3744, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC04_018/ov_SC04_018_jr_80188E1C.c", "fn": "func_80189EA0", "nhash": "831acc4a4c215a805dcc7b13cd53dba36b34363a", "kind": "ov", "aliases": ["ov_SC04_018", "ov_SC04_019"], "header": false, "obj": "build/src/ov_SC04_018/ov_SC04_018_jr_80188E1C.o", "n_sites": 2, "sites": [{"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 4011}, {"kind": "decl-body", "cls": "C", "detail": "", "line": 4005}], "refused": [], "compiles": 3, "seconds": 0.48831748962402344, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "cast", "detail": "volatile u16 *", "line": 4011}], "needed": [{"kind": "decl-body", "detail": "", "line": 4005, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC04_020/ov_SC04_020_jr_8017D604.c", "fn": "func_8018087C", "nhash": "376ef7d52002db3bd84dbfb1863ab88f2901d663", "kind": "ov", "aliases": ["ov_SC04_020"], "header": false, "obj": "build/src/ov_SC04_020/ov_SC04_020_jr_8017D604.o", "n_sites": 1, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 4589}], "refused": [], "compiles": 2, "seconds": 0.3521852493286133, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "launder", "detail": "", "line": 4589, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC05_001/ov_SC05_001_jr_8017BEBC.c", "fn": "func_80182258", "nhash": "9073f42efdb852d122e76689e4d52913831143fe", "kind": "ov", "aliases": ["ov_SC05_001"], "header": false, "obj": "build/src/ov_SC05_001/ov_SC05_001_jr_8017BEBC.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$5", "line": 6809}], "refused": [], "compiles": 3, "seconds": 0.7841532230377197, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$5", "line": 6809, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC05_001/ov_SC05_001_jr_8017BEBC.c", "fn": "func_80181A1C", "nhash": "a56a963464c6453c6ed8dd116347d1d1ef065611", "kind": "ov", "aliases": ["ov_SC05_001"], "header": false, "obj": "build/src/ov_SC05_001/ov_SC05_001_jr_8017BEBC.o", "n_sites": 1, "sites": [{"kind": "decl-body", "cls": "C", "detail": "", "line": 6464}], "refused": [], "compiles": 1, "seconds": 0.2295210361480713, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "decl-body", "detail": "", "line": 6464}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC05_002/ov_SC05_002_jr_8017BEBC.c", "fn": "func_8017F200", "nhash": "9bd88e5d625b5e5087b0dc33e453efc49c4cc3fe", "kind": "ov", "aliases": ["ov_SC05_002"], "header": false, "obj": "build/src/ov_SC05_002/ov_SC05_002_jr_8017BEBC.o", "n_sites": 6, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 4144}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 4145}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 4146}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 4147}, {"kind": "pin", "cls": "A", "detail": "$1", "line": 4148}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 4149}], "refused": [], "compiles": 8, "seconds": 1.2780418395996094, "features": {"kind": "ov", "n": 6, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 6, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$16", "line": 4144}, {"kind": "pin", "detail": "$5", "line": 4145}, {"kind": "pin", "detail": "$3", "line": 4147}, {"kind": "pin", "detail": "$1", "line": 4148}, {"kind": "pin", "detail": "$4", "line": 4149}], "needed": [{"kind": "pin", "detail": "$2", "line": 4146, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC05_003/ov_SC05_003_jr_8017BEBC.c", "fn": "func_80180E58", "nhash": "946e32d5d58869d2053c80605a2fcd4b80af0b97", "kind": "ov", "aliases": ["ov_SC05_003"], "header": false, "obj": "build/src/ov_SC05_003/ov_SC05_003_jr_8017BEBC.o", "n_sites": 1, "sites": [{"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 5493}], "refused": [], "compiles": 1, "seconds": 0.22966217994689941, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "cast", "detail": "volatile s32 *", "line": 5493}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC05_003/ov_SC05_003_jr_8017BEBC.c", "fn": "func_801815A0", "nhash": "da3595365135f4046dbaf068b8b04982a8207732", "kind": "ov", "aliases": ["ov_SC05_003"], "header": false, "obj": "build/src/ov_SC05_003/ov_SC05_003_jr_8017BEBC.o", "n_sites": 1, "sites": [{"kind": "cast", "cls": "C", "detail": "volatile s16 *", "line": 5787}], "refused": [], "compiles": 2, "seconds": 0.4866373538970947, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "cast", "detail": "volatile s16 *", "line": 5787, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC05_003/ov_SC05_003_jr_8017BEBC.c", "fn": "func_801812AC", "nhash": "b318633829559fd71fb2590b73ed7b6fbba29059", "kind": "ov", "aliases": ["ov_SC05_003"], "header": false, "obj": "build/src/ov_SC05_003/ov_SC05_003_jr_8017BEBC.o", "n_sites": 2, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 5673}, {"kind": "barrier", "cls": "B", "detail": "", "line": 5678}], "refused": [], "compiles": 3, "seconds": 0.677849531173706, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "barrier", "detail": "memory", "line": 5673}], "needed": [{"kind": "barrier", "detail": "", "line": 5678, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC05_005/ov_SC05_005_jr_8017D898.c", "fn": "func_801816A8", "nhash": "7d2354f22f8f30dc7d37d07ef6ecc082c40411f5", "kind": "ov", "aliases": ["ov_SC05_005"], "header": false, "obj": "build/src/ov_SC05_005/ov_SC05_005_jr_8017D898.o", "n_sites": 1, "sites": [{"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 4845}], "refused": [], "compiles": 2, "seconds": 0.36100006103515625, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "cast", "detail": "volatile u16 *", "line": 4845, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC05_008/ov_SC05_008_jr_8017AE2C.c", "fn": "func_8017E6A4", "nhash": "22c807ade53e8046f2465d4faaf3c2cd60d6662e", "kind": "ov", "aliases": ["ov_SC05_008"], "header": false, "obj": "build/src/ov_SC05_008/ov_SC05_008_jr_8017AE2C.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 4466}], "refused": [], "compiles": 2, "seconds": 0.4646592140197754, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 4466, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC05_010/ov_SC05_010_jr_8017C8D0.c", "fn": "func_8017EC7C", "nhash": "cb3c5416a68cd033bf740ed7be9a93d65a0d698e", "kind": "ov", "aliases": ["ov_SC05_010"], "header": false, "obj": "build/src/ov_SC05_010/ov_SC05_010_jr_8017C8D0.o", "n_sites": 1, "sites": [{"kind": "decl-body", "cls": "C", "detail": "extern", "line": 3704}], "refused": [], "compiles": 1, "seconds": 0.16433215141296387, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "decl-body", "detail": "extern", "line": 3704}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC05_010/ov_SC05_010_jr_8017C8D0.c", "fn": "func_8017FAF4", "nhash": "89a60c90d6cbdfccc215c575082d45de9d3e172c", "kind": "ov", "aliases": ["ov_SC05_010"], "header": false, "obj": "build/src/ov_SC05_010/ov_SC05_010_jr_8017C8D0.o", "n_sites": 1, "sites": [{"kind": "decl-body", "cls": "C", "detail": "extern", "line": 4253}], "refused": [], "compiles": 1, "seconds": 0.15875816345214844, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "decl-body", "detail": "extern", "line": 4253}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC05_010/ov_SC05_010_jr_80180F84.c", "fn": "func_801814AC", "nhash": "81891e3dfdd3687a9c8051190cd49a4dd926db17", "kind": "ov", "aliases": ["ov_SC05_010"], "header": false, "obj": "build/src/ov_SC05_010/ov_SC05_010_jr_80180F84.o", "n_sites": 2, "sites": [{"kind": "decl-body", "cls": "C", "detail": "", "line": 3032}, {"kind": "decl-body", "cls": "C", "detail": "", "line": 3033}], "refused": [], "compiles": 3, "seconds": 0.21380829811096191, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "decl-body", "detail": "", "line": 3032}], "needed": [{"kind": "decl-body", "detail": "", "line": 3033, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC05_010/ov_SC05_010_jr_80181CDC.c", "fn": "func_80183D5C", "nhash": "804ac4405bb56bf7966a1f301ee274d53204b46c", "kind": "ov", "aliases": ["ov_SC05_010"], "header": false, "obj": "build/src/ov_SC05_010/ov_SC05_010_jr_80181CDC.o", "n_sites": 10, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 3814}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 3815}, {"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 3877}, {"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 3878}, {"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 3879}, {"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 3880}, {"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 3881}, {"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 3882}, {"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 3883}, {"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 3884}], "refused": [], "compiles": 12, "seconds": 1.4496183395385742, "features": {"kind": "ov", "n": 10, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 10, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$16", "line": 3814}, {"kind": "pin", "detail": "$17", "line": 3815}, {"kind": "cast", "detail": "volatile u16 *", "line": 3877}, {"kind": "cast", "detail": "volatile u16 *", "line": 3879}, {"kind": "cast", "detail": "volatile u16 *", "line": 3880}, {"kind": "cast", "detail": "volatile u16 *", "line": 3881}, {"kind": "cast", "detail": "volatile u16 *", "line": 3882}, {"kind": "cast", "detail": "volatile u16 *", "line": 3883}, {"kind": "cast", "detail": "volatile u16 *", "line": 3884}], "needed": [{"kind": "cast", "detail": "volatile u16 *", "line": 3878, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c", "fn": "func_80182464", "nhash": "c14557a4b51dff0187a4a237dae680ffe50aa7fc", "kind": "ov", "aliases": ["ov_SC06_000"], "header": false, "obj": "build/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.o", "n_sites": 2, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 7416}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 7411}], "refused": [], "compiles": 4, "seconds": 1.4899084568023682, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "launder", "detail": "", "line": 7416, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$17", "line": 7411, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c", "fn": "func_801835B0", "nhash": "ce9e7b024b6cba7d956143596a96d710ab07aadc", "kind": "ov", "aliases": ["ov_SC06_000"], "header": false, "obj": "build/src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.o", "n_sites": 7, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 8159}, {"kind": "barrier", "cls": "B", "detail": "", "line": 8159}, {"kind": "barrier", "cls": "B", "detail": "", "line": 8159}, {"kind": "barrier", "cls": "B", "detail": "", "line": 8159}, {"kind": "barrier", "cls": "B", "detail": "", "line": 8159}, {"kind": "barrier", "cls": "B", "detail": "", "line": 8159}, {"kind": "barrier", "cls": "B", "detail": "", "line": 8159}], "refused": [], "compiles": 8, "seconds": 3.149280071258545, "features": {"kind": "ov", "n": 7, "bucket": "5-9", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 7, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 8159, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 8159, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 8159, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 8159, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 8159, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 8159, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 8159, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_006/ov_SC06_006_jr_8017DB90.c", "fn": "func_8017E550", "nhash": "624581e55918ffa3158c64e6028a7e371b46853e", "kind": "ov", "aliases": ["ov_SC06_006"], "header": false, "obj": "build/src/ov_SC06_006/ov_SC06_006_jr_8017DB90.o", "n_sites": 3, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 3219}, {"kind": "launder", "cls": "B", "detail": "", "line": 3222}, {"kind": "launder", "cls": "B", "detail": "", "line": 3225}], "refused": [], "compiles": 4, "seconds": 0.6047823429107666, "features": {"kind": "ov", "n": 3, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "launder", "detail": "", "line": 3219, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3222, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3225, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_008/ov_SC06_008_jr_8017C294.c", "fn": "func_8018165C", "nhash": "64ffb5415cc6b301db99f8ed5ebfe400ce750b78", "kind": "ov", "aliases": ["ov_SC06_008"], "header": false, "obj": "build/src/ov_SC06_008/ov_SC06_008_jr_8017C294.o", "n_sites": 2, "sites": [{"kind": "instruction", "cls": "B", "detail": "RTP_SND", "line": 5945}, {"kind": "instruction", "cls": "B", "detail": "RTP_SND", "line": 5947}], "refused": [{"kind": "instruction", "line": 5945, "why": "macro-carried instruction is residue"}, {"kind": "instruction", "line": 5947, "why": "macro-carried instruction is residue"}], "compiles": 0, "seconds": 0.0, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": true, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 0, "verdict": "NOTHING-USABLE"} +{"tu": "src/ov_SC06_008/ov_SC06_008_jr_8017C294.c", "fn": "func_8017D73C", "nhash": "42680573fe4c16ed6ddf7cbd08faecf73785adee", "kind": "ov", "aliases": ["ov_SC06_008"], "header": false, "obj": "build/src/ov_SC06_008/ov_SC06_008_jr_8017C294.o", "n_sites": 2, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 3121}, {"kind": "launder", "cls": "B", "detail": "", "line": 3136}], "refused": [], "compiles": 3, "seconds": 0.8962082862854004, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "launder", "detail": "", "line": 3121, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3136, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_011/ov_SC06_011_jr_8017BEBC.c", "fn": "func_8017E5D0", "nhash": "f30e06734e736df2e9e8d01082733f06228c5f95", "kind": "ov", "aliases": ["ov_SC06_011"], "header": false, "obj": "build/src/ov_SC06_011/ov_SC06_011_jr_8017BEBC.o", "n_sites": 7, "sites": [{"kind": "pin", "cls": "A", "detail": "$8", "line": 3939}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 3944}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 3949}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3983}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 4017}, {"kind": "pin", "cls": "A", "detail": "$21", "line": 4028}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 4029}], "refused": [], "compiles": 9, "seconds": 1.0721158981323242, "features": {"kind": "ov", "n": 7, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 7, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$8", "line": 3939}, {"kind": "pin", "detail": "$2", "line": 3983}, {"kind": "pin", "detail": "$21", "line": 4028}, {"kind": "pin", "detail": "$18", "line": 4029}], "needed": [{"kind": "pin", "detail": "$9", "line": 3944, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$16", "line": 3949, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 4017, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_011/ov_SC06_011_jr_8017EEEC.c", "fn": "func_8017FEB4", "nhash": "79b466142fdfca41bfb830ce9881e928e50a41cd", "kind": "ov", "aliases": ["ov_SC06_011"], "header": false, "obj": "build/src/ov_SC06_011/ov_SC06_011_jr_8017EEEC.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$3", "line": 748}], "refused": [], "compiles": 2, "seconds": 0.09700822830200195, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$3", "line": 748}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC06_011/ov_SC06_011_jr_8017EEEC.c", "fn": "func_8017F3C8", "nhash": "fb9ebacd67758253a78ab2a7905e4cdc083653c8", "kind": "ov", "aliases": ["ov_SC06_011"], "header": false, "obj": "build/src/ov_SC06_011/ov_SC06_011_jr_8017EEEC.o", "n_sites": 5, "sites": [{"kind": "pin", "cls": "A", "detail": "$19", "line": 231}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 233}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 234}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 235}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 237}], "refused": [], "compiles": 7, "seconds": 0.3909895420074463, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$19", "line": 231}, {"kind": "pin", "detail": "$3", "line": 233}, {"kind": "pin", "detail": "$3", "line": 234}, {"kind": "pin", "detail": "$16", "line": 237}], "needed": [{"kind": "pin", "detail": "$2", "line": 235, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_013/ov_SC06_013_jr_8017BEBC.c", "fn": "func_8017DE14", "nhash": "172f18a2f52648f44052b8fe013f565912c01be5", "kind": "ov", "aliases": ["ov_SC06_013"], "header": false, "obj": "build/src/ov_SC06_013/ov_SC06_013_jr_8017BEBC.o", "n_sites": 1, "sites": [{"kind": "keepalive", "cls": "B", "detail": "", "line": 3619}], "refused": [], "compiles": 2, "seconds": 0.24371600151062012, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": true}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "keepalive", "detail": "", "line": 3619, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_016/ov_SC06_016_jr_8017C8D0.c", "fn": "func_801810A4", "nhash": "e6a68c429bd4cb52d2859f5e086cb0460f3e38ee", "kind": "ov", "aliases": ["ov_SC06_016"], "header": false, "obj": "build/src/ov_SC06_016/ov_SC06_016_jr_8017C8D0.o", "n_sites": 5, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 5328}, {"kind": "barrier", "cls": "B", "detail": "", "line": 5351}, {"kind": "barrier", "cls": "B", "detail": "", "line": 5365}, {"kind": "barrier", "cls": "B", "detail": "", "line": 5374}, {"kind": "barrier", "cls": "B", "detail": "", "line": 5376}], "refused": [], "compiles": 6, "seconds": 1.0247108936309814, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "barrier", "detail": "", "line": 5328}, {"kind": "barrier", "detail": "", "line": 5351}], "needed": [{"kind": "barrier", "detail": "", "line": 5365, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 5374, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 5376, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_016/ov_SC06_016_jr_8017C8D0.c", "fn": "func_801813B0", "nhash": "5a12c5f2ea7bbb521070ea3301d3d7748c72f290", "kind": "ov", "aliases": ["ov_SC06_016"], "header": false, "obj": "build/src/ov_SC06_016/ov_SC06_016_jr_8017C8D0.o", "n_sites": 12, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 5481}, {"kind": "launder", "cls": "B", "detail": "", "line": 5482}, {"kind": "launder", "cls": "B", "detail": "", "line": 5483}, {"kind": "launder", "cls": "B", "detail": "", "line": 5484}, {"kind": "launder", "cls": "B", "detail": "", "line": 5485}, {"kind": "launder", "cls": "B", "detail": "", "line": 5486}, {"kind": "launder", "cls": "B", "detail": "", "line": 5487}, {"kind": "launder", "cls": "B", "detail": "", "line": 5488}, {"kind": "launder", "cls": "B", "detail": "", "line": 5489}, {"kind": "launder", "cls": "B", "detail": "", "line": 5490}, {"kind": "launder", "cls": "B", "detail": "", "line": 5491}, {"kind": "launder", "cls": "B", "detail": "", "line": 5492}], "refused": [], "compiles": 13, "seconds": 2.296604871749878, "features": {"kind": "ov", "n": 12, "bucket": "10+", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 12, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "launder", "detail": "", "line": 5481, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5482, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5483, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5484, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5485, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5486, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5487, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5488, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5489, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5490, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5491, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5492, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_016/ov_SC06_016_jr_801816DC.c", "fn": "func_80181C78", "nhash": "92c6c87e26f1ca4eeb14927d134a95da885ebbf6", "kind": "ov", "aliases": ["ov_SC06_016"], "header": false, "obj": "build/src/ov_SC06_016/ov_SC06_016_jr_801816DC.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 3176}], "refused": [], "compiles": 3, "seconds": 0.31801295280456543, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$16", "line": 3176, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_016/ov_SC06_016_jr_801816DC.c", "fn": "func_801822C4", "nhash": "052a6fadca27f7b073f4b708b3f4b57d1d4b6a2d", "kind": "ov", "aliases": ["ov_SC06_016"], "header": false, "obj": "build/src/ov_SC06_016/ov_SC06_016_jr_801816DC.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 3476}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 3477}], "refused": [], "compiles": 2, "seconds": 0.20837068557739258, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$16", "line": 3476}, {"kind": "pin", "detail": "$17", "line": 3477}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c", "fn": "func_80183F50", "nhash": "094175498fcd905569c83d85a0d529d1cf660acb", "kind": "ov", "aliases": ["ov_SC06_018"], "header": false, "obj": "build/src/ov_SC06_018/ov_SC06_018_jr_8017C24C.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 7559}], "refused": [], "compiles": 2, "seconds": 0.6506977081298828, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$2", "line": 7559}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c", "fn": "func_801811DC", "nhash": "2814f778781e206d51f20c56fbc093933b312dfa", "kind": "ov", "aliases": ["ov_SC06_018"], "header": false, "obj": "build/src/ov_SC06_018/ov_SC06_018_jr_8017C24C.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 5764}], "refused": [], "compiles": 3, "seconds": 0.9837586879730225, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$16", "line": 5764, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c", "fn": "func_80185DD8", "nhash": "52fc915d416a3c7c1fa8e425a623dffcc8cc6bee", "kind": "ov", "aliases": ["ov_SC06_018"], "header": false, "obj": "build/src/ov_SC06_018/ov_SC06_018_jr_8017C24C.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 8952}], "refused": [], "compiles": 2, "seconds": 0.692425012588501, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "memory", "line": 8952, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c", "fn": "func_8017DB20", "nhash": "8b3260ddb5c27a07b59521034c40bb77fa8ee55e", "kind": "ov", "aliases": ["ov_SC06_018"], "header": false, "obj": "build/src/ov_SC06_018/ov_SC06_018_jr_8017C24C.o", "n_sites": 3, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 3258}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3262}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 3218}], "refused": [], "compiles": 5, "seconds": 1.6923813819885254, "features": {"kind": "ov", "n": 3, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "barrier", "detail": "", "line": 3258}, {"kind": "barrier", "detail": "", "line": 3262}], "needed": [{"kind": "pin", "detail": "$16", "line": 3218, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c", "fn": "func_8018A688", "nhash": "58795c9bcd54b7124c66880a5b02ef81a0e011e6", "kind": "ov", "aliases": ["ov_SC06_018"], "header": false, "obj": "build/src/ov_SC06_018/ov_SC06_018_jr_80187AEC.o", "n_sites": 1, "sites": [{"kind": "keepalive", "cls": "B", "detail": "", "line": 5008}], "refused": [], "compiles": 2, "seconds": 0.50480055809021, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": true}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "keepalive", "detail": "", "line": 5008, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c", "fn": "func_8018A974", "nhash": "2e989ba4a21bb21a09f299e7766b866ce50b82bc", "kind": "ov", "aliases": ["ov_SC06_018"], "header": false, "obj": "build/src/ov_SC06_018/ov_SC06_018_jr_80187AEC.o", "n_sites": 5, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 5248}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 5242}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 5243}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 5244}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 5245}], "refused": [], "compiles": 7, "seconds": 1.9154741764068604, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$8", "line": 5242}, {"kind": "pin", "detail": "$7", "line": 5243}], "needed": [{"kind": "launder", "detail": "", "line": 5248, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$16", "line": 5244, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 5245, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_022/ov_SC06_022_jr_80182D08.c", "fn": "func_80183A20", "nhash": "1cf48c58109278e88414d2fe44fd16fe60226433", "kind": "ov", "aliases": ["ov_SC06_022"], "header": false, "obj": "build/src/ov_SC06_022/ov_SC06_022_jr_80182D08.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$20", "line": 3382}, {"kind": "pin", "cls": "A", "detail": "$21", "line": 3388}], "refused": [], "compiles": 2, "seconds": 0.15704798698425293, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$20", "line": 3382}, {"kind": "pin", "detail": "$21", "line": 3388}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC06_024/ov_SC06_024_jr_8017BEBC.c", "fn": "func_80180724", "nhash": "740d1cf36bc6edba192328c557764c59384de5a7", "kind": "ov", "aliases": ["ov_SC06_024"], "header": false, "obj": "build/src/ov_SC06_024/ov_SC06_024_jr_8017BEBC.o", "n_sites": 6, "sites": [{"kind": "pin", "cls": "A", "detail": "$17", "line": 5081}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 5082}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 5083}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 5084}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 5085}, {"kind": "pin", "cls": "A", "detail": "$0", "line": 5086}], "refused": [], "compiles": 2, "seconds": 0.39537882804870605, "features": {"kind": "ov", "n": 6, "bucket": "5-9", "mix": "pins-only", "zero": true, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 6, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$17", "line": 5081}, {"kind": "pin", "detail": "$18", "line": 5082}, {"kind": "pin", "detail": "$16", "line": 5083}, {"kind": "pin", "detail": "$2", "line": 5084}, {"kind": "pin", "detail": "$3", "line": 5085}, {"kind": "pin", "detail": "$0", "line": 5086}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC06_024/ov_SC06_024_jr_8017BEBC.c", "fn": "func_8017FA1C", "nhash": "fdd7b254e4629e03bf8c3cebada36300ae4f96af", "kind": "ov", "aliases": ["ov_SC06_024"], "header": false, "obj": "build/src/ov_SC06_024/ov_SC06_024_jr_8017BEBC.o", "n_sites": 4, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 4574}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 4567}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 4587}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 4588}], "refused": [], "compiles": 6, "seconds": 1.199608325958252, "features": {"kind": "ov", "n": 4, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 4, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$2", "line": 4587}], "needed": [{"kind": "barrier", "detail": "", "line": 4574, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$16", "line": 4567, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 4588, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_024/ov_SC06_024_jr_80186F00.c", "fn": "func_8018D674", "nhash": "c99c649701624a044920722762a5f401f3e4b405", "kind": "ov", "aliases": ["ov_SC06_024"], "header": false, "obj": "build/src/ov_SC06_024/ov_SC06_024_jr_80186F00.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$5", "line": 7118}], "refused": [], "compiles": 3, "seconds": 0.9208595752716064, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$5", "line": 7118, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_029/ov_SC06_029_jr_8017C954.c", "fn": "func_80183B1C", "nhash": "b4a2e7d11905cc4547b02042907294c797842f83", "kind": "ov", "aliases": ["ov_SC06_029"], "header": false, "obj": "build/src/ov_SC06_029/ov_SC06_029_jr_8017C954.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$6", "line": 7356}], "refused": [], "compiles": 2, "seconds": 0.6033685207366943, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$6", "line": 7356}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/ov_SC06_029/ov_SC06_029_jr_801898CC.c", "fn": "func_8018A180", "nhash": "537b1c877fc1ba3a41fd118e8a1103b8b1a73599", "kind": "ov", "aliases": ["ov_SC06_029"], "header": false, "obj": "build/src/ov_SC06_029/ov_SC06_029_jr_801898CC.o", "n_sites": 6, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 3769}, {"kind": "launder", "cls": "B", "detail": "LAUNDER_8018A180", "line": 3770}, {"kind": "launder", "cls": "B", "detail": "LAUNDER_8018A180", "line": 3772}, {"kind": "launder", "cls": "B", "detail": "LAUNDER_8018A180", "line": 3773}, {"kind": "launder", "cls": "B", "detail": "LAUNDER_8018A180", "line": 3774}, {"kind": "launder", "cls": "B", "detail": "LAUNDER_8018A180", "line": 3775}], "refused": [], "compiles": 7, "seconds": 0.7716255187988281, "features": {"kind": "ov", "n": 6, "bucket": "5-9", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 6, "rung_A": "COMPILE-ERROR", "rung_A_err": "src/ov_SC06_029/ov_SC06_029_jr_801898CC.c:3770: parse error before `}'\nsrc/ov_SC06_029/ov_SC06_029_jr_801898CC.c:3781: parse error before `;'\nsrc/ov_SC06_029/ov_SC06_029_jr_801898CC.c:3790: parse erro", "rung_A_keep_register": "COMPILE-ERROR", "removed": [], "needed": [{"kind": "launder", "detail": "", "line": 3769, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "LAUNDER_8018A180", "line": 3770, "verdict": "COMPILE-ERROR", "err": "src/ov_SC06_029/ov_SC06_029_jr_801898CC.c:3771: parse error before `}'\nsrc/ov_SC06_029/ov_SC06_029_jr_801898CC.c:3772: p"}, {"kind": "launder", "detail": "LAUNDER_8018A180", "line": 3772, "verdict": "COMPILE-ERROR", "err": "src/ov_SC06_029/ov_SC06_029_jr_801898CC.c:3773: parse error before `;'\nsrc/ov_SC06_029/ov_SC06_029_jr_801898CC.c: At top"}, {"kind": "launder", "detail": "LAUNDER_8018A180", "line": 3773, "verdict": "COMPILE-ERROR", "err": "src/ov_SC06_029/ov_SC06_029_jr_801898CC.c:3774: parse error before `;'\nsrc/ov_SC06_029/ov_SC06_029_jr_801898CC.c: At top"}, {"kind": "launder", "detail": "LAUNDER_8018A180", "line": 3774, "verdict": "COMPILE-ERROR", "err": "src/ov_SC06_029/ov_SC06_029_jr_801898CC.c:3775: parse error before `;'\nsrc/ov_SC06_029/ov_SC06_029_jr_801898CC.c: At top"}, {"kind": "launder", "detail": "LAUNDER_8018A180", "line": 3775, "verdict": "COMPILE-ERROR", "err": "src/ov_SC06_029/ov_SC06_029_jr_801898CC.c:3777: parse error before `;'\nsrc/ov_SC06_029/ov_SC06_029_jr_801898CC.c: At top"}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_030/ov_SC06_030_jr_8017F65C.c", "fn": "func_80180FF4", "nhash": "d784f17a6a99e13c9faa53cfd0064db8f4adaf1b", "kind": "ov", "aliases": ["ov_SC06_030"], "header": false, "obj": "build/src/ov_SC06_030/ov_SC06_030_jr_8017F65C.o", "n_sites": 10, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 3894}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3895}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3896}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3897}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3898}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3899}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3900}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3901}, {"kind": "barrier", "cls": "B", "detail": "", "line": 3902}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 3882}], "refused": [], "compiles": 12, "seconds": 1.3735074996948242, "features": {"kind": "ov", "n": 10, "bucket": "10+", "mix": "mixed", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 10, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 3894, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3895, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3896, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3897, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3898, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3899, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3900, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3901, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 3902, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$19", "line": 3882, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_032/ov_SC06_032_jr_80182890.c", "fn": "func_8018BA4C", "nhash": "5ce572e1f79de9cbec85ad017eae4a3bdbec0844", "kind": "ov", "aliases": ["ov_SC06_032"], "header": false, "obj": "build/src/ov_SC06_032/ov_SC06_032_jr_80182890.o", "n_sites": 5, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 9108}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 9049}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 9050}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 9066}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 9067}], "refused": [], "compiles": 7, "seconds": 2.9215965270996094, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$3", "line": 9049}, {"kind": "pin", "detail": "$2", "line": 9050}, {"kind": "pin", "detail": "$4", "line": 9067}], "needed": [{"kind": "barrier", "detail": "memory", "line": 9108, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 9066, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_032/ov_SC06_032_jr_801902EC.c", "fn": "func_801902EC", "nhash": "d6b9c3987ab6439d1b8b04f4c7379f576c72725f", "kind": "ov", "aliases": ["ov_SC06_032"], "header": false, "obj": "build/src/ov_SC06_032/ov_SC06_032_jr_801902EC.o", "n_sites": 13, "sites": [{"kind": "launder", "cls": "B", "detail": "out-only", "line": 3173}, {"kind": "launder", "cls": "B", "detail": "out-only", "line": 3192}, {"kind": "launder", "cls": "B", "detail": "out-only", "line": 3263}, {"kind": "launder", "cls": "B", "detail": "out-only", "line": 3281}, {"kind": "launder", "cls": "B", "detail": "out-only", "line": 3325}, {"kind": "launder", "cls": "B", "detail": "out-only", "line": 3364}, {"kind": "launder", "cls": "B", "detail": "out-only", "line": 3382}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 3171}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 3190}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 3261}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 3279}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 3362}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 3380}], "refused": [], "compiles": 14, "seconds": 1.2548575401306152, "features": {"kind": "ov", "n": 13, "bucket": "10+", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": true}, "n_usable": 13, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "keepalive", "detail": "", "line": 3171}, {"kind": "keepalive", "detail": "", "line": 3190}, {"kind": "keepalive", "detail": "", "line": 3261}, {"kind": "keepalive", "detail": "", "line": 3279}], "needed": [{"kind": "launder", "detail": "out-only", "line": 3173, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "out-only", "line": 3192, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "out-only", "line": 3263, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "out-only", "line": 3281, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "out-only", "line": 3325, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "out-only", "line": 3364, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "out-only", "line": 3382, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 3362, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 3380, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_032/ov_SC06_032_jr_801919A0.c", "fn": "func_801919A0", "nhash": "abcdb2d721ef09d0e8a8b48281c3f426723d1743", "kind": "ov", "aliases": ["ov_SC06_032"], "header": false, "obj": "build/src/ov_SC06_032/ov_SC06_032_jr_801919A0.o", "n_sites": 17, "sites": [{"kind": "launder", "cls": "B", "detail": "XFER_1919A0", "line": 3078}, {"kind": "launder", "cls": "B", "detail": "XFER_1919A0", "line": 3080}, {"kind": "launder", "cls": "B", "detail": "XFERLAST_1919A0", "line": 3082}, {"kind": "launder", "cls": "B", "detail": "XFER_1919A0", "line": 3110}, {"kind": "launder", "cls": "B", "detail": "XFER_1919A0", "line": 3111}, {"kind": "launder", "cls": "B", "detail": "XFERLAST_1919A0", "line": 3112}, {"kind": "launder", "cls": "B", "detail": "", "line": 3141}, {"kind": "launder", "cls": "B", "detail": "", "line": 3143}, {"kind": "launder", "cls": "B", "detail": "", "line": 3150}, {"kind": "launder", "cls": "B", "detail": "XFER_1919A0", "line": 3214}, {"kind": "launder", "cls": "B", "detail": "XFER_1919A0", "line": 3215}, {"kind": "launder", "cls": "B", "detail": "XFERLAST_1919A0", "line": 3216}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 3000}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 3001}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 3002}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 3003}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 3004}], "refused": [{"kind": "launder", "line": 3214, "why": "no statement end for the macro use"}, {"kind": "launder", "line": 3215, "why": "no statement end for the macro use"}, {"kind": "launder", "line": 3216, "why": "no statement end for the macro use"}], "compiles": 14, "seconds": 1.262014389038086, "features": {"kind": "ov", "n": 17, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 14, "rung_A": "REFUSED", "rung_A_err": "", "rung_A_keep_register": "REFUSED", "removed": [{"kind": "launder", "detail": "", "line": 3150}, {"kind": "pin", "detail": "$17", "line": 3000}, {"kind": "pin", "detail": "$16", "line": 3001}, {"kind": "pin", "detail": "$4", "line": 3004}], "needed": [{"kind": "launder", "detail": "XFER_1919A0", "line": 3078, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "XFER_1919A0", "line": 3080, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "XFERLAST_1919A0", "line": 3082, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "XFER_1919A0", "line": 3110, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "XFER_1919A0", "line": 3111, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "XFERLAST_1919A0", "line": 3112, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3141, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3143, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 3002, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 3003, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_033/ov_SC06_033_jr_8018C2D8.c", "fn": "func_8018C2D8", "nhash": "031a7ae41ce0f6536e46753a45f1bc918cf8d155", "kind": "ov", "aliases": ["ov_SC06_033"], "header": false, "obj": "build/src/ov_SC06_033/ov_SC06_033_jr_8018C2D8.o", "n_sites": 12, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 3168}, {"kind": "launder", "cls": "B", "detail": "", "line": 3197}, {"kind": "launder", "cls": "B", "detail": "", "line": 3226}, {"kind": "launder", "cls": "B", "detail": "", "line": 3304}, {"kind": "launder", "cls": "B", "detail": "", "line": 3332}, {"kind": "launder", "cls": "B", "detail": "", "line": 3360}, {"kind": "launder", "cls": "B", "detail": "", "line": 3415}, {"kind": "launder", "cls": "B", "detail": "", "line": 3417}, {"kind": "launder", "cls": "B", "detail": "", "line": 3426}, {"kind": "launder", "cls": "B", "detail": "", "line": 3471}, {"kind": "launder", "cls": "B", "detail": "", "line": 3499}, {"kind": "launder", "cls": "B", "detail": "", "line": 3529}], "refused": [], "compiles": 13, "seconds": 1.2292234897613525, "features": {"kind": "ov", "n": 12, "bucket": "10+", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 12, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "launder", "detail": "", "line": 3226}, {"kind": "launder", "detail": "", "line": 3360}, {"kind": "launder", "detail": "", "line": 3426}, {"kind": "launder", "detail": "", "line": 3529}], "needed": [{"kind": "launder", "detail": "", "line": 3168, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3197, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3304, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3332, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3415, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3417, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3471, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3499, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC06_033/ov_SC06_033_jr_8018D98C.c", "fn": "func_8018D98C", "nhash": "dfae6482d2158ab0d37007ac3e3e616595261273", "kind": "ov", "aliases": ["ov_SC06_033"], "header": false, "obj": "build/src/ov_SC06_033/ov_SC06_033_jr_8018D98C.o", "n_sites": 2, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 3143}, {"kind": "launder", "cls": "B", "detail": "", "line": 3145}], "refused": [], "compiles": 3, "seconds": 0.4556272029876709, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "launder", "detail": "", "line": 3143, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 3145, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC07_000/ov_SC07_000_jr_8017F8B8.c", "fn": "func_80181BA8", "nhash": "48f4238cbdaee3b34f0c69e9a5d1fc02cb4b47b8", "kind": "ov", "aliases": ["ov_SC07_000"], "header": false, "obj": "build/src/ov_SC07_000/ov_SC07_000_jr_8017F8B8.o", "n_sites": 5, "sites": [{"kind": "launder", "cls": "B", "detail": "out-only", "line": 4423}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 4361}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 4364}, {"kind": "cast", "cls": "C", "detail": "volatile u16 *", "line": 4415}, {"kind": "decl-body", "cls": "C", "detail": "", "line": 4362}], "refused": [], "compiles": 7, "seconds": 0.8507366180419922, "features": {"kind": "ov", "n": 5, "bucket": "5-9", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "cast", "detail": "volatile u16 *", "line": 4415}], "needed": [{"kind": "launder", "detail": "out-only", "line": 4423, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 4361, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 4364, "verdict": "DIFFERS", "err": ""}, {"kind": "decl-body", "detail": "", "line": 4362, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC07_002/ov_SC07_002_jr_8017C8D0.c", "fn": "func_80185FB0", "nhash": "7cc63e7f7698b0ec1c43e8d2900b2799f0e8f074", "kind": "ov", "aliases": ["ov_SC07_002"], "header": false, "obj": "build/src/ov_SC07_002/ov_SC07_002_jr_8017C8D0.o", "n_sites": 2, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 8910}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 8908}], "refused": [], "compiles": 4, "seconds": 1.1874868869781494, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "launder", "detail": "", "line": 8910, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 8908, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC07_006/ov_SC07_006_jr_80171B4C.c", "fn": "func_80176734", "nhash": "696e1d5102fd1f8f79d9b4079654f957a8c90327", "kind": "ov", "aliases": ["ov_SC07_006"], "header": false, "obj": "build/src/ov_SC07_006/ov_SC07_006_jr_80171B4C.o", "n_sites": 12, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 4570}, {"kind": "launder", "cls": "B", "detail": "", "line": 4590}, {"kind": "launder", "cls": "B", "detail": "", "line": 4611}, {"kind": "pin", "cls": "A", "detail": "$21", "line": 4422}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 4423}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 4425}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 4439}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 4459}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 4490}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 4540}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 4586}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 4606}], "refused": [], "compiles": 14, "seconds": 3.0439352989196777, "features": {"kind": "ov", "n": 12, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 12, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$21", "line": 4422}], "needed": [{"kind": "launder", "detail": "", "line": 4570, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 4590, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 4611, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$16", "line": 4423, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 4425, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 4439, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 4459, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 4490, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 4540, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 4586, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 4606, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC07_006/ov_SC07_006_jr_8017BEBC.c", "fn": "func_80182F3C", "nhash": "90081c2b5269131a8b015292c0be98e24b16bdd7", "kind": "ov", "aliases": ["ov_SC07_006"], "header": false, "obj": "build/src/ov_SC07_006/ov_SC07_006_jr_8017BEBC.o", "n_sites": 12, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 5013}, {"kind": "launder", "cls": "B", "detail": "", "line": 5014}, {"kind": "launder", "cls": "B", "detail": "", "line": 5015}, {"kind": "launder", "cls": "B", "detail": "", "line": 5016}, {"kind": "launder", "cls": "B", "detail": "", "line": 5017}, {"kind": "launder", "cls": "B", "detail": "", "line": 5018}, {"kind": "launder", "cls": "B", "detail": "", "line": 5020}, {"kind": "launder", "cls": "B", "detail": "", "line": 5021}, {"kind": "launder", "cls": "B", "detail": "", "line": 5022}, {"kind": "launder", "cls": "B", "detail": "", "line": 5023}, {"kind": "launder", "cls": "B", "detail": "", "line": 5024}, {"kind": "launder", "cls": "B", "detail": "", "line": 5025}], "refused": [], "compiles": 13, "seconds": 2.8870952129364014, "features": {"kind": "ov", "n": 12, "bucket": "10+", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 12, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "launder", "detail": "", "line": 5016}, {"kind": "launder", "detail": "", "line": 5017}, {"kind": "launder", "detail": "", "line": 5018}, {"kind": "launder", "detail": "", "line": 5023}, {"kind": "launder", "detail": "", "line": 5024}, {"kind": "launder", "detail": "", "line": 5025}], "needed": [{"kind": "launder", "detail": "", "line": 5013, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5014, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5015, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5020, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5021, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 5022, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC07_007/ov_SC07_007_jr_8013C98C.c", "fn": "func_8013D53C", "nhash": "44f8a6a0a33332a6904eeb549e2c2a727d7b5628", "kind": "ov", "aliases": ["ov_SC07_007"], "header": false, "obj": "build/src/ov_SC07_007/ov_SC07_007_jr_8013C98C.o", "n_sites": 2, "sites": [{"kind": "keepalive", "cls": "B", "detail": "", "line": 1279}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 1285}], "refused": [], "compiles": 3, "seconds": 0.2890026569366455, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": true}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "keepalive", "detail": "", "line": 1279, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 1285, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC07_007/ov_SC07_007_jr_8017BEBC.c", "fn": "func_8018044C", "nhash": "69d090f036c1e10a6403e4250e1e9edcd2b06b51", "kind": "ov", "aliases": ["ov_SC07_007"], "header": false, "obj": "build/src/ov_SC07_007/ov_SC07_007_jr_8017BEBC.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 6133}], "refused": [], "compiles": 3, "seconds": 0.7247409820556641, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$16", "line": 6133, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC07_007/ov_SC07_007_jr_8017BEBC.c", "fn": "func_8018122C", "nhash": "b03681c7791395a349fc57f9073c0db6306d3b8c", "kind": "ov", "aliases": ["ov_SC07_007"], "header": false, "obj": "build/src/ov_SC07_007/ov_SC07_007_jr_8017BEBC.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 6843}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 6844}], "refused": [], "compiles": 4, "seconds": 0.8830060958862305, "features": {"kind": "ov", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$16", "line": 6843}], "needed": [{"kind": "pin", "detail": "$17", "line": 6844, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC07_010/ov_SC07_010_jr_80140608.c", "fn": "func_80140958", "nhash": "b81738a89a04a3b85225f4d46583f20be888e69a", "kind": "ov", "aliases": ["ov_SC07_010"], "header": false, "obj": "build/src/ov_SC07_010/ov_SC07_010_jr_80140608.o", "n_sites": 11, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 383}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 400}, {"kind": "pin", "cls": "A", "detail": "$20", "line": 296}, {"kind": "pin", "cls": "A", "detail": "$21", "line": 297}, {"kind": "pin", "cls": "A", "detail": "$23", "line": 298}, {"kind": "pin", "cls": "A", "detail": "$22", "line": 299}, {"kind": "pin", "cls": "A", "detail": "$10", "line": 300}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 301}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 302}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 303}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 394}], "refused": [], "compiles": 13, "seconds": 1.873450756072998, "features": {"kind": "ov", "n": 11, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": true}, "n_usable": 11, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$20", "line": 296}, {"kind": "pin", "detail": "$21", "line": 297}, {"kind": "pin", "detail": "$23", "line": 298}, {"kind": "pin", "detail": "$22", "line": 299}, {"kind": "pin", "detail": "$10", "line": 300}, {"kind": "pin", "detail": "$8", "line": 301}, {"kind": "pin", "detail": "$9", "line": 302}], "needed": [{"kind": "barrier", "detail": "memory", "line": 383, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 400, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 303, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 394, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/ov_SC07_010/ov_SC07_010_jr_8017AE2C.c", "fn": "func_80180480", "nhash": "96e74682a8906f0993cf444c239cf30cab727bd3", "kind": "ov", "aliases": ["ov_SC07_010"], "header": false, "obj": "build/src/ov_SC07_010/ov_SC07_010_jr_8017AE2C.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$3", "line": 5987}], "refused": [], "compiles": 3, "seconds": 0.7244131565093994, "features": {"kind": "ov", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$3", "line": 5987, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/resident/resident.c", "fn": "func_800CF104", "nhash": "b51b068a4b7f109bb4c2efe2b0860192bdfa7eb6", "kind": "resident", "aliases": ["resident"], "header": false, "obj": "build/src/resident/resident.o", "n_sites": 1, "sites": [{"kind": "register", "cls": "D", "detail": "", "line": 187}], "refused": [], "compiles": 1, "seconds": 0.04877924919128418, "features": {"kind": "resident", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": true, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "register", "detail": "", "line": 187}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/resident/resident.c", "fn": "func_800CFE60", "nhash": "37d0cf28b5170bccba987f3634ece828bb81a3f9", "kind": "resident", "aliases": ["resident"], "header": false, "obj": "build/src/resident/resident.o", "n_sites": 3, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 1008}, {"kind": "pin", "cls": "A", "detail": "$20", "line": 961}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 962}], "refused": [], "compiles": 5, "seconds": 0.27750134468078613, "features": {"kind": "resident", "n": 3, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$20", "line": 961}], "needed": [{"kind": "launder", "detail": "", "line": 1008, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$19", "line": 962, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/resident/resident.c", "fn": "func_800CEF5C", "nhash": "21dfa0ac11169021d83e524ed280fd8464d59aeb", "kind": "resident", "aliases": ["resident"], "header": false, "obj": "build/src/resident/resident.o", "n_sites": 1, "sites": [{"kind": "decl-body", "cls": "C", "detail": "", "line": 91}], "refused": [], "compiles": 1, "seconds": 0.05181097984313965, "features": {"kind": "resident", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "decl-body", "detail": "", "line": 91}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/resident/resident.c", "fn": "func_800CF238", "nhash": "01f71df5b16fc7eff6a5200772cb7080c23a7d47", "kind": "resident", "aliases": ["resident"], "header": false, "obj": "build/src/resident/resident.o", "n_sites": 1, "sites": [{"kind": "register", "cls": "D", "detail": "", "line": 244}], "refused": [], "compiles": 1, "seconds": 0.04783225059509277, "features": {"kind": "resident", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": true, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "register", "detail": "", "line": 244}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/resident/resident.c", "fn": "func_800CF3B8", "nhash": "5949e640c09df050eeac5a8fe20bbd20f86f6869", "kind": "resident", "aliases": ["resident"], "header": false, "obj": "build/src/resident/resident.o", "n_sites": 1, "sites": [{"kind": "register", "cls": "D", "detail": "", "line": 323}], "refused": [], "compiles": 1, "seconds": 0.06031489372253418, "features": {"kind": "resident", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": true, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "register", "detail": "", "line": 323}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/resident/resident_jr_800D00E4.c", "fn": "func_800D0488", "nhash": "72cfaa9d6a4d4d59eaab3b41165aae54fd3ed58e", "kind": "resident", "aliases": ["resident"], "header": false, "obj": "build/src/resident/resident_jr_800D00E4.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 381}], "refused": [], "compiles": 2, "seconds": 0.11919450759887695, "features": {"kind": "resident", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 381, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/resident/resident_jr_800D00E4.c", "fn": "func_800D0E30", "nhash": "9010c74f4b2329ac07752cb5c6de199d02ecc4a5", "kind": "resident", "aliases": ["resident"], "header": false, "obj": "build/src/resident/resident_jr_800D00E4.o", "n_sites": 5, "sites": [{"kind": "pin", "cls": "A", "detail": "$0", "line": 901}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 905}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 906}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 907}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 908}], "refused": [], "compiles": 7, "seconds": 0.4160881042480469, "features": {"kind": "resident", "n": 5, "bucket": "5-9", "mix": "pins-only", "zero": true, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$0", "line": 901}, {"kind": "pin", "detail": "$3", "line": 908}], "needed": [{"kind": "pin", "detail": "$5", "line": 905, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 906, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 907, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/resident/resident_jr_800D00E4.c", "fn": "func_800D0214", "nhash": "c5d9a7abeb7737d4c6e3ec33f23e2025ca77ae37", "kind": "resident", "aliases": ["resident"], "header": false, "obj": "build/src/resident/resident_jr_800D00E4.o", "n_sites": 2, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 203}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 196}], "refused": [], "compiles": 4, "seconds": 0.20752191543579102, "features": {"kind": "resident", "n": 2, "bucket": "2-4", "mix": "mixed", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$3", "line": 196}], "needed": [{"kind": "barrier", "detail": "memory", "line": 203, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/resident/resident_jr_800D00E4.c", "fn": "func_800D02D0", "nhash": "a08c09a2aec3329293dae08ab26217512182af07", "kind": "resident", "aliases": ["resident"], "header": false, "obj": "build/src/resident/resident_jr_800D00E4.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 298}], "refused": [], "compiles": 3, "seconds": 0.1504957675933838, "features": {"kind": "resident", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$2", "line": 298, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/resident/resident_jr_800D00E4.c", "fn": "func_800D0D7C", "nhash": "373201d9e598d3e8d678da5f4a3702b5d2bff5c8", "kind": "resident", "aliases": ["resident"], "header": false, "obj": "build/src/resident/resident_jr_800D00E4.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$0", "line": 873}], "refused": [], "compiles": 3, "seconds": 0.16212034225463867, "features": {"kind": "resident", "n": 1, "bucket": "1", "mix": "pins-only", "zero": true, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$0", "line": 873, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/resident/resident_jr_800D128C.c", "fn": "func_800D1984", "nhash": "d421b3f8e8f1321bdb743a493a86a41c8671742d", "kind": "resident", "aliases": ["resident"], "header": false, "obj": "build/src/resident/resident_jr_800D128C.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$0", "line": 692}], "refused": [], "compiles": 3, "seconds": 0.2103128433227539, "features": {"kind": "resident", "n": 1, "bucket": "1", "mix": "pins-only", "zero": true, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$0", "line": 692, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/resident/resident_jr_800D128C.c", "fn": "func_800D128C", "nhash": "3966a1dc23b49483ad5442aa7353ccbc03b8d2e5", "kind": "resident", "aliases": ["resident"], "header": false, "obj": "build/src/resident/resident_jr_800D128C.o", "n_sites": 3, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 262}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 316}, {"kind": "launder", "cls": "B", "detail": "", "line": 402}], "refused": [], "compiles": 4, "seconds": 0.28817033767700195, "features": {"kind": "resident", "n": 3, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": true, "keepalive": false}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 262, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "memory", "line": 316, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 402, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/resident/resident_jr_800D128C.c", "fn": "func_800D1658", "nhash": "b742564c378407aaafdd0776a54ec03e12bc0a44", "kind": "resident", "aliases": ["resident"], "header": false, "obj": "build/src/resident/resident_jr_800D128C.o", "n_sites": 3, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 454}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 455}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 457}], "refused": [], "compiles": 5, "seconds": 0.3271939754486084, "features": {"kind": "resident", "n": 3, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$2", "line": 454, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 455, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$16", "line": 457, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/resident/resident_jr_800D128C.c", "fn": "func_800D2D10", "nhash": "be21ad680b32cb81f56575eca0b81a877f89a818", "kind": "resident", "aliases": ["resident"], "header": false, "obj": "build/src/resident/resident_jr_800D128C.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$8", "line": 1912}], "refused": [], "compiles": 3, "seconds": 0.21270394325256348, "features": {"kind": "resident", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$8", "line": 1912, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/resident/resident_jr_800D128C.c", "fn": "func_800D2650", "nhash": "238372c3b0fc2fbae713bf88f59c8f74aff54757", "kind": "resident", "aliases": ["resident"], "header": false, "obj": "build/src/resident/resident_jr_800D128C.o", "n_sites": 5, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 1512}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 1513}, {"kind": "pin", "cls": "A", "detail": "$14", "line": 1514}, {"kind": "pin", "cls": "A", "detail": "$13", "line": 1515}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 1516}], "refused": [], "compiles": 7, "seconds": 0.42412233352661133, "features": {"kind": "resident", "n": 5, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$13", "line": 1515}], "needed": [{"kind": "pin", "detail": "$2", "line": 1512, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$8", "line": 1513, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$14", "line": 1514, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 1516, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/resident/resident_jr_800D128C.c", "fn": "func_800D1B80", "nhash": "e1d8dcbcab1fd4357d50a39e4e1134b79f9d9487", "kind": "resident", "aliases": ["resident"], "header": false, "obj": "build/src/resident/resident_jr_800D128C.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$0", "line": 850}], "refused": [], "compiles": 3, "seconds": 0.18320775032043457, "features": {"kind": "resident", "n": 1, "bucket": "1", "mix": "pins-only", "zero": true, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$0", "line": 850, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_8012A860.h", "fn": "func_8012A860", "nhash": "c8266f756b6570946a909ead97fdb3e208cbe101", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$4", "line": 7}], "refused": [], "compiles": 3, "seconds": 0.6647405624389648, "features": {"kind": "shared", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$4", "line": 7, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_8012C2D0.h", "fn": "func_8012C2D0", "nhash": "1252daf5e660515a4838520a70513c94c487e538", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012.o", "n_sites": 2, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 10}, {"kind": "launder", "cls": "B", "detail": "", "line": 17}], "refused": [], "compiles": 3, "seconds": 0.6689071655273438, "features": {"kind": "shared", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "launder", "detail": "", "line": 10, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 17, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_8012DBD0.h", "fn": "func_8012DBD0", "nhash": "7c58f2a03b069b51bbc6d17274dd0e616794b3fa", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012.o", "n_sites": 12, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 37}, {"kind": "launder", "cls": "B", "detail": "", "line": 46}, {"kind": "launder", "cls": "B", "detail": "", "line": 55}, {"kind": "launder", "cls": "B", "detail": "", "line": 64}, {"kind": "launder", "cls": "B", "detail": "", "line": 73}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 7}, {"kind": "pin", "cls": "A", "detail": "$20", "line": 8}, {"kind": "pin", "cls": "A", "detail": "$21", "line": 9}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 10}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 11}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 12}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 14}], "refused": [], "compiles": 14, "seconds": 3.033817768096924, "features": {"kind": "shared", "n": 12, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 12, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "launder", "detail": "", "line": 46}, {"kind": "launder", "detail": "", "line": 55}, {"kind": "launder", "detail": "", "line": 64}, {"kind": "launder", "detail": "", "line": 73}, {"kind": "pin", "detail": "$18", "line": 7}, {"kind": "pin", "detail": "$20", "line": 8}, {"kind": "pin", "detail": "$16", "line": 11}, {"kind": "pin", "detail": "$17", "line": 12}], "needed": [{"kind": "launder", "detail": "", "line": 37, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$21", "line": 9, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$19", "line": 10, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 14, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_80135004__0f8f8d0b.h", "fn": "func_80135004", "nhash": "1d7d644502ce65cef233f8a05dbc010021d0aea7", "kind": "shared", "aliases": ["ov_SC03_126", "ov_SC04_021", "ov_SC05_019"], "header": true, "obj": "build/src/ov_SC03_126/ov_SC03_126_jr_8012ACE0.o", "n_sites": 8, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 29}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 21}, {"kind": "pin", "cls": "A", "detail": "$9", "line": 12}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 13}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 14}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 42}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 43}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 44}], "refused": [], "compiles": 10, "seconds": 2.5418403148651123, "features": {"kind": "shared", "n": 8, "bucket": "5-9", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": true}, "n_usable": 8, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "barrier", "detail": "memory", "line": 29}, {"kind": "pin", "detail": "$4", "line": 42}, {"kind": "pin", "detail": "$5", "line": 43}, {"kind": "pin", "detail": "$6", "line": 44}], "needed": [{"kind": "keepalive", "detail": "", "line": 21, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$9", "line": 12, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$6", "line": 13, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$8", "line": 14, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_80135168__bad0a585.h", "fn": "func_80135168", "nhash": "58cab92c219487eb4e9329f4e9b78c4162fb27ba", "kind": "shared", "aliases": ["ov_SC03_126", "ov_SC04_021", "ov_SC05_019"], "header": true, "obj": "build/src/ov_SC03_126/ov_SC03_126_jr_8012ACE0.o", "n_sites": 5, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 26}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 19}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 11}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 12}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 13}], "refused": [], "compiles": 7, "seconds": 1.8072052001953125, "features": {"kind": "shared", "n": 5, "bucket": "5-9", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": true}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "memory", "line": 26, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 19, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$8", "line": 11, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$6", "line": 12, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$7", "line": 13, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_80135A4C__e0129286.h", "fn": "func_80135A4C", "nhash": "ff3e628aad01c8a2311fff52241e7b6034e877b0", "kind": "shared", "aliases": ["ov_SC03_126", "ov_SC04_021", "ov_SC05_019"], "header": true, "obj": "build/src/ov_SC03_126/ov_SC03_126_jr_80135A4C.o", "n_sites": 3, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 67}, {"kind": "instruction", "cls": "B", "detail": "addu", "line": 81}, {"kind": "pin", "cls": "A", "detail": "$23", "line": 20}], "refused": [], "compiles": 5, "seconds": 0.18547606468200684, "features": {"kind": "shared", "n": 3, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": true, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 67, "verdict": "DIFFERS", "err": ""}, {"kind": "instruction", "detail": "addu", "line": 81, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$23", "line": 20, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_80135EB0__c9438c12.h", "fn": "func_80135EB0", "nhash": "5f8e13a68bc001998897ccdddc52a0ac93204168", "kind": "shared", "aliases": ["ov_SC03_126", "ov_SC04_021", "ov_SC05_019"], "header": true, "obj": "build/src/ov_SC03_126/ov_SC03_126_jr_80135D20.o", "n_sites": 6, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 59}, {"kind": "barrier", "cls": "B", "detail": "", "line": 65}, {"kind": "barrier", "cls": "B", "detail": "", "line": 112}, {"kind": "barrier", "cls": "B", "detail": "", "line": 116}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 9}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 22}], "refused": [], "compiles": 8, "seconds": 0.6288597583770752, "features": {"kind": "shared", "n": 6, "bucket": "5-9", "mix": "mixed", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 6, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "", "line": 59, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 65, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 112, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 116, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$19", "line": 9, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 22, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_80136334__6e7f4730.h", "fn": "func_80136334", "nhash": "b873450ba58be6437d0aaea5d048c174a437a58f", "kind": "shared", "aliases": ["ov_SC04_008", "ov_SC05_009"], "header": true, "obj": "build/src/ov_SC04_008/ov_SC04_008_jr_80135D20.o", "n_sites": 8, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 54}, {"kind": "launder", "cls": "B", "detail": "", "line": 19}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 60}, {"kind": "pin", "cls": "A", "detail": "$11", "line": 9}, {"kind": "pin", "cls": "A", "detail": "$12", "line": 10}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 11}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 12}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 33}], "refused": [], "compiles": 10, "seconds": 0.7918801307678223, "features": {"kind": "shared", "n": 8, "bucket": "5-9", "mix": "mixed", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": true, "keepalive": true}, "n_usable": 8, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$11", "line": 9}, {"kind": "pin", "detail": "$5", "line": 11}, {"kind": "pin", "detail": "$7", "line": 12}, {"kind": "pin", "detail": "$6", "line": 33}], "needed": [{"kind": "barrier", "detail": "", "line": 54, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 19, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 60, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$12", "line": 10, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_8013B274__28562738.h", "fn": "func_8013B274", "nhash": "b41a050b99e7c99fefe2ae1a701150b038db92bb", "kind": "shared", "aliases": ["ov_SC03_126", "ov_SC04_021", "ov_SC05_019"], "header": true, "obj": "build/src/ov_SC03_126/ov_SC03_126_jr_801380E0.o", "n_sites": 12, "sites": [{"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 82}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 83}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 84}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 84}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 85}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 86}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 87}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 87}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 88}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 88}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 89}, {"kind": "cast", "cls": "C", "detail": "volatile s32 *", "line": 89}], "refused": [], "compiles": 13, "seconds": 1.2828967571258545, "features": {"kind": "shared", "n": 12, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": true, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 12, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "cast", "detail": "volatile s32 *", "line": 82}, {"kind": "cast", "detail": "volatile s32 *", "line": 83}, {"kind": "cast", "detail": "volatile s32 *", "line": 84}, {"kind": "cast", "detail": "volatile s32 *", "line": 87}], "needed": [{"kind": "cast", "detail": "volatile s32 *", "line": 84, "verdict": "DIFFERS", "err": ""}, {"kind": "cast", "detail": "volatile s32 *", "line": 85, "verdict": "DIFFERS", "err": ""}, {"kind": "cast", "detail": "volatile s32 *", "line": 86, "verdict": "DIFFERS", "err": ""}, {"kind": "cast", "detail": "volatile s32 *", "line": 87, "verdict": "DIFFERS", "err": ""}, {"kind": "cast", "detail": "volatile s32 *", "line": 88, "verdict": "DIFFERS", "err": ""}, {"kind": "cast", "detail": "volatile s32 *", "line": 88, "verdict": "DIFFERS", "err": ""}, {"kind": "cast", "detail": "volatile s32 *", "line": 89, "verdict": "DIFFERS", "err": ""}, {"kind": "cast", "detail": "volatile s32 *", "line": 89, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_8013D178__421ba659.h", "fn": "func_8013D178", "nhash": "3d1f3afc202fce0b1322612007eca4601f81129d", "kind": "shared", "aliases": ["ov_SC03_126", "ov_SC04_021", "ov_SC05_019"], "header": true, "obj": "build/src/ov_SC03_126/ov_SC03_126_jr_8013C98C.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$5", "line": 24}], "refused": [], "compiles": 3, "seconds": 0.2367713451385498, "features": {"kind": "shared", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$5", "line": 24, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_80140608__2fb5c201.h", "fn": "func_80140608", "nhash": "f6c06060af99014b32e0888dd7301aed749492de", "kind": "shared", "aliases": ["ov_SC03_126", "ov_SC04_021", "ov_SC05_019"], "header": true, "obj": "build/src/ov_SC03_126/ov_SC03_126_jr_80140608.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 5}, {"kind": "pin", "cls": "A", "detail": "$0", "line": 6}], "refused": [], "compiles": 4, "seconds": 0.4646949768066406, "features": {"kind": "shared", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": true, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$2", "line": 5}], "needed": [{"kind": "pin", "detail": "$0", "line": 6, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_801415C0.h", "fn": "func_801415C0", "nhash": "5913e53f04d2206ee95cd7700448107ac73a1105", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_8013F350.o", "n_sites": 5, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 8}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 9}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 10}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 11}, {"kind": "pin", "cls": "A", "detail": "$20", "line": 12}], "refused": [], "compiles": 7, "seconds": 0.959242582321167, "features": {"kind": "shared", "n": 5, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$18", "line": 10}, {"kind": "pin", "detail": "$19", "line": 11}, {"kind": "pin", "detail": "$20", "line": 12}], "needed": [{"kind": "pin", "detail": "$16", "line": 8, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$17", "line": 9, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_80141B90.h", "fn": "func_80141B90", "nhash": "ce42a772adf8f499885d9e636b55db27c14335aa", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_8013F350.o", "n_sites": 1, "sites": [{"kind": "decl-body", "cls": "C", "detail": "", "line": 12}], "refused": [], "compiles": 2, "seconds": 0.2789120674133301, "features": {"kind": "shared", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "decl-body", "detail": "", "line": 12, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_80145A2C__530ca2ff.h", "fn": "func_80145A2C", "nhash": "59a72b74011a896e84de438cef9da2a04f8dd20b", "kind": "shared", "aliases": ["ov_SC04_008", "ov_SC05_009"], "header": true, "obj": "build/src/ov_SC04_008/ov_SC04_008_after.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 12}], "refused": [], "compiles": 2, "seconds": 0.6643588542938232, "features": {"kind": "shared", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "memory", "line": 12, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_801497A8.h", "fn": "func_801497A8", "nhash": "09fe8782cb1f035f19f6a7b91ea03fee2eaf02f7", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_801458E0.o", "n_sites": 1, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 14}], "refused": [], "compiles": 2, "seconds": 0.693514347076416, "features": {"kind": "shared", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "launder", "detail": "", "line": 14, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_8014DD8C.h", "fn": "func_8014DD8C", "nhash": "849953935672625e1d2f90d107346d9c10104125", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_801458E0.o", "n_sites": 2, "sites": [{"kind": "keepalive", "cls": "B", "detail": "", "line": 17}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 24}], "refused": [], "compiles": 3, "seconds": 1.0118257999420166, "features": {"kind": "shared", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": true}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "keepalive", "detail": "", "line": 17, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 24, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_8014F74C.h", "fn": "func_8014F74C", "nhash": "47d3c049ed1bbcb33dd18a0d456afbb63343565c", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_801458E0.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 50}], "refused": [], "compiles": 2, "seconds": 0.6525373458862305, "features": {"kind": "shared", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "barrier", "detail": "memory", "line": 50, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_801536DC.h", "fn": "func_801536DC", "nhash": "80acf4fe4cb84f7efac083bdfe718f2f5dda23d2", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_801458E0.o", "n_sites": 3, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 13}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 21}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 22}], "refused": [], "compiles": 5, "seconds": 1.6334428787231445, "features": {"kind": "shared", "n": 3, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$2", "line": 21}, {"kind": "pin", "detail": "$3", "line": 22}], "needed": [{"kind": "pin", "detail": "$2", "line": 13, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_80155E30.h", "fn": "func_80155E30", "nhash": "6a0bb4359925afb3b3a54641cba1bc65aa243746", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_801555F4.o", "n_sites": 1, "sites": [{"kind": "decl-body", "cls": "C", "detail": "", "line": 8}], "refused": [], "compiles": 1, "seconds": 0.11206245422363281, "features": {"kind": "shared", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "decl-body", "detail": "", "line": 8}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/shared/ov/func_801571C4.h", "fn": "func_801571C4", "nhash": "4c9b5ad18d6c08a4bfe5cc2ffec2b77b228fd69b", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_801555F4.o", "n_sites": 1, "sites": [{"kind": "launder", "cls": "B", "detail": "out-only", "line": 79}], "refused": [], "compiles": 1, "seconds": 0.1166071891784668, "features": {"kind": "shared", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "launder", "detail": "out-only", "line": 79}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/shared/ov/func_801576A8.h", "fn": "func_801576A8", "nhash": "665e74b4f3fd20d0af429b5d076a6592c18f7450", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_801555F4.o", "n_sites": 1, "sites": [{"kind": "decl-body", "cls": "C", "detail": "", "line": 9}], "refused": [], "compiles": 1, "seconds": 0.11615300178527832, "features": {"kind": "shared", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "decl-body", "detail": "", "line": 9}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/shared/ov/func_8015B6F4.h", "fn": "func_8015B6F4", "nhash": "f025981a9c6ae75e865388c9b934752d6d075588", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_8015A3C8.o", "n_sites": 4, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 20}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 13}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 14}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 15}], "refused": [], "compiles": 6, "seconds": 2.1412079334259033, "features": {"kind": "shared", "n": 4, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 4, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$3", "line": 13}], "needed": [{"kind": "barrier", "detail": "memory", "line": 20, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 14, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 15, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_801612B8.h", "fn": "func_801612B8", "nhash": "246e153204454194716012fa56be07825345629a", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_8015A3C8.o", "n_sites": 3, "sites": [{"kind": "keepalive", "cls": "B", "detail": "", "line": 16}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 8}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 9}], "refused": [], "compiles": 5, "seconds": 1.905153751373291, "features": {"kind": "shared", "n": 3, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": true}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$17", "line": 8}, {"kind": "pin", "detail": "$16", "line": 9}], "needed": [{"kind": "keepalive", "detail": "", "line": 16, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_80161A90.h", "fn": "func_80161A90", "nhash": "bf1f08bc8c1269cc6094eb44dc3c05925c7cf9e6", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_8015A3C8.o", "n_sites": 2, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 16}, {"kind": "launder", "cls": "B", "detail": "", "line": 18}], "refused": [], "compiles": 1, "seconds": 0.3569202423095703, "features": {"kind": "shared", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": true, "keepalive": false}, "n_usable": 2, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "barrier", "detail": "memory", "line": 16}, {"kind": "launder", "detail": "", "line": 18}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/shared/ov/func_80162438__e113e304.h", "fn": "func_80162438", "nhash": "48a405d4ace25cbae109ab50b142d521db716447", "kind": "shared", "aliases": ["ov_SC03_126", "ov_SC04_021", "ov_SC05_019"], "header": true, "obj": "build/src/ov_SC03_126/ov_SC03_126_jr_8015C32C.o", "n_sites": 5, "sites": [{"kind": "pin", "cls": "A", "detail": "$18", "line": 34}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 35}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 41}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 52}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 63}], "refused": [], "compiles": 7, "seconds": 2.2845091819763184, "features": {"kind": "shared", "n": 5, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": true, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$18", "line": 34}, {"kind": "pin", "detail": "$17", "line": 35}], "needed": [{"kind": "pin", "detail": "$2", "line": 41, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 52, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 63, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_80166054.h", "fn": "func_80166054", "nhash": "25ea0c6f3f044ff2dc996083fda6e1cbc90310f1", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_8015A3C8.o", "n_sites": 10, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 67}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 14}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 15}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 16}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 17}, {"kind": "pin", "cls": "A", "detail": "$20", "line": 18}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 22}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 24}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 25}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 58}], "refused": [], "compiles": 12, "seconds": 4.3765246868133545, "features": {"kind": "shared", "n": 10, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 10, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$18", "line": 14}, {"kind": "pin", "detail": "$19", "line": 17}, {"kind": "pin", "detail": "$20", "line": 18}, {"kind": "pin", "detail": "$5", "line": 24}, {"kind": "pin", "detail": "$2", "line": 58}], "needed": [{"kind": "barrier", "detail": "memory", "line": 67, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$16", "line": 15, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$17", "line": 16, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 22, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 25, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_80166F58__3728db8a.h", "fn": "func_80166F58", "nhash": "be562e378efa5b44c56cc676835c18287df72d95", "kind": "shared", "aliases": ["ov_SC03_126", "ov_SC04_021", "ov_SC05_019"], "header": true, "obj": "build/src/ov_SC03_126/ov_SC03_126_jr_8015C32C.o", "n_sites": 4, "sites": [{"kind": "pin", "cls": "A", "detail": "$20", "line": 11}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 12}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 13}, {"kind": "pin", "cls": "A", "detail": "$6", "line": 14}], "refused": [], "compiles": 6, "seconds": 1.9042255878448486, "features": {"kind": "shared", "n": 4, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 4, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$17", "line": 12}, {"kind": "pin", "detail": "$6", "line": 14}], "needed": [{"kind": "pin", "detail": "$20", "line": 11, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 13, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_8016B114.h", "fn": "func_8016B114", "nhash": "147fc4375000f5aab4ec7804ad813dac12bcdefb", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_8016AE5C.o", "n_sites": 6, "sites": [{"kind": "pin", "cls": "A", "detail": "$4", "line": 28}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 29}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 30}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 45}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 46}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 47}], "refused": [], "compiles": 2, "seconds": 0.33783864974975586, "features": {"kind": "shared", "n": 6, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 6, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "pin", "detail": "$4", "line": 28}, {"kind": "pin", "detail": "$2", "line": 29}, {"kind": "pin", "detail": "$3", "line": 30}, {"kind": "pin", "detail": "$2", "line": 45}, {"kind": "pin", "detail": "$3", "line": 46}, {"kind": "pin", "detail": "$4", "line": 47}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/shared/ov/func_8016DF5C__a8a4aea4.h", "fn": "func_8016DF5C", "nhash": "358f3b50ad365ac2960ac231499dfba3df891aed", "kind": "shared", "aliases": ["ov_SC03_126", "ov_SC04_021", "ov_SC05_019"], "header": true, "obj": "build/src/ov_SC03_126/ov_SC03_126_jr_8016AB6C.o", "n_sites": 3, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 74}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 21}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 49}], "refused": [], "compiles": 5, "seconds": 0.8998603820800781, "features": {"kind": "shared", "n": 3, "bucket": "2-4", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 3, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$17", "line": 21}], "needed": [{"kind": "barrier", "detail": "memory", "line": 74, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 49, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_80170EAC.h", "fn": "func_80170EAC", "nhash": "03a32a8c0a6c7aca05f118b3d6eafd16025c528d", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_8016AE5C.o", "n_sites": 1, "sites": [{"kind": "decl-body", "cls": "C", "detail": "", "line": 11}], "refused": [], "compiles": 1, "seconds": 0.3018174171447754, "features": {"kind": "shared", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "decl-body", "detail": "", "line": 11}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/shared/ov/func_801759D8.h", "fn": "func_801759D8", "nhash": "7e3e00618fc3ac2c76d20f793418498cacafafa8", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_80171B4C.o", "n_sites": 2, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 22}, {"kind": "barrier", "cls": "B", "detail": "memory", "line": 25}], "refused": [], "compiles": 3, "seconds": 0.8829700946807861, "features": {"kind": "shared", "n": 2, "bucket": "2-4", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "barrier", "detail": "memory", "line": 25}], "needed": [{"kind": "barrier", "detail": "memory", "line": 22, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_80176734__261d72d2.h", "fn": "func_80176734", "nhash": "3cf803431e509a04f63d786444170224ee93aa65", "kind": "shared", "aliases": ["ov_SC04_008", "ov_SC05_009"], "header": true, "obj": "build/src/ov_SC04_008/ov_SC04_008_jr_801734BC.o", "n_sites": 12, "sites": [{"kind": "launder", "cls": "B", "detail": "", "line": 178}, {"kind": "launder", "cls": "B", "detail": "", "line": 198}, {"kind": "launder", "cls": "B", "detail": "", "line": 219}, {"kind": "pin", "cls": "A", "detail": "$21", "line": 30}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 31}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 33}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 47}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 67}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 98}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 148}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 194}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 214}], "refused": [], "compiles": 14, "seconds": 2.7504818439483643, "features": {"kind": "shared", "n": 12, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": false, "keepalive": false}, "n_usable": 12, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$21", "line": 30}], "needed": [{"kind": "launder", "detail": "", "line": 178, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 198, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 219, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$16", "line": 31, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 33, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 47, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 67, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 98, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 148, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 194, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 214, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_801778A8.h", "fn": "func_801778A8", "nhash": "d285c158b1bbac256889ae685b45ecebd9b65fc5", "kind": "shared", "aliases": ["ov_MAIN_012", "ov_SC01_000", "ov_SC01_001", "ov_SC01_004", "ov_SC01_005", "ov_SC01_006", "ov_SC01_008", "ov_SC01_009", "ov_SC01_074", "ov_SC01_077", "ov_SC01_080", "ov_SC01_084", "ov_SC02_000", "ov_SC02_003", "ov_SC02_004", "ov_SC02_005", "ov_SC02_011", "ov_SC02_015", "ov_SC02_016", "ov_SC02_017", "ov_SC02_021", "ov_SC02_026", "ov_SC02_027", "ov_SC02_028", "ov_SC02_031", "ov_SC02_035", "ov_SC02_037", "ov_SC02_039", "ov_SC02_041", "ov_SC03_001", "ov_SC03_002", "ov_SC03_003", "ov_SC03_006", "ov_SC03_007", "ov_SC03_010", "ov_SC03_011", "ov_SC03_012", "ov_SC03_013", "ov_SC03_014", "ov_SC03_015", "ov_SC03_023", "ov_SC03_024", "ov_SC03_028", "ov_SC03_029", "ov_SC03_030", "ov_SC03_031", "ov_SC03_089", "ov_SC03_090", "ov_SC03_091", "ov_SC03_092", "ov_SC03_093", "ov_SC03_094", "ov_SC03_095", "ov_SC03_096", "ov_SC03_097", "ov_SC03_098", "ov_SC03_099", "ov_SC03_100", "ov_SC03_101", "ov_SC03_102", "ov_SC03_103", "ov_SC03_104", "ov_SC03_105", "ov_SC03_107", "ov_SC03_108", "ov_SC03_109", "ov_SC03_110", "ov_SC03_111", "ov_SC03_112", "ov_SC03_113", "ov_SC03_114", "ov_SC03_115", "ov_SC03_116", "ov_SC03_117", "ov_SC03_118", "ov_SC03_119", "ov_SC03_121", "ov_SC03_124", "ov_SC03_125", "ov_SC03_126", "ov_SC04_000", "ov_SC04_002", "ov_SC04_003", "ov_SC04_004", "ov_SC04_005", "ov_SC04_006", "ov_SC04_007", "ov_SC04_008", "ov_SC04_009", "ov_SC04_010", "ov_SC04_011", "ov_SC04_012", "ov_SC04_015", "ov_SC04_016", "ov_SC04_018", "ov_SC04_019", "ov_SC04_020", "ov_SC04_021", "ov_SC05_000", "ov_SC05_001", "ov_SC05_002", "ov_SC05_003", "ov_SC05_004", "ov_SC05_005", "ov_SC05_006", "ov_SC05_007", "ov_SC05_008", "ov_SC05_009", "ov_SC05_010", "ov_SC05_011", "ov_SC05_017", "ov_SC05_018", "ov_SC05_019", "ov_SC06_000", "ov_SC06_006", "ov_SC06_008", "ov_SC06_010", "ov_SC06_011", "ov_SC06_013", "ov_SC06_014", "ov_SC06_015", "ov_SC06_016", "ov_SC06_018", "ov_SC06_020", "ov_SC06_022", "ov_SC06_024", "ov_SC06_025", "ov_SC06_027", "ov_SC06_029", "ov_SC06_030", "ov_SC06_032", "ov_SC06_033", "ov_SC07_000", "ov_SC07_001", "ov_SC07_002", "ov_SC07_006", "ov_SC07_007", "ov_SC07_008", "ov_SC07_009", "ov_SC07_010", "ov_SC07_011"], "header": true, "obj": "build/src/ov_MAIN_012/ov_MAIN_012_jr_80171B4C.o", "n_sites": 5, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 4}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 5}, {"kind": "pin", "cls": "A", "detail": "$11", "line": 7}, {"kind": "pin", "cls": "A", "detail": "$7", "line": 9}, {"kind": "pin", "cls": "A", "detail": "$12", "line": 12}], "refused": [], "compiles": 7, "seconds": 1.917198657989502, "features": {"kind": "shared", "n": 5, "bucket": "5-9", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 5, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "pin", "detail": "$2", "line": 4}, {"kind": "pin", "detail": "$11", "line": 7}, {"kind": "pin", "detail": "$12", "line": 12}], "needed": [{"kind": "pin", "detail": "$3", "line": 5, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$7", "line": 9, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_80177B5C__879ede92.h", "fn": "func_80177B5C", "nhash": "c2e3b474c8cb06d33740ba096af89833dd0f3d40", "kind": "shared", "aliases": ["ov_SC04_008", "ov_SC05_009"], "header": true, "obj": "build/src/ov_SC04_008/ov_SC04_008_jr_801734BC.o", "n_sites": 23, "sites": [{"kind": "barrier", "cls": "B", "detail": "", "line": 104}, {"kind": "barrier", "cls": "B", "detail": "", "line": 108}, {"kind": "barrier", "cls": "B", "detail": "", "line": 117}, {"kind": "launder", "cls": "B", "detail": "", "line": 44}, {"kind": "launder", "cls": "B", "detail": "", "line": 46}, {"kind": "launder", "cls": "B", "detail": "", "line": 64}, {"kind": "launder", "cls": "B", "detail": "", "line": 68}, {"kind": "launder", "cls": "B", "detail": "", "line": 102}, {"kind": "keepalive", "cls": "B", "detail": "", "line": 125}, {"kind": "pin", "cls": "A", "detail": "$14", "line": 12}, {"kind": "pin", "cls": "A", "detail": "$25", "line": 14}, {"kind": "pin", "cls": "A", "detail": "$3", "line": 15}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 16}, {"kind": "pin", "cls": "A", "detail": "$8", "line": 17}, {"kind": "pin", "cls": "A", "detail": "$2", "line": 22}, {"kind": "pin", "cls": "A", "detail": "$13", "line": 24}, {"kind": "pin", "cls": "A", "detail": "$16", "line": 35}, {"kind": "pin", "cls": "A", "detail": "$4", "line": 36}, {"kind": "pin", "cls": "A", "detail": "$21", "line": 37}, {"kind": "pin", "cls": "A", "detail": "$17", "line": 38}, {"kind": "pin", "cls": "A", "detail": "$18", "line": 39}, {"kind": "pin", "cls": "A", "detail": "$19", "line": 40}, {"kind": "pin", "cls": "A", "detail": "$20", "line": 41}], "refused": [], "compiles": 25, "seconds": 5.10015344619751, "features": {"kind": "shared", "n": 23, "bucket": "10+", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": true, "barrier": true, "keepalive": true}, "n_usable": 23, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [{"kind": "launder", "detail": "", "line": 102}, {"kind": "pin", "detail": "$14", "line": 12}, {"kind": "pin", "detail": "$25", "line": 14}, {"kind": "pin", "detail": "$8", "line": 17}, {"kind": "pin", "detail": "$13", "line": 24}, {"kind": "pin", "detail": "$18", "line": 39}, {"kind": "pin", "detail": "$19", "line": 40}, {"kind": "pin", "detail": "$20", "line": 41}], "needed": [{"kind": "barrier", "detail": "", "line": 104, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 108, "verdict": "DIFFERS", "err": ""}, {"kind": "barrier", "detail": "", "line": 117, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 44, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 46, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 64, "verdict": "DIFFERS", "err": ""}, {"kind": "launder", "detail": "", "line": 68, "verdict": "DIFFERS", "err": ""}, {"kind": "keepalive", "detail": "", "line": 125, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$3", "line": 15, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 16, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$2", "line": 22, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$16", "line": 35, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$4", "line": 36, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$21", "line": 37, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$17", "line": 38, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_8017CF6C__4771362e.h", "fn": "func_8017CF6C", "nhash": "e2a307b2e58f5c6bfe49b085ebed20eda4cbb80c", "kind": "shared", "aliases": ["ov_SC03_002", "ov_SC03_125", "ov_SC04_020", "ov_SC05_018"], "header": true, "obj": "build/src/ov_SC03_002/ov_SC03_002_jr_8017AE2C.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 6}], "refused": [], "compiles": 3, "seconds": 0.3537125587463379, "features": {"kind": "shared", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$2", "line": 6, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_8017D0BC__4f23330c.h", "fn": "func_8017D0BC", "nhash": "66e10b743538f6b140e9bdb5dd578179eae059a9", "kind": "shared", "aliases": ["ov_SC03_002", "ov_SC03_125", "ov_SC04_020", "ov_SC05_018"], "header": true, "obj": "build/src/ov_SC03_002/ov_SC03_002_jr_8017AE2C.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 16}], "refused": [], "compiles": 3, "seconds": 0.3783392906188965, "features": {"kind": "shared", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$2", "line": 16, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_8017E98C__94ae7b9b.h", "fn": "func_8017E98C", "nhash": "6c32e809740cd25ef320f9bd0d83482f0d085d94", "kind": "shared", "aliases": ["ov_SC03_126", "ov_SC04_021", "ov_SC05_019"], "header": true, "obj": "build/src/ov_SC03_126/ov_SC03_126_jr_8017D5C0.o", "n_sites": 1, "sites": [{"kind": "pin", "cls": "A", "detail": "$16", "line": 7}], "refused": [], "compiles": 3, "seconds": 0.3065674304962158, "features": {"kind": "shared", "n": 1, "bucket": "1", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$16", "line": 7, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_80181538__27797037.h", "fn": "func_80181538", "nhash": "8178ec5355326d0eea3790d1a941a9dec1a2b552", "kind": "shared", "aliases": ["ov_SC02_000", "ov_SC02_003"], "header": true, "obj": "build/src/ov_SC02_000/ov_SC02_000_jr_80181538.o", "n_sites": 2, "sites": [{"kind": "pin", "cls": "A", "detail": "$2", "line": 2734}, {"kind": "pin", "cls": "A", "detail": "$5", "line": 2735}], "refused": [], "compiles": 4, "seconds": 0.2822539806365967, "features": {"kind": "shared", "n": 2, "bucket": "2-4", "mix": "pins-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 2, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "pin", "detail": "$2", "line": 2734, "verdict": "DIFFERS", "err": ""}, {"kind": "pin", "detail": "$5", "line": 2735, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} +{"tu": "src/shared/ov/func_801815DC__e8e5dd81.h", "fn": "func_801815DC", "nhash": "d766c41333dd77c1ce4d5a57f1c1e468ccf6bfd5", "kind": "shared", "aliases": ["ov_SC04_018", "ov_SC04_019"], "header": true, "obj": "build/src/ov_SC04_018/ov_SC04_018_jr_8017AE2C.o", "n_sites": 1, "sites": [{"kind": "barrier", "cls": "B", "detail": "memory", "line": 15}], "refused": [], "compiles": 1, "seconds": 0.3115410804748535, "features": {"kind": "shared", "n": 1, "bucket": "1", "mix": "asm-only", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": false, "launder": false, "barrier": true, "keepalive": false}, "n_usable": 1, "rung_A": "IDENTICAL", "rung_A_err": "", "rung_A_keep_register": "IDENTICAL", "removed": [{"kind": "barrier", "detail": "memory", "line": 15}], "needed": [], "verdict": "LEVER-FREE"} +{"tu": "src/shared/ov/func_80188028.h", "fn": "func_80188028", "nhash": "7f31e385e6f28d1c52d6e72ecd801c92b5f0d894", "kind": "shared", "aliases": ["ov_SC02_000", "ov_SC02_003"], "header": true, "obj": "build/src/ov_SC02_000/ov_SC02_000_jr_80187B40.o", "n_sites": 1, "sites": [{"kind": "decl-body", "cls": "C", "detail": "", "line": 17}], "refused": [], "compiles": 2, "seconds": 0.2990443706512451, "features": {"kind": "shared", "n": 1, "bucket": "1", "mix": "mixed", "zero": false, "init": false, "instr": false, "cast": false, "register": false, "volatile": true, "launder": false, "barrier": false, "keepalive": false}, "n_usable": 1, "rung_A": "DIFFERS", "rung_A_err": "", "rung_A_keep_register": "DIFFERS", "removed": [], "needed": [{"kind": "decl-body", "detail": "", "line": 17, "verdict": "DIFFERS", "err": ""}], "verdict": "RESIDUE"} diff --git a/.run/P36/probe/probe_run.log b/.run/P36/probe/probe_run.log new file mode 100644 index 000000000..00e35e7c6 --- /dev/null +++ b/.run/P36/probe/probe_run.log @@ -0,0 +1,264 @@ +01:56:54 probe: 285 bodies sampled from 19868 lever bodies (2340 distinct classes); seed 11 +01:56:54 src/md_MAIN_003/md_MAIN_003_o0e.c:func_800D0B1C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:54 src/md_MAIN_003/md_MAIN_003_o0c.c:func_800D0D6C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:54 src/boot.c:func_80011380 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:54 src/md_MAIN_011/md_MAIN_011.c:func_800CEF00 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:54 src/md_MAIN_003/md_MAIN_003_o0e.c:func_800D0268 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:54 src/boot.c:func_80011C8C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:54 src/800_b.c:func_8002B0B4 A=DIFFERS B: removed 0 needed 5 compiles 6 +01:56:54 src/md_MAIN_003/md_MAIN_003_jr_800D1E18.c:func_800D2A24 A=DIFFERS B: removed 0 needed 3 compiles 5 +01:56:54 src/md_MAIN_021/md_MAIN_021.c:func_800CB0C8 A=DIFFERS B: removed 0 needed 3 compiles 4 +01:56:54 src/boot.c:func_80010F80 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:54 src/md_MAIN_026/md_MAIN_026.c:func_800CB900 A=DIFFERS B: removed 1 needed 1 compiles 3 +01:56:54 src/800_c.c:func_800383A4 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:56:54 src/boot.c:func_80010A08 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:54 src/md_MAIN_009/md_MAIN_009.c:func_800CD674 A=DIFFERS B: removed 2 needed 6 compiles 10 +01:56:55 src/md_SC03_076/md_SC03_076_jr_801F218C.c:func_801F2348 A=DIFFERS B: removed 2 needed 1 compiles 4 +01:56:55 src/md_MAIN_044/md_MAIN_044.c:func_800CCD2C A=DIFFERS B: removed 1 needed 1 compiles 4 +01:56:55 src/md_SC03_135/md_SC03_135_jr_801E5358.c:func_801E559C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:55 src/md_SC03_075/md_SC03_075.c:func_801F02D4 A=DIFFERS B: removed 1 needed 1 compiles 4 +01:56:55 src/md_SC04_026/md_SC04_026.c:func_801E89D4 A=DIFFERS B: removed 1 needed 1 compiles 4 +01:56:55 src/md_MAIN_001/md_MAIN_001.c:func_800CF290 A=DIFFERS B: removed 9 needed 4 compiles 15 +01:56:55 src/md_MAIN_044/md_MAIN_044.c:func_800CD894 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:56:55 src/md_MAIN_003/md_MAIN_003.c:func_800CF3E8 A=DIFFERS B: removed 4 needed 8 compiles 14 +01:56:55 src/md_MAIN_043/md_MAIN_043.c:func_800CD404 A=DIFFERS B: removed 7 needed 1 compiles 10 +01:56:55 src/md_MAIN_013/md_MAIN_013.c:func_800CB138 A=DIFFERS B: removed 0 needed 13 compiles 15 +01:56:55 src/md_SC05_026/md_SC05_026_jr_801F0748.c:func_801F0C4C A=DIFFERS B: removed 4 needed 2 compiles 8 +01:56:55 src/800_c.c:func_800385C0 A=DIFFERS B: removed 0 needed 2 compiles 4 +01:56:55 src/ov_MAIN_012/ov_MAIN_012_jr_8013F350.c:func_801418F8 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:55 src/ov_MAIN_012/ov_MAIN_012_jr_8013C98C.c:func_8013D53C A=DIFFERS B: removed 0 needed 2 compiles 3 +01:56:55 src/md_SC07_003/md_SC07_003.c:func_801A293C A=DIFFERS B: removed 1 needed 1 compiles 4 +01:56:55 src/md_SC07_004/md_SC07_004.c:func_801AB818 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:56 src/md_MAIN_003/md_MAIN_003.c:func_800CFEB4 A=DIFFERS B: removed 7 needed 4 compiles 13 +01:56:56 src/800_b_2.c:func_8002EFF8 A=DIFFERS B: removed 1 needed 2 compiles 5 +01:56:56 src/ov_MAIN_012/ov_MAIN_012_jr_8016AE5C.c:func_8016E9EC A=DIFFERS B: removed 0 needed 1 compiles 3 +01:56:56 src/ov_SC01_004/ov_SC01_004_jr_8017E5B8.c:func_8017E5B8 A=DIFFERS B: removed 0 needed 2 compiles 3 +01:56:56 src/ov_SC01_004/ov_SC01_004_jr_8017BE9C.c:func_8017DC38 A=DIFFERS B: removed 1 needed 3 compiles 6 +01:56:56 src/ov_MAIN_012/ov_MAIN_012_jr_801380E0.c:func_8013B274 A=DIFFERS B: removed 4 needed 8 compiles 13 +01:56:56 src/ov_SC01_004/ov_SC01_004_jr_8017E5B8.c:func_8017E804 A=DIFFERS B: removed 1 needed 5 compiles 8 +01:56:56 src/800.c:func_80012E6C A=DIFFERS B: removed 0 needed 1 compiles 3 +01:56:57 src/800_b_2.c:func_8002FF0C A=DIFFERS B: removed 0 needed 3 compiles 4 +01:56:57 src/ov_SC01_000/ov_SC01_000_jr_8017BEBC.c:func_8017E4A0 A=DIFFERS B: removed 7 needed 2 compiles 11 +01:56:57 src/md_SC07_004/md_SC07_004.c:func_801AE908 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:56:57 src/800_c.c:func_800391D4 A=DIFFERS B: removed 0 needed 10 compiles 12 +01:56:57 src/ov_SC01_008/ov_SC01_008_jr_8017BE9C.c:func_8017E050 A=DIFFERS B: removed 0 needed 4 compiles 6 +01:56:57 src/ov_SC01_084/ov_SC01_084_jr_80182A00.c:func_80183BD0 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:57 src/ov_SC01_009/ov_SC01_009_jr_8017E590.c:func_8017FFD0 A=DIFFERS B: removed 3 needed 4 compiles 9 +01:56:58 src/ov_SC01_084/ov_SC01_084_jr_80182A00.c:func_8018392C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:58 src/ov_SC01_077/ov_SC01_077_jr_8017AE2C.c:func_8017B614 A=DIFFERS B: removed 0 needed 3 compiles 5 +01:56:58 src/ov_SC01_084/ov_SC01_084_jr_80182A00.c:func_80183A7C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:58 src/800_b_2.c:func_80034314 A=DIFFERS B: removed 2 needed 1 compiles 5 +01:56:58 src/ov_MAIN_012/ov_MAIN_012.c:func_80130D48 A=DIFFERS B: removed 5 needed 4 compiles 11 +01:56:58 src/ov_SC02_005/ov_SC02_005_jr_8017CF90.c:func_8018118C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:56:58 src/ov_SC02_005/ov_SC02_005_jr_8017AE2C.c:func_8017C41C A=DIFFERS B: removed 2 needed 3 compiles 7 +01:56:58 src/800_c.c:func_80038958 A=DIFFERS B: removed 5 needed 2 compiles 9 +01:56:58 src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.c:func_80180728 A=DIFFERS B: removed 0 needed 5 compiles 6 +01:56:58 src/ov_MAIN_012/ov_MAIN_012_jr_8015A3C8.c:func_80162438 A=DIFFERS B: removed 2 needed 3 compiles 7 +01:56:59 src/ov_SC01_000/ov_SC01_000_jr_8013C98C.c:func_8013D9B0 A=DIFFERS B: removed 9 needed 25 compiles 36 +01:56:59 src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.c:func_8017FD9C A=DIFFERS B: removed 0 needed 2 compiles 3 +01:56:59 src/ov_SC02_005/ov_SC02_005_jr_8018EA04.c:func_8018FEA0 A=DIFFERS B: removed 5 needed 3 compiles 10 +01:56:59 src/ov_SC02_005/ov_SC02_005_jr_80185E80.c:func_8018D270 A=DIFFERS B: removed 0 needed 2 compiles 4 +01:56:59 src/ov_SC02_005/ov_SC02_005_jr_8018EA04.c:func_8018FA34 A=DIFFERS B: removed 0 needed 3 compiles 5 +01:57:00 src/ov_SC01_077/ov_SC01_077.c:func_80140958 A=DIFFERS B: removed 7 needed 4 compiles 13 +01:57:00 src/ov_SC02_021/ov_SC02_021_jr_8017ECFC.c:func_8017F1B4 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:00 src/ov_SC02_011/ov_SC02_011_jr_80183178.c:func_80187E08 A=DIFFERS B: removed 1 needed 4 compiles 7 +01:57:00 src/ov_SC02_021/ov_SC02_021_jr_8017C294.c:func_8017DC10 A=DIFFERS B: removed 1 needed 3 compiles 6 +01:57:00 src/md_SC07_004/md_SC07_004.c:func_801A2DC4 A=DIFFERS B: removed 2 needed 3 compiles 7 +01:57:00 src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.c:func_8017F67C A=DIFFERS B: removed 0 needed 2 compiles 4 +01:57:00 src/ov_SC02_028/ov_SC02_028_jr_801884D8.c:func_8018AB34 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:00 src/ov_SC02_028/ov_SC02_028_jr_8017D898.c:func_80181264 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:00 src/ov_SC02_011/ov_SC02_011_jr_80188E3C.c:func_8018AB20 A=DIFFERS B: removed 1 needed 4 compiles 7 +01:57:01 src/ov_SC02_026/ov_SC02_026_jr_8017C180.c:func_8017F6B0 A=DIFFERS B: removed 0 needed 2 compiles 3 +01:57:01 src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.c:func_8017D710 A=DIFFERS B: removed 0 needed 2 compiles 3 +01:57:01 src/ov_SC02_011/ov_SC02_011_jr_80183178.c:func_80186868 A=DIFFERS B: removed 1 needed 4 compiles 7 +01:57:01 src/ov_SC02_035/ov_SC02_035_jr_8017BEBC.c:func_80181B00 A=DIFFERS B: removed 1 needed 1 compiles 4 +01:57:01 src/ov_SC02_041/ov_SC02_041_jr_8017BEBC.c:func_8018317C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:01 src/ov_MAIN_012/ov_MAIN_012.c:func_8012956C A=DIFFERS B: removed 6 needed 4 compiles 12 +01:57:02 src/ov_SC02_039/ov_SC02_039_jr_8017BEBC.c:func_8017DE00 A=DIFFERS B: removed 6 needed 4 compiles 12 +01:57:02 src/ov_SC03_001/ov_SC03_001_jr_8017AE2C.c:func_80182058 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:02 src/ov_SC03_001/ov_SC03_001_jr_80189030.c:func_801898E4 A=DIFFERS B: removed 1 needed 5 compiles 8 +01:57:02 src/ov_SC03_001/ov_SC03_001_jr_8018B8DC.c:func_8018BCD4 A=DIFFERS B: removed 1 needed 4 compiles 7 +01:57:03 src/ov_SC02_026/ov_SC02_026_jr_8017C180.c:func_8017E3AC A=DIFFERS B: removed 4 needed 1 compiles 7 +01:57:03 src/ov_SC03_002/ov_SC03_002_jr_8017D604.c:func_8017EA54 A=DIFFERS B: removed 2 needed 3 compiles 7 +01:57:03 src/800_b_2.c:func_8003388C A=DIFFERS B: removed 2 needed 15 compiles 19 +01:57:03 src/ov_SC02_011/ov_SC02_011_jr_80183178.c:func_80187CE8 A=DIFFERS B: removed 4 needed 4 compiles 10 +01:57:03 src/ov_SC03_013/ov_SC03_013_jr_8017C730.c:func_8017DD98 A=DIFFERS B: removed 1 needed 1 compiles 4 +01:57:04 src/ov_SC02_011/ov_SC02_011_jr_80183178.c:func_80188250 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:04 src/ov_SC03_001/ov_SC03_001_jr_8017AE2C.c:func_8017BF50 A=DIFFERS B: removed 3 needed 1 compiles 6 +01:57:04 src/800_c.c:func_80038A58 A=DIFFERS B: removed 26 needed 9 compiles 37 +01:57:04 src/ov_SC03_011/ov_SC03_011_jr_80140608.c:func_80140958 A=DIFFERS B: removed 7 needed 4 compiles 13 +01:57:04 src/ov_SC03_024/ov_SC03_024_jr_80183BF8.c:func_80185E38 A=DIFFERS B: removed 1 needed 4 compiles 7 +01:57:04 src/ov_SC03_028/ov_SC03_028_jr_8017DF98.c:func_80180AC4 A=DIFFERS B: removed 0 needed 2 compiles 4 +01:57:05 src/ov_SC03_024/ov_SC03_024_jr_8017DF84.c:func_80182108 A=DIFFERS B: removed 1 needed 3 compiles 6 +01:57:05 src/ov_SC03_028/ov_SC03_028_jr_801887A8.c:func_80189AF4 A=DIFFERS B: removed 0 needed 3 compiles 5 +01:57:05 src/800.c:func_800242D0 A=DIFFERS B: removed 6 needed 5 compiles 13 +01:57:05 src/800_c.c:func_800384A8 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:05 src/md_SC07_004/md_SC07_004.c:func_801AB694 A=DIFFERS B: removed 5 needed 1 compiles 8 +01:57:06 src/ov_SC03_006/ov_SC03_006_jr_8017AE2C.c:func_80185BD4 A=DIFFERS B: removed 3 needed 2 compiles 7 +01:57:06 src/ov_SC03_030/ov_SC03_030_jr_8017AE2C.c:func_80180960 A=DIFFERS B: removed 0 needed 3 compiles 5 +01:57:06 src/ov_SC03_105/ov_SC03_105_jr_8017C8D0.c:func_8017E180 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:06 src/ov_SC03_029/ov_SC03_029_jr_8017FF7C.c:func_80180B84 A=DIFFERS B: removed 4 needed 1 compiles 7 +01:57:06 src/ov_SC03_105/ov_SC03_105_jr_80186DDC.c:func_80187928 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:06 src/ov_SC03_097/ov_SC03_097_jr_8017D898.c:func_80181CF4 A=DIFFERS B: removed 1 needed 4 compiles 7 +01:57:06 src/ov_SC03_092/ov_SC03_092_jr_80181694.c:func_8018478C A=DIFFERS B: removed 0 needed 8 compiles 10 +01:57:06 src/ov_SC03_108/ov_SC03_108_jr_8017F83C.c:func_8017FD64 A=DIFFERS B: removed 0 needed 2 compiles 3 +01:57:07 src/ov_SC03_028/ov_SC03_028_jr_80185C14.c:func_80186368 A=DIFFERS B: removed 17 needed 3 compiles 22 +01:57:07 src/ov_SC03_105/ov_SC03_105_jr_80181C84.c:func_80183A98 A=DIFFERS B: removed 0 needed 5 compiles 6 +01:57:07 src/ov_SC03_121/ov_SC03_121_jr_8017E1D0.c:func_8017F374 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:07 src/ov_SC03_112/ov_SC03_112_jr_8017C294.c:func_8017D174 A=DIFFERS B: removed 1 needed 3 compiles 5 +01:57:07 src/ov_SC03_094/ov_SC03_094_jr_8017BEBC.c:func_80181448 A=DIFFERS B: removed 2 needed 4 compiles 8 +01:57:07 src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.c:func_8017DBAC A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:08 src/md_SC07_004/md_SC07_004.c:func_801A395C A=DIFFERS B: removed 1 needed 2 compiles 5 +01:57:08 src/ov_SC04_018/ov_SC04_018_jr_80188E1C.c:func_80189EA0 A=DIFFERS B: removed 1 needed 1 compiles 3 +01:57:08 src/ov_SC04_018/ov_SC04_018_jr_801878E8.c:func_80188778 A=DIFFERS B: removed 2 needed 4 compiles 8 +01:57:08 src/ov_SC02_037/ov_SC02_037_jr_8017AE2C.c:func_8017F2B4 A=DIFFERS B: removed 6 needed 17 compiles 25 +01:57:08 src/ov_SC04_020/ov_SC04_020_jr_8017D604.c:func_8018087C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:08 src/ov_SC03_113/ov_SC03_113_jr_8017C294.c:func_8017F394 A=DIFFERS B: removed 5 needed 1 compiles 8 +01:57:08 src/md_SC07_004/md_SC07_004.c:func_801A7CDC A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:08 src/ov_SC03_107/ov_SC03_107_jr_801789AC.c:func_8017BEBC A=DIFFERS B: removed 0 needed 7 compiles 8 +01:57:09 src/ov_SC01_077/ov_SC01_077.c:func_8013D9B0 A=DIFFERS B: removed 9 needed 25 compiles 36 +01:57:09 src/ov_SC05_001/ov_SC05_001_jr_8017BEBC.c:func_80182258 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:09 src/ov_SC04_016/ov_SC04_016_jr_8017BEBC.c:func_8017DA50 A=DIFFERS B: removed 2 needed 8 compiles 12 +01:57:09 src/ov_SC05_003/ov_SC05_003_jr_8017BEBC.c:func_801815A0 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:09 src/ov_SC03_113/ov_SC03_113_jr_8017C294.c:func_8017E178 A=DIFFERS B: removed 0 needed 2 compiles 3 +01:57:09 src/ov_SC05_005/ov_SC05_005_jr_8017D898.c:func_801816A8 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:09 src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.c:func_8017BF70 A=DIFFERS B: removed 3 needed 1 compiles 6 +01:57:09 src/ov_SC05_010/ov_SC05_010_jr_80180F84.c:func_801814AC A=DIFFERS B: removed 1 needed 1 compiles 3 +01:57:09 src/ov_SC01_077/ov_SC01_077.c:func_801418F8 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:09 src/ov_SC05_008/ov_SC05_008_jr_8017AE2C.c:func_8017E6A4 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:09 src/ov_SC05_002/ov_SC05_002_jr_8017BEBC.c:func_8017F200 A=DIFFERS B: removed 5 needed 1 compiles 8 +01:57:09 src/ov_SC05_003/ov_SC05_003_jr_8017BEBC.c:func_801812AC A=DIFFERS B: removed 1 needed 1 compiles 3 +01:57:09 src/ov_SC03_124/ov_SC03_124_jr_80188544.c:func_80188C68 A=DIFFERS B: removed 5 needed 19 compiles 26 +01:57:10 src/ov_SC06_013/ov_SC06_013_jr_8017BEBC.c:func_8017DE14 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:10 src/ov_SC06_006/ov_SC06_006_jr_8017DB90.c:func_8017E550 A=DIFFERS B: removed 0 needed 3 compiles 4 +01:57:10 src/ov_SC06_016/ov_SC06_016_jr_801816DC.c:func_80181C78 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:10 src/ov_SC06_011/ov_SC06_011_jr_8017EEEC.c:func_8017F3C8 A=DIFFERS B: removed 4 needed 1 compiles 7 +01:57:10 src/ov_SC06_008/ov_SC06_008_jr_8017C294.c:func_8017D73C A=DIFFERS B: removed 0 needed 2 compiles 3 +01:57:10 src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c:func_8018A688 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:10 src/ov_SC04_011/ov_SC04_011_jr_8017D494.c:func_801835B0 A=DIFFERS B: removed 0 needed 3 compiles 4 +01:57:10 src/ov_SC06_011/ov_SC06_011_jr_8017BEBC.c:func_8017E5D0 A=DIFFERS B: removed 4 needed 3 compiles 9 +01:57:10 src/ov_SC05_010/ov_SC05_010_jr_80181CDC.c:func_80183D5C A=DIFFERS B: removed 9 needed 1 compiles 12 +01:57:10 src/ov_SC06_016/ov_SC06_016_jr_8017C8D0.c:func_801810A4 A=DIFFERS B: removed 2 needed 3 compiles 6 +01:57:11 src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c:func_80182464 A=DIFFERS B: removed 0 needed 2 compiles 4 +01:57:11 src/ov_SC06_024/ov_SC06_024_jr_80186F00.c:func_8018D674 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:11 src/ov_SC03_107/ov_SC03_107_jr_801789AC.c:func_8017CF48 A=DIFFERS B: removed 2 needed 4 compiles 8 +01:57:11 src/ov_SC06_029/ov_SC06_029_jr_801898CC.c:func_8018A180 A=COMPILE-ERROR B: removed 0 needed 6 compiles 7 +01:57:11 src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c:func_801811DC A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:12 src/ov_SC06_024/ov_SC06_024_jr_8017BEBC.c:func_8017FA1C A=DIFFERS B: removed 1 needed 3 compiles 6 +01:57:12 src/ov_SC06_030/ov_SC06_030_jr_8017F65C.c:func_80180FF4 A=DIFFERS B: removed 0 needed 10 compiles 12 +01:57:12 src/ov_SC06_033/ov_SC06_033_jr_8018D98C.c:func_8018D98C A=DIFFERS B: removed 0 needed 2 compiles 3 +01:57:12 src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c:func_80185DD8 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:12 src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c:func_8018A974 A=DIFFERS B: removed 2 needed 3 compiles 7 +01:57:12 src/ov_SC06_032/ov_SC06_032_jr_801902EC.c:func_801902EC A=DIFFERS B: removed 4 needed 9 compiles 14 +01:57:12 src/ov_SC06_033/ov_SC06_033_jr_8018C2D8.c:func_8018C2D8 A=DIFFERS B: removed 4 needed 8 compiles 13 +01:57:12 src/ov_SC06_032/ov_SC06_032_jr_801919A0.c:func_801919A0 A=REFUSED B: removed 4 needed 10 compiles 14 +01:57:13 src/ov_SC07_000/ov_SC07_000_jr_8017F8B8.c:func_80181BA8 A=DIFFERS B: removed 1 needed 4 compiles 7 +01:57:13 src/ov_SC07_007/ov_SC07_007_jr_8013C98C.c:func_8013D53C A=DIFFERS B: removed 0 needed 2 compiles 3 +01:57:13 src/ov_SC06_016/ov_SC06_016_jr_8017C8D0.c:func_801813B0 A=DIFFERS B: removed 0 needed 12 compiles 13 +01:57:13 src/ov_SC07_007/ov_SC07_007_jr_8017BEBC.c:func_8018044C A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:13 src/resident/resident.c:func_800CFE60 A=DIFFERS B: removed 1 needed 2 compiles 5 +01:57:13 src/ov_SC07_002/ov_SC07_002_jr_8017C8D0.c:func_80185FB0 A=DIFFERS B: removed 0 needed 2 compiles 4 +01:57:13 src/ov_SC07_010/ov_SC07_010_jr_8017AE2C.c:func_80180480 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:13 src/resident/resident_jr_800D00E4.c:func_800D0488 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:13 src/resident/resident_jr_800D128C.c:func_800D1984 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:14 src/ov_SC06_032/ov_SC06_032_jr_80182890.c:func_8018BA4C A=DIFFERS B: removed 3 needed 2 compiles 7 +01:57:14 src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c:func_801835B0 A=DIFFERS B: removed 0 needed 7 compiles 8 +01:57:14 src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c:func_8017DB20 A=DIFFERS B: removed 2 needed 1 compiles 5 +01:57:14 src/resident/resident_jr_800D00E4.c:func_800D0E30 A=DIFFERS B: removed 2 needed 3 compiles 7 +01:57:14 src/resident/resident_jr_800D128C.c:func_800D128C A=DIFFERS B: removed 0 needed 3 compiles 4 +01:57:14 src/ov_SC07_007/ov_SC07_007_jr_8017BEBC.c:func_8018122C A=DIFFERS B: removed 1 needed 1 compiles 4 +01:57:14 src/resident/resident_jr_800D00E4.c:func_800D0214 A=DIFFERS B: removed 1 needed 1 compiles 4 +01:57:14 src/resident/resident_jr_800D128C.c:func_800D1658 A=DIFFERS B: removed 0 needed 3 compiles 5 +01:57:14 src/resident/resident_jr_800D00E4.c:func_800D02D0 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:14 src/ov_SC04_011/ov_SC04_011_jr_8017D494.c:func_8018E428 A=DIFFERS B: removed 1 needed 4 compiles 7 +01:57:14 src/resident/resident_jr_800D00E4.c:func_800D0D7C A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:14 src/resident/resident_jr_800D128C.c:func_800D2D10 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:14 src/ov_SC07_010/ov_SC07_010_jr_80140608.c:func_80140958 A=DIFFERS B: removed 7 needed 4 compiles 13 +01:57:15 src/resident/resident_jr_800D128C.c:func_800D2650 A=DIFFERS B: removed 1 needed 4 compiles 7 +01:57:15 src/resident/resident_jr_800D128C.c:func_800D1B80 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:57:15 src/ov_SC07_006/ov_SC07_006_jr_8017BEBC.c:func_80182F3C A=DIFFERS B: removed 6 needed 6 compiles 13 +01:57:15 src/ov_SC07_006/ov_SC07_006_jr_80171B4C.c:func_80176734 A=DIFFERS B: removed 1 needed 11 compiles 14 +01:57:16 src/ov_SC04_011/ov_SC04_011_jr_8017D494.c:func_8018315C A=DIFFERS B: removed 0 needed 2 compiles 4 +01:57:29 src/800.c:func_800226C0 A=DIFFERS B: removed 31 needed 14 compiles 47 +01:57:30 src/800.c:func_80020DA4 A=DIFFERS B: removed 0 needed 2 compiles 3 +01:57:34 src/800.c:func_8002AF70 A=DIFFERS B: removed 2 needed 3 compiles 7 +01:57:37 src/800.c:func_800241C0 A=DIFFERS B: removed 3 needed 3 compiles 8 +01:57:38 src/800.c:func_80016A7C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:45 src/800.c:func_80023570 A=DIFFERS B: removed 9 needed 4 compiles 15 +01:57:47 src/800.c:func_8001A114 A=DIFFERS B: removed 0 needed 2 compiles 3 +01:57:53 src/800.c:func_80016224 A=DIFFERS B: removed 3 needed 6 compiles 11 +01:57:54 src/800.c:func_80025A30 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:57:55 src/800.c:func_8001EA14 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:58:13 src/800.c:func_800215F4 A=DIFFERS B: removed 29 needed 7 compiles 38 +01:58:19 src/800.c:func_8002AC00 A=DIFFERS B: removed 4 needed 5 compiles 11 +01:58:25 src/800.c:func_8001BADC A=DIFFERS B: removed 5 needed 3 compiles 10 +01:58:26 src/800.c:func_800273F4 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:58:30 src/800.c:func_80015208 A=DIFFERS B: removed 3 needed 1 compiles 6 +01:58:35 src/800.c:func_8001BBBC A=DIFFERS B: removed 4 needed 4 compiles 10 +01:58:39 src/800.c:LoaderInitFileTable A=DIFFERS B: removed 0 needed 7 compiles 9 +01:58:40 src/shared/ov/func_8012A860.h:func_8012A860 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:58:41 src/shared/ov/func_8012C2D0.h:func_8012C2D0 A=DIFFERS B: removed 0 needed 2 compiles 3 +01:58:44 src/shared/ov/func_8012DBD0.h:func_8012DBD0 A=DIFFERS B: removed 8 needed 4 compiles 14 +01:58:46 src/shared/ov/func_80135004__0f8f8d0b.h:func_80135004 A=DIFFERS B: removed 4 needed 4 compiles 10 +01:58:48 src/shared/ov/func_80135168__bad0a585.h:func_80135168 A=DIFFERS B: removed 0 needed 5 compiles 7 +01:58:48 src/shared/ov/func_80135A4C__e0129286.h:func_80135A4C A=DIFFERS B: removed 0 needed 3 compiles 5 +01:58:49 src/shared/ov/func_80135EB0__c9438c12.h:func_80135EB0 A=DIFFERS B: removed 0 needed 6 compiles 8 +01:58:50 src/shared/ov/func_80136334__6e7f4730.h:func_80136334 A=DIFFERS B: removed 4 needed 4 compiles 10 +01:58:51 src/shared/ov/func_8013B274__28562738.h:func_8013B274 A=DIFFERS B: removed 4 needed 8 compiles 13 +01:58:51 src/shared/ov/func_8013D178__421ba659.h:func_8013D178 A=DIFFERS B: removed 0 needed 1 compiles 3 +01:58:52 src/shared/ov/func_80140608__2fb5c201.h:func_80140608 A=DIFFERS B: removed 1 needed 1 compiles 4 +01:58:53 src/shared/ov/func_801415C0.h:func_801415C0 A=DIFFERS B: removed 3 needed 2 compiles 7 +01:58:53 src/shared/ov/func_80141B90.h:func_80141B90 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:58:54 src/shared/ov/func_80145A2C__530ca2ff.h:func_80145A2C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:58:54 src/shared/ov/func_801497A8.h:func_801497A8 A=DIFFERS B: removed 0 needed 1 compiles 2 +01:58:55 src/shared/ov/func_8014DD8C.h:func_8014DD8C A=DIFFERS B: removed 0 needed 2 compiles 3 +01:58:56 src/shared/ov/func_8014F74C.h:func_8014F74C A=DIFFERS B: removed 0 needed 1 compiles 2 +01:58:58 src/shared/ov/func_801536DC.h:func_801536DC A=DIFFERS B: removed 2 needed 1 compiles 5 +01:59:00 src/shared/ov/func_8015B6F4.h:func_8015B6F4 A=DIFFERS B: removed 1 needed 3 compiles 6 +01:59:02 src/shared/ov/func_801612B8.h:func_801612B8 A=DIFFERS B: removed 2 needed 1 compiles 5 +01:59:05 src/shared/ov/func_80162438__e113e304.h:func_80162438 A=DIFFERS B: removed 2 needed 3 compiles 7 +01:59:09 src/shared/ov/func_80166054.h:func_80166054 A=DIFFERS B: removed 5 needed 5 compiles 12 +01:59:11 src/shared/ov/func_80166F58__3728db8a.h:func_80166F58 A=DIFFERS B: removed 2 needed 2 compiles 6 +01:59:12 src/shared/ov/func_8016DF5C__a8a4aea4.h:func_8016DF5C A=DIFFERS B: removed 1 needed 2 compiles 5 +01:59:13 src/shared/ov/func_801759D8.h:func_801759D8 A=DIFFERS B: removed 1 needed 1 compiles 3 +01:59:16 src/shared/ov/func_80176734__261d72d2.h:func_80176734 A=DIFFERS B: removed 1 needed 11 compiles 14 +01:59:18 src/shared/ov/func_801778A8.h:func_801778A8 A=DIFFERS B: removed 3 needed 2 compiles 7 +01:59:23 src/shared/ov/func_80177B5C__879ede92.h:func_80177B5C A=DIFFERS B: removed 8 needed 15 compiles 25 +01:59:24 src/shared/ov/func_8017CF6C__4771362e.h:func_8017CF6C A=DIFFERS B: removed 0 needed 1 compiles 3 +01:59:24 src/shared/ov/func_8017D0BC__4f23330c.h:func_8017D0BC A=DIFFERS B: removed 0 needed 1 compiles 3 +01:59:24 src/shared/ov/func_8017E98C__94ae7b9b.h:func_8017E98C A=DIFFERS B: removed 0 needed 1 compiles 3 +01:59:25 src/shared/ov/func_80181538__27797037.h:func_80181538 A=DIFFERS B: removed 0 needed 2 compiles 4 +01:59:25 src/shared/ov/func_80188028.h:func_80188028 A=DIFFERS B: removed 0 needed 1 compiles 2 +# probe — 285 bodies sampled, 283 judged (seed 11, 2026-09-09 01:59, wall 151.4 s) + +- rung A (strip-all) identical: **53 / 283** (register dropped) · 53 with `register` kept +- lever-free after rung B: **53 / 283** +- sites: 1309 usable · removed 561 (42.9 %) · needed 748 +- needed by kind: {'pin': 360, 'launder': 154, 'instruction': 21, 'barrier': 127, 'register': 8, 'keepalive': 36, 'cast': 26, 'decl-body': 16} +- needed by detail (top): {'launder:': 123, 'barrier:': 82, 'pin:$2': 80, 'pin:$4': 50, 'pin:$3': 46, 'barrier:memory': 45, 'pin:$5': 37, 'keepalive:': 36, 'pin:$16': 27, 'launder:out-only': 20, 'cast:volatile s32 *': 18, 'pin:$17': 17, 'pin:$6': 15, 'instruction:addiu': 14, 'decl-body:': 14, 'pin:$0': 13, 'pin:$19': 13, 'pin:$8': 11, 'pin:$7': 10, 'pin:$9': 8, 'register:': 8, 'pin:$14': 5, 'pin:$21': 5, 'launder:LAUNDER_8018A180': 5, 'pin:$10': 4, 'pin:$12': 4, 'pin:$18': 4, 'cast:volatile s16 *': 4, 'instruction:addu': 4, 'pin:$20': 4} +- removed by kind: {'instruction': 3, 'pin': 438, 'decl-body': 11, 'register': 4, 'launder': 45, 'barrier': 27, 'keepalive': 8, 'cast': 25} +- refused (rewrite not applicable): {'instruction `sll` has no C spelling in the table': 1, 'instruction `addu` has no C spelling in the table': 1, 'instruction `li` has no C spelling in the table': 1, 'instruction `nop` has no C spelling in the table': 1, 'macro-carried instruction is residue': 2, 'no statement end for the macro use': 3} +- compiles 1660 · mean 5.87 per body · 0.225 s per compile + +| kind | bodies | A identical | A (register kept) | lever-free after B | sites | removed | needed | compiles | s/compile | +|---|---:|---:|---:|---:|---:|---:|---:|---:|---:| +| main | 40 | 6 | 6 | 6 | 272 | 146 | 126 | 328 | 0.386 | +| resident | 16 | 4 | 4 | 4 | 31 | 9 | 22 | 53 | 0.06 | +| md | 29 | 2 | 2 | 2 | 121 | 56 | 65 | 161 | 0.139 | +| shared | 40 | 7 | 7 | 7 | 164 | 65 | 99 | 216 | 0.211 | +| ov | 158 | 34 | 34 | 34 | 721 | 285 | 436 | 902 | 0.195 | + +| feature | bodies | lever-free | +|---|---:|---:| +| zero | 17 | 1 | +| init | 32 | 7 | +| instr | 10 | 1 | +| cast | 22 | 1 | +| register | 12 | 3 | +| launder | 68 | 4 | +| barrier | 78 | 9 | +| keepalive | 27 | 1 | +| volatile | 40 | 11 | + +**Pricing (R41; population 16,064 lever bodies / 55,913 removable sites):** T4 ≈ 94,226 compiles ≈ 5.89 CPU-h ≈ 0.49 h wall at 12 workers; residue after the mechanical ladder ≈ 13,055 bodies / 31,950 sites (the sample's rates applied to the population). +probe wall=160.86 s diff --git a/.run/P36/probe/probe_summary.json b/.run/P36/probe/probe_summary.json new file mode 100644 index 000000000..5ccc173ed --- /dev/null +++ b/.run/P36/probe/probe_summary.json @@ -0,0 +1,188 @@ +{ + "generated": "2026-09-09 01:59", + "seed": 11, + "sampled": 285, + "judged": 283, + "not_judged": { + "NOTHING-USABLE": 2 + }, + "rung_A_identical": 53, + "rung_A_keep_register_identical": 53, + "lever_free_after_B": 53, + "sites": { + "total": 1309, + "removed": 561, + "needed": 748, + "pct_removed": 42.9 + }, + "needed_by_kind": { + "pin": 360, + "launder": 154, + "instruction": 21, + "barrier": 127, + "register": 8, + "keepalive": 36, + "cast": 26, + "decl-body": 16 + }, + "needed_by_detail": { + "launder:": 123, + "barrier:": 82, + "pin:$2": 80, + "pin:$4": 50, + "pin:$3": 46, + "barrier:memory": 45, + "pin:$5": 37, + "keepalive:": 36, + "pin:$16": 27, + "launder:out-only": 20, + "cast:volatile s32 *": 18, + "pin:$17": 17, + "pin:$6": 15, + "instruction:addiu": 14, + "decl-body:": 14, + "pin:$0": 13, + "pin:$19": 13, + "pin:$8": 11, + "pin:$7": 10, + "pin:$9": 8, + "register:": 8, + "pin:$14": 5, + "pin:$21": 5, + "launder:LAUNDER_8018A180": 5, + "pin:$10": 4, + "pin:$12": 4, + "pin:$18": 4, + "cast:volatile s16 *": 4, + "instruction:addu": 4, + "pin:$20": 4 + }, + "removed_by_kind": { + "instruction": 3, + "pin": 438, + "decl-body": 11, + "register": 4, + "launder": 45, + "barrier": 27, + "keepalive": 8, + "cast": 25 + }, + "refused": { + "instruction `sll` has no C spelling in the table": 1, + "instruction `addu` has no C spelling in the table": 1, + "instruction `li` has no C spelling in the table": 1, + "instruction `nop` has no C spelling in the table": 1, + "macro-carried instruction is residue": 2, + "no statement end for the macro use": 3 + }, + "by_kind": { + "main": { + "bodies": 40, + "A_identical": 6, + "A_keep_register_identical": 6, + "lever_free": 6, + "sites": 272, + "removed": 146, + "needed": 126, + "compiles": 328, + "mean_s_per_compile": 0.386 + }, + "resident": { + "bodies": 16, + "A_identical": 4, + "A_keep_register_identical": 4, + "lever_free": 4, + "sites": 31, + "removed": 9, + "needed": 22, + "compiles": 53, + "mean_s_per_compile": 0.06 + }, + "md": { + "bodies": 29, + "A_identical": 2, + "A_keep_register_identical": 2, + "lever_free": 2, + "sites": 121, + "removed": 56, + "needed": 65, + "compiles": 161, + "mean_s_per_compile": 0.139 + }, + "shared": { + "bodies": 40, + "A_identical": 7, + "A_keep_register_identical": 7, + "lever_free": 7, + "sites": 164, + "removed": 65, + "needed": 99, + "compiles": 216, + "mean_s_per_compile": 0.211 + }, + "ov": { + "bodies": 158, + "A_identical": 34, + "A_keep_register_identical": 34, + "lever_free": 34, + "sites": 721, + "removed": 285, + "needed": 436, + "compiles": 902, + "mean_s_per_compile": 0.195 + } + }, + "flags": { + "zero": { + "bodies": 17, + "lever_free": 1 + }, + "init": { + "bodies": 32, + "lever_free": 7 + }, + "instr": { + "bodies": 10, + "lever_free": 1 + }, + "cast": { + "bodies": 22, + "lever_free": 1 + }, + "register": { + "bodies": 12, + "lever_free": 3 + }, + "launder": { + "bodies": 68, + "lever_free": 4 + }, + "barrier": { + "bodies": 78, + "lever_free": 9 + }, + "keepalive": { + "bodies": 27, + "lever_free": 1 + }, + "volatile": { + "bodies": 40, + "lever_free": 11 + } + }, + "compiles": 1660, + "mean_compiles_per_body": 5.87, + "mean_s_per_compile": 0.225, + "wall_s": 151.4, + "population": { + "bodies": 16064, + "sites": 55913 + }, + "pricing": { + "T4_compiles_est": 94226, + "T4_cpu_hours_est": 5.89, + "T4_wall_hours_at_16_est": 0.49, + "residue_bodies_est": 13055, + "residue_sites_est": 31950 + } +} diff --git a/.run/P36/probe/probe_table.md b/.run/P36/probe/probe_table.md new file mode 100644 index 000000000..b8db213fe --- /dev/null +++ b/.run/P36/probe/probe_table.md @@ -0,0 +1,32 @@ +# probe — 285 bodies sampled, 283 judged (seed 11, 2026-09-09 01:59, wall 151.4 s) + +- rung A (strip-all) identical: **53 / 283** (register dropped) · 53 with `register` kept +- lever-free after rung B: **53 / 283** +- sites: 1309 usable · removed 561 (42.9 %) · needed 748 +- needed by kind: {'pin': 360, 'launder': 154, 'instruction': 21, 'barrier': 127, 'register': 8, 'keepalive': 36, 'cast': 26, 'decl-body': 16} +- needed by detail (top): {'launder:': 123, 'barrier:': 82, 'pin:$2': 80, 'pin:$4': 50, 'pin:$3': 46, 'barrier:memory': 45, 'pin:$5': 37, 'keepalive:': 36, 'pin:$16': 27, 'launder:out-only': 20, 'cast:volatile s32 *': 18, 'pin:$17': 17, 'pin:$6': 15, 'instruction:addiu': 14, 'decl-body:': 14, 'pin:$0': 13, 'pin:$19': 13, 'pin:$8': 11, 'pin:$7': 10, 'pin:$9': 8, 'register:': 8, 'pin:$14': 5, 'pin:$21': 5, 'launder:LAUNDER_8018A180': 5, 'pin:$10': 4, 'pin:$12': 4, 'pin:$18': 4, 'cast:volatile s16 *': 4, 'instruction:addu': 4, 'pin:$20': 4} +- removed by kind: {'instruction': 3, 'pin': 438, 'decl-body': 11, 'register': 4, 'launder': 45, 'barrier': 27, 'keepalive': 8, 'cast': 25} +- refused (rewrite not applicable): {'instruction `sll` has no C spelling in the table': 1, 'instruction `addu` has no C spelling in the table': 1, 'instruction `li` has no C spelling in the table': 1, 'instruction `nop` has no C spelling in the table': 1, 'macro-carried instruction is residue': 2, 'no statement end for the macro use': 3} +- compiles 1660 · mean 5.87 per body · 0.225 s per compile + +| kind | bodies | A identical | A (register kept) | lever-free after B | sites | removed | needed | compiles | s/compile | +|---|---:|---:|---:|---:|---:|---:|---:|---:|---:| +| main | 40 | 6 | 6 | 6 | 272 | 146 | 126 | 328 | 0.386 | +| resident | 16 | 4 | 4 | 4 | 31 | 9 | 22 | 53 | 0.06 | +| md | 29 | 2 | 2 | 2 | 121 | 56 | 65 | 161 | 0.139 | +| shared | 40 | 7 | 7 | 7 | 164 | 65 | 99 | 216 | 0.211 | +| ov | 158 | 34 | 34 | 34 | 721 | 285 | 436 | 902 | 0.195 | + +| feature | bodies | lever-free | +|---|---:|---:| +| zero | 17 | 1 | +| init | 32 | 7 | +| instr | 10 | 1 | +| cast | 22 | 1 | +| register | 12 | 3 | +| launder | 68 | 4 | +| barrier | 78 | 9 | +| keepalive | 27 | 1 | +| volatile | 40 | 11 | + +**Pricing (R41; population 16,064 lever bodies / 55,913 removable sites):** T4 ≈ 94,226 compiles ≈ 5.89 CPU-h ≈ 0.49 h wall at 12 workers; residue after the mechanical ladder ≈ 13,055 bodies / 31,950 sites (the sample's rates applied to the population). diff --git a/config/tool_dictionary.tsv b/config/tool_dictionary.tsv index 272fcc547..b53599c05 100644 --- a/config/tool_dictionary.tsv +++ b/config/tool_dictionary.tsv @@ -69,6 +69,8 @@ tools/decompme_replica.sh P4 ADAPT reproduce an external reference toolchain loc tools/dedup_extend.py P6 ADAPT extend an existing code-share registry to newly onboarded binaries Extends the existing share registry to newly onboarded binaries repo config/src layout SUPERSEDED tools/share_body.py tools/dedup_integrate.py P6 ADAPT validate a code-share registry byte-honestly, failing closed on signature drift Byte-honesty validator for the code-share registry; fails closed on signature drift repo config registry path LIVE tools/dedup_propagate.py P6 ADAPT lift one matched body into a shared macro and instantiate it everywhere Lifts one matched body into a shared macro and instantiates it at every duplicate site repo shared-header/src layout SUPERSEDED tools/share_body.py +tools/delever.py P10 ADAPT take register pins, asm statements, volatile and register levers out of matched C, byte-gated per site The Phase-36 de-lever engine: positional rewrites per lever class (pin -> plain declaration, barrier/launder/keep-alive deleted, a hand-placed instruction -> its C, the zero-register variable -> 0, volatile/register dropped), rung A strip-all and rung B greedy per body through delever_oracle, headers serialized after the TU phase; --probe runs a stratified sample of distinct bodies and prices the campaign with denominators the census site records, the oracle LIVE +tools/delever_oracle.py P10 ADAPT judge one translation-unit edit by the bytes of its object in under a second The Phase-36 fast byte oracle: every object's exact build command captured once via make -n -W (the Makefile's own recipe, pad stage and -O0 overrides included), a candidate compiled in place with -o/-MF redirected to scratch and compared with the fleet run's object; --calibrate proves 100 % equality untouched, twin == primary and a positive control before any verdict is trusted the Makefile's object rules, the twin rule LIVE tools/demacroize.py P6 ADAPT escape a shared-header declaration conflict locally by unmacroizing one body Per-binary local escape from a shared-header declaration conflict by unmacroizing one body repo shared-header layout FROZEN tools/share_body.py tools/diff_autopsy.sh P7 ADAPT find which words diverge when the whole-binary gate says different but not where Reproduces exactly what the gate saw, then decodes the diverging words and restores the tree repo src/build paths STILL-NEEDED find WHICH words diverge when the whole-binary gate says DIFF but not where tools/diff_regions.py P7 ADAPT classify where a remapped sibling's compiled bytes diverge from its target Classifies where a remapped member's compiled bytes diverge from its target repo build paths STILL-NEEDED classify where a mechanically remapped sibling's compiled bytes diverge from its target diff --git a/decomp-architect/corpus/record/docs/gen3-handoff.md b/decomp-architect/corpus/record/docs/gen3-handoff.md index 52457e13b..e823b7048 100644 --- a/decomp-architect/corpus/record/docs/gen3-handoff.md +++ b/decomp-architect/corpus/record/docs/gen3-handoff.md @@ -1,7 +1,9 @@ # Gen3 handoff — where Gen2 ends, what comes next, and the levers already in hand > **Written at the Gen2 exit (Phase 33, 2026-09-07).** Gen2's contract is met and published: 218 binaries rebuild -> byte-identical from C ([`docs/verification.md`](verification.md)), every game-code function in every binary is C, the +> byte-identical from C ([`docs/verification.md`](verification.md)), every game-code function in every binary is C (*corrected +> 2026-09-09, Phase 36 T1b: fourteen were whole-body assembly inside C shells, invisible to the file-scope detector — listed +> DECOMPILE-NOW / UNCERTAIN in the manifest*), the > repository is public with its full rewritten history. This page is the seed for Gen3's first plan — it names the > owner's stated next intent, gives the starter census derived from the tree (with the commands, so the next session > re-derives rather than trusts), states the one invariant that must survive every Gen3 edit, and inventories the diff --git a/decomp-architect/corpus/tools/INDEX.md b/decomp-architect/corpus/tools/INDEX.md index c615f5e47..8efc4989d 100644 --- a/decomp-architect/corpus/tools/INDEX.md +++ b/decomp-architect/corpus/tools/INDEX.md @@ -8,8 +8,8 @@ > its platform SDK need the marked adaptation. The last table lists the tools that are project-only in code (their *shape* is a task; > their code does not transfer). *TODO(platform): the MIPS and PlayStation SDK hard-codes are the ones another platform replaces first.* > -> **Coverage:** 296 tool files in scope (submodules, vendored and downloaded code excluded), of which 296 live rows -> below; per phase: P1 2 · P2 26 · P3 17 · P4 9 · P5 26 · P6 51 · P7 20 · P8 86 · P9 27 · P10 16 · PROJECT-ONLY 16. Superseded tools appear only as pointers to their successor (30 pointer rows); one-offs are omitted. Table rows in all: 326 (the installer checks its copy against this figure). +> **Coverage:** 298 tool files in scope (submodules, vendored and downloaded code excluded), of which 298 live rows +> below; per phase: P1 2 · P2 26 · P3 17 · P4 9 · P5 26 · P6 51 · P7 20 · P8 86 · P9 27 · P10 18 · PROJECT-ONLY 16. Superseded tools appear only as pointers to their successor (30 pointer rows); one-offs are omitted. Table rows in all: 328 (the installer checks its copy against this figure). ## P1 — extraction + manifest @@ -333,12 +333,14 @@ | `lint_symbol_refs.py` | flag address-named references whose address now has a curated name | Flags address-named references in committed sources whose address now has a curated name | repo symbol/src paths | | `uniquify_type.py` | give each conflicting camp of a same-named type its own name | Gives each conflicting camp of a same-named type its own name so every camp becomes liftable | repo src layout | | `verbatim_check.py` | guard that every inline-assembly body still reproduces its target bytes | Regression guard that every inline-assembly body still reproduces its target bytes | repo src layout | +| `delever_oracle.py` | judge one translation-unit edit by the bytes of its object in under a second | The Phase-36 fast byte oracle: every object's exact build command captured once via make -n -W (the Makefile's own recipe, pad stage and -O0 overrides included), a candidate compiled in place with -o/-MF redirected to scratch and compared with the fleet run's object; --calibrate proves 100 % equality untouched, twin == primary and a positive control before any verdict is trusted | the Makefile's object rules, the twin rule | | `share_census.py` | measure duplicate function bodies across the fleet and assert one source per unique function | The census of byte-identical function classes across every binary with their source forms and verdicts, plus the S1 invariant check with its exception ledger and a fixture self-test | repo paths, the registry and signature schemas | | `ghidra_apply_symbols.sh` | mirror the curated symbol file into the analysis database with a real save | Mirrors the curated symbol file into the analysis program headlessly, with a real save | repo symbol path, project name | | `frozen.py` | refuse, from one place, the command line of a tool the project has frozen | The one refusal a FROZEN tool prints from its main(): the tool, the successor and why; imports never exit (libraries stay usable) | nothing | | `verbatim_target_s.py` | regenerate a splitter-format target disassembly for a function no longer stubbed | Regenerates a splitter-format target disassembly for a function that is no longer a stub; --gas emits the assemblable gas-syntax form ($-registers, .L labels, noreorder) that a web diff service accepts as a pasted target | repo build/asm layout | | `share_body_cycle.sh` | run the share-body batch cycle unattended: batch, verify by exit code, log, commit, periodic clean fleet check | The Phase-35 T5 driver for bucket new: per batch share_body --apply --bucket new --batches 1 --label new, the gated N/N line read, the phase log entry appended, the bank committed the moment it is green, the clean fleet run every N batches — stops on the first red | repo paths, the phase-log format, the fleet count from config/check.*.sha | | `share_body.py` | share one byte-identical function class across its binaries through an include-at-site header, gated per binary | The Phase-35 successor of dedup_propagate + dedup_extend for the include-at-site form: exemplar by majority text, the header written once, every private copy replaced by the include at its position, per-binary byte gate with object comparison, bisect on red, the registry appended or extended by text, the exception ledger on refusal; --plan / --apply --bucket extend|new | repo paths, the registry and signature schemas | +| `delever.py` | take register pins, asm statements, volatile and register levers out of matched C, byte-gated per site | The Phase-36 de-lever engine: positional rewrites per lever class (pin -> plain declaration, barrier/launder/keep-alive deleted, a hand-placed instruction -> its C, the zero-register variable -> 0, volatile/register dropped), rung A strip-all and rung B greedy per body through delever_oracle, headers serialized after the TU phase; --probe runs a stratified sample of distinct bodies and prices the campaign with denominators | the census site records, the oracle | | `verbatim_to_stub.py` | turn an inline-assembly body back into a stub the toolchain can reach | Turns an inline-assembly body back into an include-assembly stub | repo src/asm layout | ## PROJECT-ONLY — project-only in code (the shape is a task; the code does not transfer) diff --git a/decomp-architect/corpus/tools/P10/delever.py b/decomp-architect/corpus/tools/P10/delever.py new file mode 100644 index 000000000..22b8de665 --- /dev/null +++ b/decomp-architect/corpus/tools/P10/delever.py @@ -0,0 +1,608 @@ +#!/usr/bin/env python3 +"""delever.py — take the compiler-forcing constructs ("levers") out of matched C, byte-gated per translation unit +(Phase 36; the probe engine at T2, the campaign tool at T3). + + tools/delever.py --probe --sample 150 [--seed 1] [-j 12] # T2: rung A + rung B on a stratified sample of DISTINCT bodies + # -> .run/P36/probe/{probe_results.jsonl,probe_summary.json,probe_table.md} + +THE LADDER PER BODY (deterministic, zero tokens): + rung A strip-all — every removable site of the body rewritten at once (pin -> plain declaration; barrier/launder/keep-alive -> + deleted; a hand-placed instruction -> its C; `$0` pin -> its variable's uses replaced by 0; volatile -> dropped; register -> + dropped), one compile, the object compared with the fleet run's (tools/delever_oracle.py). Measured twice: with the `register` + keyword dropped from the pin (the target form) and with it kept (A'). + rung B greedy — if A differs: from the untouched text, the sites are re-applied one at a time (asm statements first, then pins, + volatile, register); a site whose removal keeps the object identical is REMOVED, one that changes it is NEEDED. +The verdict of a body = the set of NEEDED sites; a body with none is lever-free. Never touched: GTE ops, the manifest's verbatim +bodies, an asm-body (a whole routine — the manifest's DECOMPILE rows are another task's work), file-scope declarations. + +EVERY EDIT IS POSITIONAL on the raw text (line/col from the census), the file is written in place for the compile and restored +from the in-memory snapshot right after (never `git checkout`, R102); a site whose raw token does not match the census is REFUSED +(R43), never guessed. +""" +import argparse +import collections +import json +import os +import pathlib +import random +import re +import sys +import time +from concurrent.futures import ThreadPoolExecutor + +REPO = pathlib.Path(__file__).resolve().parent.parent +sys.path.insert(0, str(REPO / "tools")) +import delever_oracle as oracle # noqa: E402 +import lever_census as lc # noqa: E402 +import share_census as sc # noqa: E402 + +SITES = REPO / ".run" / "P36" / "census" / "lever_sites.jsonl" +PROBE = REPO / ".run" / "P36" / "probe" +REMOVABLE = {("A", "pin"), ("B", "barrier"), ("B", "launder"), ("B", "keepalive"), ("B", "instruction"), + ("C", "cast"), ("C", "decl-body"), ("D", "register")} +ORDER = {"barrier": 0, "launder": 1, "keepalive": 2, "instruction": 3, "pin": 4, "cast": 5, "decl-body": 6, "register": 7} +STRLIT = lc.STRLIT + + +class Refuse(Exception): + pass + + +# ---------------------------------------------------------------------------------------------------------------------- +# text helpers (positions on the RAW text; comments masked to equal-length spaces so a ';' in a comment never ends a statement) +# ---------------------------------------------------------------------------------------------------------------------- +def same_len_mask(raw): + return sc._TOK.sub(lambda m: re.sub(r"[^\n]", " ", m.group(0)) if m.group(0)[:2] in ("/*", "//") else m.group(0), raw) + + +def line_starts(text): + ls = [0] + for ln in text.split("\n"): + ls.append(ls[-1] + len(ln) + 1) + return ls + + +def stmt_end(m, pos): + """index just past the ';' that ends the statement starting at pos (paren depth 0, string literals skipped); -1 if none.""" + depth, i, n = 0, pos, len(m) + while i < n: + c = m[i] + if c == '"': + mm = STRLIT.match(m, i) + i = mm.end() if mm else i + 1 + continue + if c == "(": + depth += 1 + elif c == ")": + depth -= 1 + elif c == ";" and depth <= 0: + return i + 1 + elif c == "}" and depth == 0: + return -1 + i += 1 + return -1 + + +def ws_after(m, pos): + i = pos + while i < len(m) and m[i] in " \t": + i += 1 + return i + + +# ---------------------------------------------------------------------------------------------------------------------- +# the rewrite of one site -> [(start, end, replacement)] on the raw text +# ---------------------------------------------------------------------------------------------------------------------- +ASM_HEAD = re.compile(r"(?:__asm__|__asm|asm)\s*(?:__volatile__|volatile)?\s*\(") +PIN_CLAUSE = re.compile(r"\s*(?:__asm__|__asm|asm)\s*\(\s*\"[^\"]*\"\s*\)") +INSTR_TABLE = { + # mnemonic -> (arity, C template) using OUT / IN1 / IN2 / IMM; the operands come from the asm's "=r"(..) / "r"(..) lists + "addu": ("OUT = IN1;", "zero"), "move": ("OUT = IN1;", None), "addiu": ("OUT = IN1 + IMM;", None), "sll": ("OUT = IN1 << IMM;", None), + "srl": ("OUT = (u32)IN1 >> IMM;", None), "and": ("OUT = IN1 & IN2;", None), "andi": ("OUT = IN1 & IMM;", None), + "lui": ("OUT = IMM << 16;", None), "li": ("OUT = IMM;", None), "lw": ("OUT = *(s32 *)((s32)IN1 + IMM);", None), + "lh": ("OUT = *(s16 *)((s32)IN1 + IMM);", None), "la": ("OUT = (s32)&SYM;", None), +} + + +def parse_asm_operands(inner): + """(template, outputs, inputs) — outputs/inputs as [(constraint, expr)]; the asm's own parser rules (lever_census).""" + s = inner.strip() + parts, i, n = [], 0, len(s) + while i < n: + if s[i] in " \t\r\n": + i += 1 + continue + mm = STRLIT.match(s, i) + if not mm: + break + parts.append(mm.group(0)[1:-1]) + i = mm.end() + rest = s[i:].strip() + secs = lc._split_sections(rest[1:]) if rest.startswith(":") else [] + def ops(sec): + out = [] + for mm in re.finditer(r'"([^"]*)"\s*\(', sec): + c = lc._paren_span(sec, mm.end() - 1) + out.append((mm.group(1), sec[mm.end():c].strip())) + return out + outs = ops(secs[0]) if len(secs) > 0 else [] + ins = ops(secs[1]) if len(secs) > 1 else [] + return "".join(parts), outs, ins + + +def instruction_to_c(inner, indent): + """The C statement for a hand-placed single-instruction asm, or None (residue).""" + tmpl, outs, ins = parse_asm_operands(inner) + t = re.sub(r"\\[nt]", " ", tmpl).strip() + if len(outs) != 1: + return None + out_expr = outs[0][1] + allops = [e for _, e in outs] + [e for _, e in ins] + def resolve(tok): + mm = re.fullmatch(r"%(\d+)", tok) + if mm: + k = int(mm.group(1)) + return allops[k] if k < len(allops) else None + return None + IMM = r"-?(?:0x[0-9A-Fa-f]+|\d+)" + # two-instruction address / constant materializations (one C expression each) + mm = re.fullmatch(r"lui\s+%0\s*,\s*%%hi\((\w+)\)\s*;?\s*addiu\s+%0\s*,\s*%0\s*,\s*%%lo\(\1\)", t) + if mm: + return f"{indent}{out_expr} = (s32)&{mm.group(1)};" + mm = re.fullmatch(r"lui\s+%0\s*,\s*(" + IMM + r")\s*;?\s*ori\s+%0\s*,\s*%0\s*,\s*(" + IMM + r")", t) + if mm: + return f"{indent}{out_expr} = ({mm.group(1)} << 16) | {mm.group(2)};" + if ";" in t or "\n" in t: + return None # other multi-instruction templates are residue + toks = [x for x in re.split(r"[\s,]+", t) if x] + if not toks: + return None + mnem = toks[0].lower() + if mnem not in INSTR_TABLE: + return None + templ, note = INSTR_TABLE[mnem] + refs = [x for x in toks[1:]] + if mnem == "addu": + if len(refs) != 3: + return None + if refs[2] in ("$zero", "$0"): + in1 = resolve(refs[1]) + return None if in1 is None else f"{indent}{out_expr} = {in1};" + in1, in2 = resolve(refs[1]), resolve(refs[2]) + return None if in1 is None or in2 is None else f"{indent}{out_expr} = (s32){in1} + (s32){in2};" + if mnem == "addiu" and len(refs) == 3 and refs[1] in ("$zero", "$0") and re.fullmatch(IMM, refs[2]): + return f"{indent}{out_expr} = {refs[2]};" + if mnem == "move": + if len(refs) != 2: + return None + in1 = resolve(refs[1]) + return None if in1 is None else f"{indent}{out_expr} = {in1};" + if mnem == "la": + if len(refs) != 2 or not re.fullmatch(r"[A-Za-z_]\w*", refs[1]): + return None + return f"{indent}{out_expr} = (s32)&{refs[1]};" + if mnem in ("lw", "lh"): + mm = re.fullmatch(r"(-?\w+)\((%\d+)\)", refs[1]) if len(refs) == 2 else None + if not mm: + return None + base = resolve(mm.group(2)) + return None if base is None else templ.replace("OUT", out_expr).replace("IN1", base).replace("IMM", mm.group(1)) and f"{indent}{templ.replace('OUT', out_expr).replace('IN1', base).replace('IMM', mm.group(1))}" + if mnem in ("addiu", "sll", "srl", "andi"): + if len(refs) != 3: + return None + in1 = resolve(refs[1]) + if in1 is None or not re.fullmatch(IMM, refs[2]): + return None + return f"{indent}{templ.replace('OUT', out_expr).replace('IN1', '(s32)' + in1).replace('IMM', refs[2])}" + if mnem == "and": + if len(refs) != 3: + return None + in1, in2 = resolve(refs[1]), resolve(refs[2]) + return None if in1 is None or in2 is None else f"{indent}{out_expr} = (s32){in1} & (s32){in2};" + if mnem in ("lui", "li"): + if len(refs) != 2 or not re.fullmatch(r"-?(?:0x[0-9A-Fa-f]+|\d+)", refs[1]): + return None + return f"{indent}{templ.replace('OUT', out_expr).replace('IMM', refs[1])}" + return None + + +def site_edits(raw, m, ls, site, keep_register=False): + """[(start, end, replacement)] for one site, or raise Refuse. `m` = same_len_mask(raw).""" + pos = ls[site["line"] - 1] + site["col"] - 1 + cls, kind = site["cls"], site["kind"] + indent_start = m.rfind("\n", 0, pos) + 1 + indent = re.match(r"[ \t]*", raw[indent_start:pos]).group(0) + if cls == "A": + if not m.startswith("register", pos): + raise Refuse(f"token mismatch at {site['tu']}:{site['line']}: expected `register`") + e = stmt_end(m, pos) + if e < 0: + raise Refuse(f"no statement end for the pin at {site['tu']}:{site['line']}") + stmt = raw[pos:e] + if site.get("zero"): + # the zero-register variable: delete the declaration, replace every use in the body by 0 + mm = re.search(r"([A-Za-z_]\w*)\s*(?:__asm__|__asm|asm)\s*\(", stmt) + if not mm: + raise Refuse("zero pin without a name") + name = mm.group(1) + edits = [(indent_start if raw[indent_start:pos].strip() == "" else pos, e + (1 if raw[e:e + 1] == "\n" and raw[indent_start:pos].strip() == "" else 0), "")] + b0, b1 = ls[site["fn_line"] - 1], ls[site["fn_end"]] - 1 + for um in re.finditer(r"\b%s\b" % re.escape(name), m[b0:b1]): + s = b0 + um.start() + if s < pos or s >= e: + edits.append((s, s + len(name), "0")) + return edits + new = stmt if keep_register else re.sub(r"\bregister\b[ \t]*", "", stmt, count=1) + new = PIN_CLAUSE.sub("", new) + return [(pos, e, new)] + if cls == "B" and site.get("via"): + name = site["via"] + if not m.startswith(name, pos): + raise Refuse(f"token mismatch at {site['tu']}:{site['line']}: expected `{name}(`") + if kind not in ("barrier", "launder", "keepalive"): + raise Refuse(f"macro-carried {kind} is residue") + e = stmt_end(m, pos) + if e < 0: + raise Refuse("no statement end for the macro use") + whole_line = raw[indent_start:pos].strip() == "" and raw[e:ws_after(m, e)].strip() == "" and raw[ws_after(m, e):ws_after(m, e) + 1] == "\n" + return [(indent_start, ws_after(m, e) + 1, "")] if whole_line else [(pos, e, "")] + if cls == "B": + if not ASM_HEAD.match(m, pos): + raise Refuse(f"token mismatch at {site['tu']}:{site['line']}: expected an asm statement") + o = m.find("(", pos) + c = lc._paren_span(m, o) + e = stmt_end(m, pos) + if c < 0 or e < 0: + raise Refuse("unterminated asm statement") + if kind in ("barrier", "launder", "keepalive"): + new = "" + elif kind == "instruction": + new = instruction_to_c(m[o + 1:c] if '"' in m[o + 1:c] else raw[o + 1:c], "") + if new is None: + raise Refuse(f"instruction `{site['detail']}` has no C spelling in the table") + new = new.strip() + else: + raise Refuse(f"asm kind {kind} is not removable") + whole_line = raw[indent_start:pos].strip() == "" and raw[e:ws_after(m, e)].strip() == "" and raw[ws_after(m, e):ws_after(m, e) + 1] == "\n" + if new == "" and whole_line: + return [(indent_start, ws_after(m, e) + 1, "")] + return [(pos, e, new)] + if cls == "C": + if not m.startswith("volatile", pos): + raise Refuse(f"token mismatch at {site['tu']}:{site['line']}: expected `volatile`") + return [(pos, ws_after(m, pos + len("volatile")), "")] + if cls == "D": + if not m.startswith("register", pos): + raise Refuse(f"token mismatch at {site['tu']}:{site['line']}: expected `register`") + return [(pos, ws_after(m, pos + len("register")), "")] + raise Refuse(f"class {cls}/{kind} is not removable") + + +def apply_edits(raw, edits): + """Splice non-overlapping edits (bottom-up). Overlap -> Refuse.""" + es = sorted(edits, key=lambda x: (x[0], x[1])) + for a, b in zip(es, es[1:]): + if b[0] < a[1]: + raise Refuse(f"overlapping edits at {a[0]}..{a[1]} / {b[0]}..{b[1]}") + out = raw + for s, e, r in sorted(es, key=lambda x: -x[0]): + out = out[:s] + r + out[e:] + return out + + +# ---------------------------------------------------------------------------------------------------------------------- +# the population +# ---------------------------------------------------------------------------------------------------------------------- +def load_sites(): + return [json.loads(l) for l in SITES.read_text().splitlines() if l.strip()] + + +def bodies_from_sites(sites): + bodies = {} + for s in sites: + if not s.get("fn"): + continue + b = bodies.setdefault((s["tu"], s["fn"]), dict(tu=s["tu"], fn=s["fn"], fn_line=s["fn_line"], fn_end=s["fn_end"], nhash=s.get("nhash"), + aliases=s["aliases"], header=s.get("header", False), sites=[], frozen=[])) + if (s["cls"], s["kind"]) in REMOVABLE: + b["sites"].append(s) + else: + b["frozen"].append(s) + return bodies + + +def kind_of(tu): + return "shared" if tu.startswith("src/shared/") else "ov" if tu.startswith("src/ov_") else "md" if tu.startswith("src/md_") \ + else "resident" if tu.startswith("src/resident/") else "main" + + +def includers(): + """header rel -> [TU rel] from the #include lines of every TU (the recipe to compile a header's body is an includer's).""" + inc = collections.defaultdict(list) + for p in sorted((REPO / "src").rglob("*.c")): + rel = p.relative_to(REPO).as_posix() + text = p.read_text(errors="surrogateescape") + for mm in sc.INCLUDE_LINE.finditer(sc.mask_text(text)): + inc[os.path.normpath(os.path.join(os.path.dirname(rel), mm.group(1)))].append(rel) + return inc + + +def features(b): + ks = collections.Counter(s["kind"] for s in b["sites"]) + n = len(b["sites"]) + mix = "pins-only" if set(ks) <= {"pin"} else "asm-only" if not (set(ks) & {"pin", "cast", "decl-body", "register"}) else "mixed" + return dict(kind=kind_of(b["tu"]), n=n, bucket=("1" if n == 1 else "2-4" if n <= 4 else "5-9" if n <= 9 else "10+"), mix=mix, + zero=any(s.get("zero") for s in b["sites"]), init=any(s.get("init") for s in b["sites"] if s["kind"] == "pin"), + instr=any(s["kind"] == "instruction" for s in b["sites"]), cast=any(s["kind"] == "cast" for s in b["sites"]), + register=any(s["kind"] == "register" for s in b["sites"]), volatile=any(s["cls"] == "C" for s in b["sites"]), + launder=any(s["kind"] == "launder" for s in b["sites"]), barrier=any(s["kind"] == "barrier" for s in b["sites"]), + keepalive=any(s["kind"] == "keepalive" for s in b["sites"])) + + +def stratified_sample(bodies, n, seed): + rnd = random.Random(seed) + # one exemplar per normalized class + by_class = {} + for key, b in bodies.items(): + if not b["sites"]: + continue + h = b["nhash"] or key + cur = by_class.get(h) + pref = {"main": 0, "resident": 1, "md": 2, "shared": 3, "ov": 4}[kind_of(b["tu"])] + if cur is None or pref < cur[0]: + by_class[h] = (pref, key) + pool = [bodies[k] for _, k in by_class.values()] + rnd.shuffle(pool) + # quotas scale with --sample (the shape of the population: main/resident/md are few but distinct, overlays are many) + base = {"main": 20, "resident": 16, "md": 15, "shared": 20, "ov": 79} + scale = n / sum(base.values()) + quota = {k: max(3, int(round(v * scale))) for k, v in base.items()} + picked, seen = [], set() + for kind, q in quota.items(): + cands = [b for b in pool if kind_of(b["tu"]) == kind] + # round-robin over (bucket, mix) + groups = collections.defaultdict(list) + for b in cands: + f = features(b) + groups[(f["bucket"], f["mix"])].append(b) + keys = sorted(groups) + i = 0 + while len([b for b in picked if kind_of(b["tu"]) == kind]) < q and any(groups[k] for k in keys): + k = keys[i % len(keys)] + i += 1 + if groups[k]: + b = groups[k].pop() + if (b["tu"], b["fn"]) not in seen: + picked.append(b) + seen.add((b["tu"], b["fn"])) + # the special features, topped up from the pool + for flag, want in (("zero", 10), ("init", 10), ("instr", 12), ("cast", 8), ("register", 5), ("launder", 8), ("keepalive", 6)): + have = sum(1 for b in picked if features(b)[flag]) + for b in pool: + if have >= want: + break + if (b["tu"], b["fn"]) not in seen and features(b)[flag]: + picked.append(b) + seen.add((b["tu"], b["fn"])) + have += 1 + return picked + + +# ---------------------------------------------------------------------------------------------------------------------- +# the ladder on one body +# ---------------------------------------------------------------------------------------------------------------------- +def run_body(b, recipe, write_path, raw, m, ls, log): + """Returns the per-body result dict; the caller restores the file.""" + sites = sorted(b["sites"], key=lambda s: (ORDER.get(s["kind"], 9), s["line"], s["col"])) + res = dict(tu=b["tu"], fn=b["fn"], nhash=b["nhash"], kind=kind_of(b["tu"]), aliases=b["aliases"], header=b["header"], + obj=recipe["obj"], n_sites=len(sites), sites=[dict(kind=s["kind"], cls=s["cls"], detail=s["detail"], line=s["line"]) for s in sites], + refused=[], compiles=0, seconds=0.0, features=features(b)) + per_site, edits_all, edits_keep = {}, [], [] + usable = [] + for s in sites: + try: + ed = site_edits(raw, m, ls, s) + edk = site_edits(raw, m, ls, s, keep_register=True) if s["kind"] == "pin" else ed + per_site[id(s)] = (ed, edk) + usable.append(s) + edits_all += ed + edits_keep += edk + except Refuse as ex: + res["refused"].append(dict(kind=s["kind"], line=s["line"], why=str(ex))) + res["n_usable"] = len(usable) + if not usable: + res["verdict"] = "NOTHING-USABLE" + return res + + def judge(edits, tag): + try: + cand = apply_edits(raw, edits) + except Refuse as ex: + return "REFUSED", str(ex) + if cand == raw: + return "REFUSED", "no-op edit (the candidate equals the original — an identical object would prove nothing, R37)" + v, dt, err = oracle.judge(recipe, cand, tag=tag, write_path=write_path) + res["compiles"] += 1 + res["seconds"] += dt + return v, err + # rung A (register dropped) and A' (register kept) + vA, errA = judge(edits_all, "A") + res["rung_A"] = vA + res["rung_A_err"] = errA[:200] if vA == "COMPILE-ERROR" else "" + if any(s["kind"] == "pin" for s in usable): + vK, _ = judge(edits_keep, "Ak") + res["rung_A_keep_register"] = vK + else: + res["rung_A_keep_register"] = vA + if vA == "IDENTICAL": + res["removed"] = [dict(kind=s["kind"], detail=s["detail"], line=s["line"]) for s in usable] + res["needed"] = [] + res["verdict"] = "LEVER-FREE" + return res + # rung B greedy + accepted, needed, removed = [], [], [] + for s in usable: + ed, _ = per_site[id(s)] + v, err = judge(accepted + ed, "B") + if v == "IDENTICAL": + accepted += ed + removed.append(dict(kind=s["kind"], detail=s["detail"], line=s["line"])) + else: + needed.append(dict(kind=s["kind"], detail=s["detail"], line=s["line"], verdict=v, err=(err[:120] if v == "COMPILE-ERROR" else ""))) + res["removed"], res["needed"] = removed, needed + res["verdict"] = "LEVER-FREE" if not needed else "RESIDUE" + log(f" {b['tu']}:{b['fn']} A={vA} B: removed {len(removed)} needed {len(needed)} compiles {res['compiles']}") + return res + + +def probe(sample_n, seed, jobs): + PROBE.mkdir(parents=True, exist_ok=True) + ok, why = oracle.calibration_current() + if not ok: + sys.exit(f"delever: the oracle's calibration is not current ({why}) — run tools/delever_oracle.py --calibrate first (R56)") + recipes = oracle.load_recipes()["recipes"] + sites = load_sites() + bodies = bodies_from_sites(sites) + inc = includers() + sample = stratified_sample(bodies, sample_n, seed) + log_f = open(PROBE / "probe_log.txt", "a") + + def log(msg): + line = f"{time.strftime('%H:%M:%S')} {msg}" + print(line, flush=True) + log_f.write(line + "\n") + log_f.flush() + log(f"probe: {len(sample)} bodies sampled from {len(bodies)} lever bodies ({len({b['nhash'] for b in bodies.values() if b['sites']})} distinct classes); seed {seed}") + # group by the FILE that gets written (a TU, or a header) — one worker per file + by_file = collections.defaultdict(list) + for b in sample: + by_file[b["tu"]].append(b) + + def work(tu): + out = [] + if tu.endswith(".h"): + tus = [t for t in inc.get(tu, []) if ("build/" + t[:-2] + ".o") in recipes] + if not tus: + return [dict(tu=tu, fn=b["fn"], verdict="NO-INCLUDER-RECIPE") for b in by_file[tu]] + recipe = recipes["build/" + tus[0][:-2] + ".o"] + write_path = tu + else: + obj = "build/" + tu[:-2] + ".o" + if obj not in recipes: + return [dict(tu=tu, fn=b["fn"], verdict="NO-RECIPE") for b in by_file[tu]] + recipe = recipes[obj] + write_path = None + path = REPO / tu + raw = path.read_text(errors="surrogateescape") + m = same_len_mask(raw) + ls = line_starts(raw) + try: + for b in by_file[tu]: + out.append(run_body(b, recipe, write_path, raw, m, ls, log)) + finally: + path.write_text(raw, errors="surrogateescape") + return out + results = [] + t0 = time.time() + # phase 1: translation units, one worker per TU (no two candidates of one file at once, and no header is being edited); + # phase 2: shared headers, SERIAL — a header's edit reaches every includer, so nothing else may compile meanwhile + # (the dry run's three "compile errors" were two workers' candidates crossing inside one includer) + tu_files = sorted(f for f in by_file if not f.endswith(".h")) + hdr_files = sorted(f for f in by_file if f.endswith(".h")) + with ThreadPoolExecutor(max_workers=jobs) as ex: + for r in ex.map(work, tu_files): + results.extend(r) + for f in hdr_files: + results.extend(work(f)) + wall = time.time() - t0 + with open(PROBE / "probe_results.jsonl", "w") as f: + for r in results: + f.write(json.dumps(r) + "\n") + summary = summarize(results, bodies, wall, seed) + (PROBE / "probe_summary.json").write_text(json.dumps(summary, indent=1) + "\n") + (PROBE / "probe_table.md").write_text(render(summary) + "\n") + print(render(summary)) + return summary + + +def summarize(results, bodies, wall, seed): + judged = [r for r in results if r.get("verdict") in ("LEVER-FREE", "RESIDUE")] + def pct(a, b): + return round(100.0 * a / b, 1) if b else None + by_kind = {} + for k in ("main", "resident", "md", "shared", "ov"): + rs = [r for r in judged if r["kind"] == k] + if not rs: + continue + by_kind[k] = dict(bodies=len(rs), A_identical=sum(1 for r in rs if r["rung_A"] == "IDENTICAL"), + A_keep_register_identical=sum(1 for r in rs if r.get("rung_A_keep_register") == "IDENTICAL"), + lever_free=sum(1 for r in rs if r["verdict"] == "LEVER-FREE"), + sites=sum(r["n_usable"] for r in rs), removed=sum(len(r["removed"]) for r in rs), needed=sum(len(r["needed"]) for r in rs), + compiles=sum(r["compiles"] for r in rs), mean_s_per_compile=round(sum(r["seconds"] for r in rs) / max(sum(r["compiles"] for r in rs), 1), 3)) + needed_kinds = collections.Counter(n["kind"] for r in judged for n in r["needed"]) + needed_detail = collections.Counter(f"{n['kind']}:{n['detail']}" for r in judged for n in r["needed"]) + removed_kinds = collections.Counter(x["kind"] for r in judged for x in r["removed"]) + refused = collections.Counter(x["why"].split(":")[0][:60] for r in results for x in r.get("refused", [])) + sites_total = sum(r["n_usable"] for r in judged) + sites_needed = sum(len(r["needed"]) for r in judged) + flags = {} + for flag in ("zero", "init", "instr", "cast", "register", "launder", "barrier", "keepalive", "volatile"): + rs = [r for r in judged if r["features"].get(flag)] + flags[flag] = dict(bodies=len(rs), lever_free=sum(1 for r in rs if r["verdict"] == "LEVER-FREE")) + pop_bodies = sum(1 for b in bodies.values() if b["sites"]) + pop_sites = sum(len(b["sites"]) for b in bodies.values()) + mean_compiles = sum(r["compiles"] for r in judged) / max(len(judged), 1) + mean_s = sum(r["seconds"] for r in judged) / max(sum(r["compiles"] for r in judged), 1) + return dict(generated=time.strftime("%Y-%m-%d %H:%M"), seed=seed, sampled=len(results), judged=len(judged), + not_judged=collections.Counter(r.get("verdict") for r in results if r not in judged), + rung_A_identical=sum(1 for r in judged if r["rung_A"] == "IDENTICAL"), + rung_A_keep_register_identical=sum(1 for r in judged if r.get("rung_A_keep_register") == "IDENTICAL"), + lever_free_after_B=sum(1 for r in judged if r["verdict"] == "LEVER-FREE"), + sites=dict(total=sites_total, removed=sites_total - sites_needed, needed=sites_needed, pct_removed=pct(sites_total - sites_needed, sites_total)), + needed_by_kind=dict(needed_kinds), needed_by_detail=dict(needed_detail.most_common(30)), removed_by_kind=dict(removed_kinds), + refused=dict(refused), by_kind=by_kind, flags=flags, + compiles=sum(r["compiles"] for r in judged), mean_compiles_per_body=round(mean_compiles, 2), mean_s_per_compile=round(mean_s, 3), + wall_s=round(wall, 1), + population=dict(bodies=pop_bodies, sites=pop_sites), + pricing=dict(T4_compiles_est=int(pop_bodies * mean_compiles), T4_cpu_hours_est=round(pop_bodies * mean_compiles * mean_s / 3600, 2), + T4_wall_hours_at_16_est=round(pop_bodies * mean_compiles * mean_s / 3600 / 12, 2), + residue_bodies_est=int(pop_bodies * (1 - (sum(1 for r in judged if r["verdict"] == "LEVER-FREE") / max(len(judged), 1)))), + residue_sites_est=int(pop_sites * (sites_needed / max(sites_total, 1))))) + + +def render(s): + L = [f"# probe — {s['sampled']} bodies sampled, {s['judged']} judged (seed {s['seed']}, {s['generated']}, wall {s['wall_s']} s)", "", + f"- rung A (strip-all) identical: **{s['rung_A_identical']} / {s['judged']}** (register dropped) · {s['rung_A_keep_register_identical']} with `register` kept", + f"- lever-free after rung B: **{s['lever_free_after_B']} / {s['judged']}**", + f"- sites: {s['sites']['total']} usable · removed {s['sites']['removed']} ({s['sites']['pct_removed']} %) · needed {s['sites']['needed']}", + f"- needed by kind: {s['needed_by_kind']}", f"- needed by detail (top): {s['needed_by_detail']}", + f"- removed by kind: {s['removed_by_kind']}", f"- refused (rewrite not applicable): {s['refused']}", + f"- compiles {s['compiles']} · mean {s['mean_compiles_per_body']} per body · {s['mean_s_per_compile']} s per compile", "", + "| kind | bodies | A identical | A (register kept) | lever-free after B | sites | removed | needed | compiles | s/compile |", "|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|"] + for k, v in s["by_kind"].items(): + L.append(f"| {k} | {v['bodies']} | {v['A_identical']} | {v['A_keep_register_identical']} | {v['lever_free']} | {v['sites']} | {v['removed']} | {v['needed']} | {v['compiles']} | {v['mean_s_per_compile']} |") + L += ["", "| feature | bodies | lever-free |", "|---|---:|---:|"] + for k, v in s["flags"].items(): + L.append(f"| {k} | {v['bodies']} | {v['lever_free']} |") + p = s["pricing"] + L += ["", f"**Pricing (R41; population {s['population']['bodies']:,} lever bodies / {s['population']['sites']:,} removable sites):** " + f"T4 ≈ {p['T4_compiles_est']:,} compiles ≈ {p['T4_cpu_hours_est']} CPU-h ≈ {p['T4_wall_hours_at_16_est']} h wall at 12 workers; " + f"residue after the mechanical ladder ≈ {p['residue_bodies_est']:,} bodies / {p['residue_sites_est']:,} sites (the sample's rates applied to the population)."] + return "\n".join(L) + + +def main(): + ap = argparse.ArgumentParser(description=__doc__.split("\n")[0]) + ap.add_argument("--probe", action="store_true") + ap.add_argument("--sample", type=int, default=150) + ap.add_argument("--seed", type=int, default=1) + ap.add_argument("-j", "--jobs", type=int, default=12) + a = ap.parse_args() + if a.probe: + probe(a.sample, a.seed, a.jobs) + return + ap.print_help() + + +if __name__ == "__main__": + main() diff --git a/decomp-architect/corpus/tools/P10/delever_oracle.py b/decomp-architect/corpus/tools/P10/delever_oracle.py new file mode 100644 index 000000000..f8ce2f640 --- /dev/null +++ b/decomp-architect/corpus/tools/P10/delever_oracle.py @@ -0,0 +1,303 @@ +#!/usr/bin/env python3 +"""delever_oracle.py — the fast byte oracle for a single-translation-unit source edit (Phase 36 T2, 2026-09-09). + + tools/delever_oracle.py --recipes [-j N] # capture every object's exact build command via `make -n -W` -> .run/P36/delever/recipes.json + tools/delever_oracle.py --calibrate ov_SC04_011 main # compile every TU of the named binaries UNTOUCHED: 100 % object equality with build/, + # twin == primary, then the POSITIVE control (a nop injected -> DIFFERS); exit 1 otherwise + tools/delever_oracle.py --status # is the calibration current for this HEAD / Makefile? + +THE QUESTION IT ANSWERS: "does this candidate text for TU X still produce the byte-identical object?" — and only that. The whole-binary +gate (`make check BINARY=…`, and the clean fleet run, R22) remains the arbiter of every batch; this oracle is the inner loop that +decides one lever site at a time in ~0.3–5 s instead of ~90 s. + +HOW (the design settled at gate 1 + the plan agent's review, R57: the instrument's own path is part of the instrument): + * the recipe of every object is the Makefile's OWN command, printed by `make -n -W BINARY=` (0.04–0.15 s each; + captured once per Makefile/config state, ~4,300 objects at -j16 in ~30 s). It carries the per-object -O0 overrides, the + jtbl_rodata_pads stage of main/module objects, the reorder island, the twin rule (the primary's source into the twin's object). + tools/compile_only.py's re-typed pipeline omits the pad stage and is NOT used. + * a candidate compiles IN PLACE at the real path (objects embed the source path as an STT_FILE symbol) with `-o` and `-MF` + redirected to scratch — build/ is never written, so the baseline object of the fleet run stays the reference; the TU's text is + restored from the caller's in-memory snapshot (never `git checkout`, R102). Workers own whole TUs: no two candidates of one TU at once. + * verdict = whole-object byte equality with build/ (R56: build/ must come from a clean fleet run of THIS tree — --calibrate proves it). + * CALIBRATION (R39/R57): every sampled TU compiled untouched reproduces its object byte for byte; a twin's object equals its primary's; + a deliberately altered body reports DIFFERS. `.run/P36/delever/calibration.json` records HEAD, the Makefile/config mtimes and the + per-object seconds (the scheduler's cost model); an --apply of the de-lever tool refuses without a current calibration. +""" +import argparse +import hashlib +import json +import os +import pathlib +import re +import subprocess +import sys +import time +from concurrent.futures import ThreadPoolExecutor + +REPO = pathlib.Path(__file__).resolve().parent.parent +sys.path.insert(0, str(REPO / "tools")) + +RUN = REPO / ".run" / "P36" / "delever" +RECIPES = RUN / "recipes.json" +CALIB = RUN / "calibration.json" +SCRATCH = RUN / "obj" +RECIPE_RE = re.compile(r"^set -o pipefail; (.*) -o (build/\S+\.o)$") + + +# ---------------------------------------------------------------------------------------------------------------------- +# enumeration: (alias, src, obj) for every object of every binary — derived from the Makefile's own rules (R33) +# ---------------------------------------------------------------------------------------------------------------------- +def src_dirs(): + import corpus + return dict(corpus.src_dirs()) + + +def twin_of_map(): + import share_census + return share_census.twin_of_map() + + +def objects(aliases=None): + """[(alias, src_rel, obj_rel)] — the pattern rule build/src/%.o: src/%.c, and for a twin the primary's sources renamed into the + twin's own object names (Makefile twin block).""" + import compile_only + dirs = src_dirs() + twins = twin_of_map() + out = [] + for a in sorted(dirs): + if aliases and a not in aliases: + continue + prim = twins.get(a) + for p in compile_only.tus_of(a, dirs): + src = p.relative_to(REPO).as_posix() + if prim: + # src//.c -> build/src//.o + stem = p.name[:-2] + if not stem.startswith(prim): + continue + obj = f"build/src/{a}/{a}{stem[len(prim):]}.o" + else: + obj = "build/" + src[:-2] + ".o" + out.append((a, src, obj)) + return out + + +def config_stamp(): + files = [REPO / "Makefile"] + sorted((REPO / "config").glob("*.mk")) + h = hashlib.sha1() + for f in files: + st = f.stat() + h.update(f"{f.name}|{int(st.st_mtime)}|{st.st_size}\n".encode()) + return h.hexdigest()[:12] + + +def head(): + return subprocess.run(["git", "rev-parse", "--short", "HEAD"], cwd=REPO, capture_output=True, text=True).stdout.strip() + + +# ---------------------------------------------------------------------------------------------------------------------- +# recipes +# ---------------------------------------------------------------------------------------------------------------------- +def capture_recipe(alias, src, obj): + r = subprocess.run(["make", "-n", "-W", src, obj, f"BINARY={alias}"], cwd=REPO, capture_output=True, text=True) + if r.returncode != 0: + return None, f"make -n rc={r.returncode}: {r.stderr.strip()[:200]}" + lines = [ln for ln in r.stdout.splitlines() if ln.startswith("set -o pipefail;")] + if len(lines) != 1: + return None, f"expected ONE pipeline line, got {len(lines)}" + m = RECIPE_RE.match(lines[0]) + if not m or m.group(2) != obj: + return None, f"unparsed recipe: {lines[0][:160]}" + return dict(alias=alias, src=src, obj=obj, pipeline=m.group(1)), None + + +def build_recipes(jobs, aliases=None): + objs = objects(aliases) + recipes, errors = {}, [] + t0 = time.time() + with ThreadPoolExecutor(max_workers=jobs) as ex: + for (a, src, obj), (rec, err) in zip(objs, ex.map(lambda t: capture_recipe(*t), objs)): + if rec: + recipes[obj] = rec + else: + errors.append(f"{a} {src} {obj}: {err}") + return dict(stamp=config_stamp(), head=head(), generated=time.strftime("%Y-%m-%d %H:%M"), n=len(recipes), + seconds=round(time.time() - t0, 1), recipes=recipes, errors=errors) + + +def load_recipes(refresh=False, jobs=16): + if RECIPES.exists() and not refresh: + d = json.loads(RECIPES.read_text()) + if d.get("stamp") == config_stamp(): + return d + d = build_recipes(jobs) + RUN.mkdir(parents=True, exist_ok=True) + RECIPES.write_text(json.dumps(d, indent=1) + "\n") + return d + + +# ---------------------------------------------------------------------------------------------------------------------- +# compile + compare +# ---------------------------------------------------------------------------------------------------------------------- +def compile_obj(recipe, text=None, tag="x", write_path=None): + """Compile the recipe's source (with `text` written IN PLACE first — to `write_path` when the edited file is a header the + source includes, else to the source itself; the CALLER restores it) to a scratch object. Returns (bytes | None, seconds, errors).""" + src = REPO / (write_path or recipe["src"]) + obj = recipe["obj"] + out = SCRATCH / (obj[len("build/"):].replace("/", "__")[:-2] + f".{tag}.o") + out.parent.mkdir(parents=True, exist_ok=True) + dep = str(out)[:-2] + ".d" + pipeline = recipe["pipeline"] + pipeline = re.sub(r"-MF \S+", f"-MF {dep}", pipeline, count=1) + cmd = f"set -o pipefail; {pipeline} -o {out}" + if text is not None: + src.write_text(text, errors="surrogateescape") + t0 = time.time() + r = subprocess.run(["bash", "-c", cmd], cwd=REPO, capture_output=True, text=True) + dt = time.time() - t0 + if r.returncode != 0 or not out.exists(): + # gcc 2.7.2 prints errors without the word "error" and the assembler floods stderr with `$at` warnings: keep every + # non-warning line (R103), then the tail + errs = [ln for ln in r.stderr.splitlines() + if ln.strip() and not re.search(r"\bwarning:", ln, re.I) and not ln.startswith(("In file included", " " * 16)) + and ": In function" not in ln] + return None, dt, ("\n".join(errs[:8]) or r.stderr[-400:]) + data = out.read_bytes() + try: + out.unlink() + pathlib.Path(dep).unlink(missing_ok=True) + except OSError: + pass + return data, dt, "" + + +def baseline_bytes(obj): + p = REPO / obj + return p.read_bytes() if p.exists() else None + + +def judge(recipe, text, tag="x", write_path=None): + """(verdict, seconds, err): verdict in IDENTICAL | DIFFERS | COMPILE-ERROR | NO-BASELINE.""" + base = baseline_bytes(recipe["obj"]) + if base is None: + return "NO-BASELINE", 0.0, "" + data, dt, err = compile_obj(recipe, text, tag, write_path) + if data is None: + return "COMPILE-ERROR", dt, err + return ("IDENTICAL" if data == base else "DIFFERS"), dt, "" + + +# ---------------------------------------------------------------------------------------------------------------------- +# calibration +# ---------------------------------------------------------------------------------------------------------------------- +def calibrate(aliases, jobs, recipes): + """Every object of the named binaries compiled UNTOUCHED -> must equal build/; twin == primary; then the positive control.""" + recs = [r for r in recipes["recipes"].values() if r["alias"] in aliases] + if not recs: + sys.exit(f"delever_oracle: no recipes for {aliases} (R43)") + twins = twin_of_map() + results = [] + + def one(r): + v, dt, err = judge(r, None, tag="cal") + return dict(alias=r["alias"], obj=r["obj"], verdict=v, seconds=round(dt, 3), err=err[-200:]) + with ThreadPoolExecutor(max_workers=jobs) as ex: + results = list(ex.map(one, recs)) + ok = sum(1 for x in results if x["verdict"] == "IDENTICAL") + bad = [x for x in results if x["verdict"] != "IDENTICAL"] + # twin == primary on the objects both build + twin_checks = [] + for a in aliases: + prim = twins.get(a) + if not prim: + continue + for r in recipes["recipes"].values(): + if r["alias"] == a: + pobj = r["obj"].replace(f"build/src/{a}/{a}", f"build/src/{prim}/{prim}") + same = baseline_bytes(r["obj"]) == baseline_bytes(pobj) + twin_checks.append(dict(twin=r["obj"], primary=pobj, equal=same)) + twin_bad = [t for t in twin_checks if not t["equal"]] + # the positive control: a nop injected into a REAL function body (the first definition the shared scanner finds in the + # first recipe's source with a body of >= 3 lines) must DIFFER — a verifier that cannot fail is no verifier (R39/R53) + import share_census as sc + ctl = recs[0] + src = REPO / ctl["src"] + orig = src.read_text(errors="surrogateescape") + pos_verdict = "SKIPPED" + defs = [r for r in sc.scan_text(orig, ctl["src"], shared_defs=None) if r["form"] == "def" and r.get("nlines", 0) >= 3 and not r.get("empty")] + if defs: + d = defs[0] + line_starts = [0] + for ln in orig.split("\n"): + line_starts.append(line_starts[-1] + len(ln) + 1) + # at the END of the body (C89: a statement before the declarations is a parse error) + o = orig.rfind("}", line_starts[d["end"] - 1], line_starts[d["end"]]) + if o >= 0: + cand = orig[:o] + ' __asm__("nop");\n' + orig[o:] + try: + pos_verdict, _, err = judge(ctl, cand, tag="ctl") + pos_verdict = pos_verdict if pos_verdict != "COMPILE-ERROR" else f"COMPILE-ERROR ({err[-100:]})" + finally: + src.write_text(orig, errors="surrogateescape") + by_alias = {} + for x in results: + d = by_alias.setdefault(x["alias"], dict(objects=0, identical=0, seconds=0.0)) + d["objects"] += 1 + d["identical"] += x["verdict"] == "IDENTICAL" + d["seconds"] += x["seconds"] + return dict(head=head(), stamp=config_stamp(), generated=time.strftime("%Y-%m-%d %H:%M"), aliases=sorted(aliases), + objects=len(results), identical=ok, failures=bad[:20], twin_checks=len(twin_checks), twin_mismatch=twin_bad[:10], + positive_control=dict(obj=ctl["obj"], verdict=pos_verdict), + per_alias={a: dict(v, mean_s=round(v["seconds"] / max(v["objects"], 1), 3)) for a, v in by_alias.items()}, + per_object_seconds={x["obj"]: x["seconds"] for x in results}, + ok=(not bad and not twin_bad and pos_verdict == "DIFFERS")) + + +def calibration_current(): + if not CALIB.exists(): + return False, "no calibration" + d = json.loads(CALIB.read_text()) + if d.get("head") != head(): + return False, f"calibrated at {d.get('head')}, HEAD is {head()}" + if d.get("stamp") != config_stamp(): + return False, "the Makefile/config changed since the calibration" + return bool(d.get("ok")), ("ok" if d.get("ok") else "the calibration FAILED") + + +def main(): + ap = argparse.ArgumentParser(description=__doc__.split("\n")[0]) + ap.add_argument("--recipes", action="store_true", help="(re)capture every object's recipe") + ap.add_argument("--calibrate", nargs="*", help="binaries to calibrate on (e.g. ov_SC04_011 ov_SC03_015 main)") + ap.add_argument("--status", action="store_true") + ap.add_argument("-j", "--jobs", type=int, default=16) + a = ap.parse_args() + RUN.mkdir(parents=True, exist_ok=True) + if a.status: + ok, why = calibration_current() + print(f"delever_oracle: calibration {'CURRENT' if ok else 'STALE/MISSING'} — {why}") + sys.exit(0 if ok else 1) + if a.recipes: + d = load_recipes(refresh=True, jobs=a.jobs) + print(f"delever_oracle: {d['n']} recipes captured in {d['seconds']} s at -j{a.jobs}; errors {len(d['errors'])}") + for e in d["errors"][:10]: + print(" ", e) + sys.exit(1 if d["errors"] else 0) + if a.calibrate is not None: + recipes = load_recipes(jobs=a.jobs) + t0 = time.time() + d = calibrate(a.calibrate, a.jobs, recipes) + d["seconds"] = round(time.time() - t0, 1) + CALIB.write_text(json.dumps(d, indent=1) + "\n") + print(f"delever_oracle --calibrate {' '.join(d['aliases'])}: {d['identical']}/{d['objects']} objects byte-identical untouched; " + f"twin checks {d['twin_checks']} ({len(d['twin_mismatch'])} mismatch); positive control {d['positive_control']['verdict']} " + f"on {d['positive_control']['obj']}; {d['seconds']} s — {'OK' if d['ok'] else 'FAIL'}") + for a_, v in d["per_alias"].items(): + print(f" {a_:14s} {v['identical']}/{v['objects']} identical, mean {v['mean_s']} s per object") + for f in d["failures"][:10]: + print(" FAIL", f["alias"], f["obj"], f["verdict"], f["err"][-120:]) + sys.exit(0 if d["ok"] else 1) + ap.print_help() + + +if __name__ == "__main__": + main() diff --git a/decomp-architect/corpus/tools/P10/lever_census.py b/decomp-architect/corpus/tools/P10/lever_census.py index e1be4b565..3a2cb9d55 100644 --- a/decomp-architect/corpus/tools/P10/lever_census.py +++ b/decomp-architect/corpus/tools/P10/lever_census.py @@ -405,7 +405,8 @@ def walk_file(raw, rel, is_header): d = span_of_line.get(ln) flat = re.sub(r"\s+", " ", text).strip() # a file-scope asm block keeps its whole template: the manifest match reads its `.globl`/`.ent` name - sites.append(dict(tu=rel, fn=(d["name"] if d else None), fn_line=(d["line"] if d else None), line=ln, + sites.append(dict(tu=rel, fn=(d["name"] if d else None), fn_line=(d["line"] if d else None), fn_end=(d["end"] if d else None), + nhash=(d["nhash"] if d else None), line=ln, col=pos - masked.rfind("\n", 0, pos), cls=cls, kind=kind, detail=detail, text=(flat if (cls == "B" and d is None) else flat[:200]), marked=marked(ln), scope=("body" if d else "file"), **kw)) diff --git a/decomp-architect/tools/MANIFEST.md b/decomp-architect/tools/MANIFEST.md index fc003fd0e..3b4ec1eef 100644 --- a/decomp-architect/tools/MANIFEST.md +++ b/decomp-architect/tools/MANIFEST.md @@ -8,8 +8,8 @@ > its platform SDK need the marked adaptation. The last table lists the tools that are project-only in code (their *shape* is a task; > their code does not transfer). *TODO(platform): the MIPS and PlayStation SDK hard-codes are the ones another platform replaces first.* > -> **Coverage:** 296 tool files in scope (submodules, vendored and downloaded code excluded), of which 296 live rows -> below; per phase: P1 2 · P2 26 · P3 17 · P4 9 · P5 26 · P6 51 · P7 20 · P8 86 · P9 27 · P10 16 · PROJECT-ONLY 16. Superseded tools appear only as pointers to their successor (30 pointer rows); one-offs are omitted. Table rows in all: 326 (the installer checks its copy against this figure). +> **Coverage:** 298 tool files in scope (submodules, vendored and downloaded code excluded), of which 298 live rows +> below; per phase: P1 2 · P2 26 · P3 17 · P4 9 · P5 26 · P6 51 · P7 20 · P8 86 · P9 27 · P10 18 · PROJECT-ONLY 16. Superseded tools appear only as pointers to their successor (30 pointer rows); one-offs are omitted. Table rows in all: 328 (the installer checks its copy against this figure). ## P1 — extraction + manifest @@ -333,12 +333,14 @@ | `lint_symbol_refs.py` | flag address-named references whose address now has a curated name | Flags address-named references in committed sources whose address now has a curated name | repo symbol/src paths | | `uniquify_type.py` | give each conflicting camp of a same-named type its own name | Gives each conflicting camp of a same-named type its own name so every camp becomes liftable | repo src layout | | `verbatim_check.py` | guard that every inline-assembly body still reproduces its target bytes | Regression guard that every inline-assembly body still reproduces its target bytes | repo src layout | +| `delever_oracle.py` | judge one translation-unit edit by the bytes of its object in under a second | The Phase-36 fast byte oracle: every object's exact build command captured once via make -n -W (the Makefile's own recipe, pad stage and -O0 overrides included), a candidate compiled in place with -o/-MF redirected to scratch and compared with the fleet run's object; --calibrate proves 100 % equality untouched, twin == primary and a positive control before any verdict is trusted | the Makefile's object rules, the twin rule | | `share_census.py` | measure duplicate function bodies across the fleet and assert one source per unique function | The census of byte-identical function classes across every binary with their source forms and verdicts, plus the S1 invariant check with its exception ledger and a fixture self-test | repo paths, the registry and signature schemas | | `ghidra_apply_symbols.sh` | mirror the curated symbol file into the analysis database with a real save | Mirrors the curated symbol file into the analysis program headlessly, with a real save | repo symbol path, project name | | `frozen.py` | refuse, from one place, the command line of a tool the project has frozen | The one refusal a FROZEN tool prints from its main(): the tool, the successor and why; imports never exit (libraries stay usable) | nothing | | `verbatim_target_s.py` | regenerate a splitter-format target disassembly for a function no longer stubbed | Regenerates a splitter-format target disassembly for a function that is no longer a stub; --gas emits the assemblable gas-syntax form ($-registers, .L labels, noreorder) that a web diff service accepts as a pasted target | repo build/asm layout | | `share_body_cycle.sh` | run the share-body batch cycle unattended: batch, verify by exit code, log, commit, periodic clean fleet check | The Phase-35 T5 driver for bucket new: per batch share_body --apply --bucket new --batches 1 --label new, the gated N/N line read, the phase log entry appended, the bank committed the moment it is green, the clean fleet run every N batches — stops on the first red | repo paths, the phase-log format, the fleet count from config/check.*.sha | | `share_body.py` | share one byte-identical function class across its binaries through an include-at-site header, gated per binary | The Phase-35 successor of dedup_propagate + dedup_extend for the include-at-site form: exemplar by majority text, the header written once, every private copy replaced by the include at its position, per-binary byte gate with object comparison, bisect on red, the registry appended or extended by text, the exception ledger on refusal; --plan / --apply --bucket extend|new | repo paths, the registry and signature schemas | +| `delever.py` | take register pins, asm statements, volatile and register levers out of matched C, byte-gated per site | The Phase-36 de-lever engine: positional rewrites per lever class (pin -> plain declaration, barrier/launder/keep-alive deleted, a hand-placed instruction -> its C, the zero-register variable -> 0, volatile/register dropped), rung A strip-all and rung B greedy per body through delever_oracle, headers serialized after the TU phase; --probe runs a stratified sample of distinct bodies and prices the campaign with denominators | the census site records, the oracle | | `verbatim_to_stub.py` | turn an inline-assembly body back into a stub the toolchain can reach | Turns an inline-assembly body back into an include-assembly stub | repo src/asm layout | ## PROJECT-ONLY — project-only in code (the shape is a task; the code does not transfer) diff --git a/docs/SETUP.md b/docs/SETUP.md index 2918fd6e8..8909663fb 100644 --- a/docs/SETUP.md +++ b/docs/SETUP.md @@ -783,6 +783,8 @@ Every script under `tools/` (plus the two report make-targets), grouped by purpo | | `tools/tool_census.py [--check | --manifest | --corpus | --all | --consumers FILE]` | **(P33.5 task 13.5)** The tools audit as a derived instrument: two independent enumerations of every tool file under `tools/` (`find` vs `git ls-files`, submodules/vendored/downloaded excluded — they must agree, R34); per tool the docstring line, its SETUP row, its CONSUMERS (Makefile/`.mk` targets, CI, the wave playbook, other tools by import or by name) and hence its class (LIVE · REFERENCED · ORPHAN); the AUTHORED facts live in `config/tool_dictionary.tsv` (phase · portability · the NEED the tool answers · what · what it hard-codes · the retirement verdict with its successor or product) with coverage asserted BOTH ways (R32 — a new tool without a row fails `--check`). Generates `docs/tool-index.md` (the need-keyed dictionary; KEEP-GEN), the kit's `tools/MANIFEST.md` (`--manifest`) and the three verbatim corpora `decomp-architect/corpus/tools//` + `corpus/cookbook/` + `corpus/record/` (the how-to, the decision log, the accelerators, the retrospective, the story, the playbook, the effort map, the gen3 docs, the digest, every PhaseEnd — task 14.5) (`--corpus`; superseded tools as pointer files; sha1-equal to their sources). `--check` in `tools-health`; `make kit-corpus` = `--all`. `--consumers FILE` is the referrer census before any `git mv` of a tool. | | | `tools/share_census.py` | **(P35 T1)** The fleet-wide census of byte-identical function classes and the S1 "one source per unique function" checker (`--check`, `--selftest`, `--scope`, `--strict-macros`, `--strict-text`); its ledger is `config/dedup_exceptions.tsv`; details in the P35 T1 section below. | | | `tools/lever_census.py` | **(P36 T1)** The census of every compiler-forcing construct ("lever") in the fleet's C — register pins, asm statements by kind (barrier / launder / keepalive / instruction / GTE / verbatim-body), volatile levers, bare `register`, plus the deferred asm-label aliases, builtins and attributes — derived from `share_census`'s scanner with a per-token coverage assertion against the raw text, four known-true controls, the `// !FAKE:` marker split, `--check` (0 unmarked pins/asm) and `--check --strict` (0 pins, 0 asm outside the GTE header) gates, `--sites` (every site to `.run/P36/census/lever_sites.jsonl`, the delever ledger's input), `--selftest`. Evidence: `.run/P36/census/lever_census.{json,txt}`; `progress.py` publishes the `levers` block and a README sentence from it. | +| | `tools/delever_oracle.py` | **(P36 T2)** The fast byte oracle for a single-translation-unit edit: `--recipes` captures every object's exact build command through `make -n -W BINARY=` (the Makefile's own pipeline — the jump-table pad stage, the per-object `-O0` overrides, the twin rule — into `.run/P36/delever/recipes.json`, regenerable in ~15 s); a candidate is compiled IN PLACE with `-o`/`-MF` redirected to scratch and its bytes compared with `build/`'s object from the fleet run (build/ is never written); `--calibrate ` proves 100 % equality untouched + twin == primary + a positive control (a nop injected at the end of a real body → DIFFERS) and writes `calibration.json` (HEAD, config stamp, per-object seconds); `--status`. Measured at T2: main 0.08–0.77 s per object, overlays ~0.14 s. | +| | `tools/delever.py` | **(P36 T2/T3)** The de-lever engine. Rewrites per lever class on the raw text at the census's positions (a token mismatch REFUSES, never guesses): pin → plain declaration (type/qualifiers/initializer kept; the `$0` zero-register variable's uses → 0), barrier / launder / keep-alive → deleted (via-macro `SHB(x)` too), a hand-placed instruction → its C (addu-$zero/move/la/lh/addiu/sll/srl/and/andi/lui/li/lw and the lui+addiu / lui+ori pairs), volatile / register → dropped; rung A strip-all then rung B greedy through `delever_oracle`, the file restored from the in-memory snapshot after every compile; TUs in parallel (one worker per file), shared headers SERIAL after the TU phase (a header edit reaches every includer). `--probe --sample N --seed S` runs the ladder on a stratified sample of DISTINCT bodies → `.run/P36/probe/{probe_results.jsonl,probe_summary.json,probe_table.md}` with the pricing (R41). | | | `tools/kit_coverage.py` | **(P33.5 task 14.5)** The kit's DISTILLATION coverage: derives the rule population (every `- **R` of DIGEST §3, asserted contiguous) and the hindsight population (every `## ` heading of `docs/accelerators.md` at numbered-item granularity — 58 at S92) and asserts each is cited by a `provenance:` line of the registry seed / the kernels OR dispositioned in `config/kit_coverage_map.tsv` (`G` / `DK-` / `FOLDED:G` / `ENV` / `PA` / `SEED:` / `KIT:` / `RECORD` / `COOKBOOK` / `NOT-PORTABLE`; unknown ids refused, R43); counts with denominators (R41); rc 1 on any gap. In `tools-health` after `tool_census --check`. Its first run found 26 uncited rules and 21 uncited entries → three new kernels (DK-66–DK-68) and 41 authored dispositions. | | | `decomp-architect/` (the day-one decomp kit) | **(P33.5 tasks 9–14)** The package a new matching-decomp project installs as Phase 0.5 on ProjectArchitect 2.0: `README.md` (the three steps), `intake.decomp.md` (ProjectArchitect's twelve items pre-answered + the phase ladder + the six readability inversions), `SETUP.md` (the installer, Step 0 contract … Step 10 verify + hard stop; `answers: ` for unattended runs), `decomp-architect.md` (the methodology), `templates/` (the firewall pack — `gitignore.decomp`, `firewall.txt`, `audit_public.template.py`, the planted fixture, `no-rom.template.yml` —, the READMEs, `pa-overlays.md`, `registry-E.decomp.md` G1–G67, the skeletons, `PLACEHOLDERS.md`, `layout-contract.md`), `corpus/decomp-kernels.md` (DK-1 … DK-80), the three dictionaries `corpus/tools//` + `corpus/cookbook/` + `corpus/record/` (generated by `make kit-corpus`), `memory-seed/` (18), `tools/MANIFEST.md` (generated). **How it is checked:** `tools/kit_lint.py` (de-specialisation, placeholders, syntax, the gitignore-template diff) + `tools/tool_census.py --check` (the corpora equal their sources) + `tools/gitignore_template_check.py`, all in `tools-health`; the dry-run harness under `.run/P33.5/kit-dryrun/` (`answers.md`, `expected-manifest.txt`, `judge.py`, the install logs and verdicts of runs 1–5 — a kit change is re-verified by a resume on the last throwaway `repo/`, a fresh full run only when SETUP's steps change; the judge compares the real tree's dirty PATH SETS before/after). Wiki page: `docs/wiki/Start-a-new-decomp-project.md`. Split into its own repository after the flip. | | **Verification** | `tools/verify_contract.sh` | **(P33 A5/C8) THE recorded contract run**: 00 tree · 01 check-env · 02 family_hseq · 03 `make clean && extract-all && check-all` · 04 sdk-dual (or a recorded SKIP) · 05 tools-health (zero `[warn]`) · 06 audit-frontier · 07 audit-disc · 08 report; one log per step ending `EXIT=`, abort on the first red (R53), every step asserted by its contract line (R49), `SUMMARY.md` generated → `.run/P33/verify/` (tracked evidence, quoted by `docs/verification.md` §2); step 00 ignores its own output dir. ≈14 min on 32 CPUs. | diff --git a/docs/tool-index.md b/docs/tool-index.md index d52920634..0822411f9 100644 --- a/docs/tool-index.md +++ b/docs/tool-index.md @@ -5,7 +5,7 @@ freshness). The derived columns come from the tree on every run; the authored on dictionary, whose coverage is asserted both ways. Read it by NEED: find the phrase that matches what you are trying to do, then the tool, then what proved it. The same data generates the day-one kit's manifest and its verbatim tool corpus.* -**Coverage:** 296 tool files in scope (submodules, vendored and downloaded code excluded; `find` and `git ls-files` agree) + 38 retired under `tools/sunset/`. Classes: LIVE 237 (a runtime consumer), REFERENCED 29 (a SETUP row only), ORPHAN 30 (neither) — of 296. Portability: PORTABLE 23, ADAPT 256, PROJECT-ONLY 17. +**Coverage:** 298 tool files in scope (submodules, vendored and downloaded code excluded; `find` and `git ls-files` agree) + 38 retired under `tools/sunset/`. Classes: LIVE 238 (a runtime consumer), REFERENCED 30 (a SETUP row only), ORPHAN 30 (neither) — of 298. Portability: PORTABLE 23, ADAPT 258, PROJECT-ONLY 17. ## P1 — extraction + manifest @@ -85,7 +85,7 @@ then what proved it. The same data generates the day-one kit's manifest and its | When you need to… | Tool | What it does | Proven by | Adapt | Class | |---|---|---|---|---|---| -| answer from one derived model whether each function is open, matched or shared | `corpus.py` | The single derived model of the source tree: open, matched or shared, per function | Makefile, api_agent.py, aprop_autodraft.py, aprop_symfix.py (+66) | repo src/config layout | LIVE | +| answer from one derived model whether each function is open, matched or shared | `corpus.py` | The single derived model of the source tree: open, matched or shared, per function | Makefile, api_agent.py, aprop_autodraft.py, aprop_symfix.py (+67) | repo src/config layout | LIVE | | assert every consumer knows about each newly onboarded binary | `audit_binaries.py` | Gate asserting every consumer knows about each newly onboarded binary | Makefile | repo config/registry paths | LIVE | | assert every tracked source is plain text so text searches never skip it | `audit_text_sources.py` | Every tracked C source must be plain text, or text searches silently skip it | .github/workflows/no-rom.yml, Makefile | repo src paths | LIVE | | check that the independent what-remains views agree with the corpus oracle | `audit_frontier.py` | Checks that the independent "what remains" views agree with the corpus oracle | Makefile | repo paths | LIVE | @@ -294,7 +294,7 @@ then what proved it. The same data generates the day-one kit's manifest and its | assert that the distilled kit cites or dispositions every rule and every hindsight entry of the source project (no silent gap in the distillation) | `kit_coverage.py` | Derives the rule and accelerator populations from the digest and the ledger, matches them against the kit's provenance lines, refuses an uncovered entry unless config/kit_coverage_map.tsv dispositions it | Makefile | repo digest/ledger/kit paths + the provenance citation forms | LIVE | | build a progress timeline from the repository's own committed digests | `timeline.py` | Builds a progress timeline from the repository's own committed digests, with a self-check | Makefile | repo doc paths | LIVE | | check that every relative link in the public docs resolves | `doc_links.py` | Checks that every relative link in the public docs resolves and the link policy holds | Makefile, wiki_render.py, wiki_sync.sh | repo doc paths | LIVE | -| compile every eligible translation unit with the pinned toolchain, using no derived bytes | `compile_only.py` | Compiles every eligible translation unit with the pinned toolchain, without any game bytes | .github/workflows/no-rom.yml, lever_census.py, macro_to_header.py, share_census.py | compiler triple, repo makefile parsing | LIVE | +| compile every eligible translation unit with the pinned toolchain, using no derived bytes | `compile_only.py` | Compiles every eligible translation unit with the pinned toolchain, without any game bytes | .github/workflows/no-rom.yml, delever_oracle.py, lever_census.py, macro_to_header.py (+1) | compiler triple, repo makefile parsing | LIVE | | compute and publish progress metrics as report, machine data and per-binary breakdowns | `progress.py` | Computes and publishes the progress metrics as report, JSON and per-binary breakdowns | Makefile, docs/wave-playbook.md, api_agent.py, atlas.py (+33) | repo src/config layout | LIVE | | convert progress metrics into an external progress-report schema | `objdiff_report.py` | Converts the progress JSON into the external progress-report schema | .github/workflows/progress.yml | external report schema | LIVE | | emit the public ordinal-to-hash map and the private old-to-new map | `public_rewrite/build_commit_map.py` | Emits the public ordinal-to-new-hash map and the private old-to-new map | probe_github.sh, resolve_tokens.py | repo doc/scratch paths | LIVE | @@ -322,19 +322,21 @@ then what proved it. The same data generates the day-one kit's manifest and its |---|---|---|---|---|---| | add per-site function-pointer casts so a draft can call a differently typed callee | `cast_call_sites.py` | Adds per-site function-pointer casts so a draft can call a differently typed callee | canon_sig_reconcile.py, cast_self_callers.py, family_sweep.py, gate_stage.py (+4) | repo src layout | LIVE | | apply curated names and signatures inside the analysis tool and save | `ghidra_scripts/ApplySymbols.java` | The in-tool half of that mirror: apply curated names and signatures, save on exit | ghidra_apply_symbols.sh, ghidra_export_annotations.sh, ghidra_rebuild.sh, ExportAnnotations.java (+1) | none | LIVE | -| census every compiler-forcing construct in the C and gate the levers-off phase | `lever_census.py` | The Phase-36 census of lever sites (register pins, asm statements by kind, volatile levers, bare register, asm-label aliases, builtins, attributes; the whole-body hand-asm routines and the GTE ops set apart) derived from the shared-body scanner with a per-token coverage assertion against the raw text, four known-true controls, the !FAKE marker split, --check (0 unmarked pins/asm) and --strict (0 pins, 0 asm) gates, --sites for the delever ledger, a fixture self-test | progress.py, verbatim_check.py | repo paths, the shared-body scanner | LIVE | +| census every compiler-forcing construct in the C and gate the levers-off phase | `lever_census.py` | The Phase-36 census of lever sites (register pins, asm statements by kind, volatile levers, bare register, asm-label aliases, builtins, attributes; the whole-body hand-asm routines and the GTE ops set apart) derived from the shared-body scanner with a per-token coverage assertion against the raw text, four known-true controls, the !FAKE marker split, --check (0 unmarked pins/asm) and --strict (0 pins, 0 asm) gates, --sites for the delever ledger, a fixture self-test | delever.py, progress.py, verbatim_check.py | repo paths, the shared-body scanner | LIVE | | convert a shared-body macro header into per-function plain-C headers included at each site | `macro_to_header.py` | The Phase-35 converter: every DEFINE_ macro body becomes a plain-C header under src/shared// included at its site, the legacy name-parameterized headers converted, the registry text-edited, the macro header deleted; --plan / --apply / --finalize / --verify | share_body.py, tool_census.py | the macro form is this project's; a kit-born project shares headers from its first bank | LIVE | | emit a function's target assembly as an inline-assembly body | `asm_verbatim.py` | Emits the file-scope inline-assembly body form from a disassembly file | docs/wave-playbook.md, draft_prechecks.py, gate_main.py, recover_route.py | repo asm layout | LIVE | | extract inline-defined types and typedefs from a source file into a shared header | `build_engine_types.py` | Extracts inline-defined named types and typedefs from a source file into a shared header | inject_capped_externs.py, lift_types.py, uniquify_type.py | repo shared-header path | LIVE | | flag address-named references whose address now has a curated name | `lint_symbol_refs.py` | Flags address-named references in committed sources whose address now has a curated name | .github/workflows/no-rom.yml, Makefile | repo symbol/src paths | LIVE | | give each conflicting camp of a same-named type its own name | `uniquify_type.py` | Gives each conflicting camp of a same-named type its own name so every camp becomes liftable | — | repo src layout | REFERENCED | | guard that every inline-assembly body still reproduces its target bytes | `verbatim_check.py` | Regression guard that every inline-assembly body still reproduces its target bytes | .github/workflows/no-rom.yml, lever_census.py, progress.py, verbatim_target_s.py (+1) | repo src layout | LIVE | -| measure duplicate function bodies across the fleet and assert one source per unique function | `share_census.py` | The census of byte-identical function classes across every binary with their source forms and verdicts, plus the S1 invariant check with its exception ledger and a fixture self-test | Makefile, audit_binaries.py, dedup_integrate.py, gen_harvest_targets.py (+6) | repo paths, the registry and signature schemas | LIVE | +| judge one translation-unit edit by the bytes of its object in under a second | `delever_oracle.py` | The Phase-36 fast byte oracle: every object's exact build command captured once via make -n -W (the Makefile's own recipe, pad stage and -O0 overrides included), a candidate compiled in place with -o/-MF redirected to scratch and compared with the fleet run's object; --calibrate proves 100 % equality untouched, twin == primary and a positive control before any verdict is trusted | delever.py | the Makefile's object rules, the twin rule | LIVE | +| measure duplicate function bodies across the fleet and assert one source per unique function | `share_census.py` | The census of byte-identical function classes across every binary with their source forms and verdicts, plus the S1 invariant check with its exception ledger and a fixture self-test | Makefile, audit_binaries.py, dedup_integrate.py, delever.py (+8) | repo paths, the registry and signature schemas | LIVE | | mirror the curated symbol file into the analysis database with a real save | `ghidra_apply_symbols.sh` | Mirrors the curated symbol file into the analysis program headlessly, with a real save | — | repo symbol path, project name | REFERENCED | | refuse, from one place, the command line of a tool the project has frozen | `frozen.py` | The one refusal a FROZEN tool prints from its main(): the tool, the successor and why; imports never exit (libraries stay usable) | aprop_autodraft.py, blocker_probe.py, canon_sig_reconcile.py, conform_decls.py (+10) | nothing | LIVE | | regenerate a splitter-format target disassembly for a function no longer stubbed | `verbatim_target_s.py` | Regenerates a splitter-format target disassembly for a function that is no longer a stub; --gas emits the assemblable gas-syntax form ($-registers, .L labels, noreorder) that a web diff service accepts as a pasted target | decompme_replica.sh | repo build/asm layout | LIVE | | run the share-body batch cycle unattended: batch, verify by exit code, log, commit, periodic clean fleet check | `share_body_cycle.sh` | The Phase-35 T5 driver for bucket new: per batch share_body --apply --bucket new --batches 1 --label new, the gated N/N line read, the phase log entry appended, the bank committed the moment it is green, the clean fleet run every N batches — stops on the first red | — | repo paths, the phase-log format, the fleet count from config/check.*.sha | ORPHAN | | share one byte-identical function class across its binaries through an include-at-site header, gated per binary | `share_body.py` | The Phase-35 successor of dedup_propagate + dedup_extend for the include-at-site form: exemplar by majority text, the header written once, every private copy replaced by the include at its position, per-binary byte gate with object comparison, bisect on red, the registry appended or extended by text, the exception ledger on refusal; --plan / --apply --bucket extend|new | aprop_autodraft.py, audit_binaries.py, auto_driver.py, blocker_probe.py (+18) | repo paths, the registry and signature schemas | LIVE | +| take register pins, asm statements, volatile and register levers out of matched C, byte-gated per site | `delever.py` | The Phase-36 de-lever engine: positional rewrites per lever class (pin -> plain declaration, barrier/launder/keep-alive deleted, a hand-placed instruction -> its C, the zero-register variable -> 0, volatile/register dropped), rung A strip-all and rung B greedy per body through delever_oracle, headers serialized after the TU phase; --probe runs a stratified sample of distinct bodies and prices the campaign with denominators | — | the census site records, the oracle | REFERENCED | | turn an inline-assembly body back into a stub the toolchain can reach | `verbatim_to_stub.py` | Turns an inline-assembly body back into an include-assembly stub | — | repo src/asm layout | REFERENCED | ## PROJECT-ONLY — project-only in code (the shape is a task; the code does not transfer) diff --git a/phase-ends/CURRENT_PHASE.md b/phase-ends/CURRENT_PHASE.md index cd16628d3..36ce11b61 100644 --- a/phase-ends/CURRENT_PHASE.md +++ b/phase-ends/CURRENT_PHASE.md @@ -47,9 +47,11 @@ in 15,667 bodies (2,215 distinct)** (+1: the DECOMPILE-NOW body is a lever); `progress.py` counts PERMANENT rows (27) with a dated `corrections` entry; README prose + wiki Home + Where-next + gen3-standards + gen3-handoff updated as dated snapshots; `progress.py --json --readme --check` fresh; `doc_links --strict` green. -- ☐ **T2** (Max) — The probe: the oracle (recipes via `make -n -W`, replayed to a scratch object, `-MF` to scratch), CALIBRATED (sampled - TUs untouched → 100 % object equality with `build/`; twin == primary; an altered body → DIFFERS), then rung A + B on ~150 stratified - distinct bodies; the measured table prices T4–T7 (R41). Verify: the probe table in this log with its command. +- ☑ **T2** (S97) — The probe. `tools/delever_oracle.py`: 4,284 recipes captured in 14 s; `--calibrate ov_SC04_011 ov_SC03_015 ov_SC03_014 + main`: **177/177 objects byte-identical untouched; twin checks 32 (0 mismatch); positive control DIFFERS on build/src/800.o — OK** + (main 0.079 s per object mean, 0.77 s for `800.o`; overlays ~0.14 s). `tools/delever.py --probe --sample 300 --seed 11 -j 12`: **285 + distinct bodies sampled, 283 judged, 1,660 compiles, 151 s wall; rung A identical 53/283; lever-free after rung B 53/283; sites 1,309 + usable → removed 561 (42.9 %), needed 748 (57.1 %)**; the table is in the log entry below and in `.run/P36/probe/probe_table.md`. - ☐ **T3** (Max design) — `tools/delever.py` + `tools/delever_cycle.sh`: rungs A/B/C, group testing per TU with per-symbol attribution and the 2 % per-body control, shared headers greedy-on-one/verify-on-all (h_text on all), the in-memory snapshot + `inflight.json` as the only restore, the ledger keyed alias+tu+function+address, refusals, progress logs, negative controls, selftest with decoys. @@ -201,7 +203,49 @@ accumulate here as the phase produces them.** file-scope detectors); 14 game functions (8 in main) were assembly in C shells all along. The README prose is corrected in this commit; the decision log carries it at T9; Drew's word on the SDK/DECOMPILE/UNCERTAIN split is asked at the T1b report. -## 🛑 SESSION CHECKPOINT — S97 (2026-09-09): T0 ☑ T1 ☑ T1b ☑ (T1b's commit pending); NEXT = T2 (the probe: calibrate the object oracle, strip-all + greedy on ~150 distinct bodies, price T4–T7) at Max +- **S97 — T2 the oracle and the probe (R37).** *The oracle* (`tools/delever_oracle.py`): every object's exact build command captured once + through `make -n -W BINARY=` (4,284 recipes, 14 s at -j16 — the Makefile's own pipeline with the jtbl pad stage of + main/module objects, the per-object `-O0` overrides, the twin rule); a candidate compiled IN PLACE (objects carry the source path as an + STT_FILE symbol) with `-o`/`-MF` redirected to scratch, the file restored from the in-memory snapshot after every compile; verdict = + whole-object byte equality with `build/`'s object of the T0 fleet run. **Calibration:** `177/177 objects byte-identical untouched; + twin checks 32 (0 mismatch); positive control DIFFERS on build/src/800.o; 2.3 s — OK` (`.run/P36/delever/calibration.json`; two + instrument findings on the way: a control injected BEFORE the declarations is a C89 parse error, so it goes at the end of the body; + gcc 2.7.2 reports errors without the word "error" and the assembler floods stderr with `$at` warnings — the error filter keeps + every non-warning line, R103). *The engine* (`tools/delever.py`): positional rewrites per class at the census's line/col on the raw + text (a token mismatch REFUSES); rung A strip-all (measured with `register` dropped and kept), rung B greedy; TUs in parallel (one + worker per file), **shared headers SERIAL after the TU phase** — the dry run's three "compile errors" were two workers' candidates + crossing inside one includer (a header edit reaches every includer: the campaign tool must never compile a TU while any header it + includes is being edited). A no-op edit is REFUSED (an identical object would prove nothing, R37). + **The probe (`--probe --sample 300 --seed 11 -j 12`; `.run/P36/probe/`):** 285 distinct bodies (one exemplar per normalized class, + stratified by binary kind × site count × class mix, topped up for the `$0`/initializer/instruction/cast/register/launder/keep-alive + features), 283 judged (2 NOTHING-USABLE), **1,660 compiles, 151 s wall, 0.225 s per compile, 5.87 compiles per body**. + + | kind | bodies | A identical | A (register kept) | lever-free after B | sites | removed | needed | compiles | s/compile | + |---|---:|---:|---:|---:|---:|---:|---:|---:|---:| + | main | 40 | 6 | 6 | 6 | 272 | 146 | 126 | 328 | 0.386 | + | resident | 16 | 4 | 4 | 4 | 31 | 9 | 22 | 53 | 0.06 | + | md | 29 | 2 | 2 | 2 | 121 | 56 | 65 | 161 | 0.139 | + | shared | 40 | 7 | 7 | 7 | 164 | 65 | 99 | 216 | 0.211 | + | ov | 158 | 34 | 34 | 34 | 721 | 285 | 436 | 902 | 0.195 | + | **all** | **283** | **53** | **53** | **53** | **1,309** | **561 (42.9 %)** | **748 (57.1 %)** | **1,660** | **0.225** | + + Needed by kind: pin 360 of 798 (45 %) · launder 154 of 199 (77 %) · barrier 127 of 154 (82 %) · keep-alive 36 of 44 · instruction 21 + of 24 · cast 26 of 51 · decl-body volatile 16 of 27 · bare register 8 of 12. **Needed pins by register class: v0/v1 126 · a0–a3 112 · + s0–s7 71 · t0–t9 36 · $0 13** (removed: s 147 · t 107 · v 90 · a 87). Residue bodies 230 of 283: 75 need only pins, 129 need at least + one asm statement. Bodies with a launder 4/68 lever-free, a barrier 9/78, a `$0` pin 1/17, a cast 1/22, an initializer pin 7/32. + `register` dropped vs kept: identical results (53 = 53) — the keyword is byte-neutral at -O2 on this sample. Instrument noise: rung A + 1 COMPILE-ERROR + 1 REFUSED; 6 of 748 needed sites judged by a compile error (0.8 %); 9 rewrites refused (multi-instruction + templates, `mult`/`mfhi`, a bare `addu $v0,$zero,$zero` with no C operands, `RTP_SND` macro-carried instructions). + **Pricing (R41; population 16,064 lever bodies / 55,913 removable sites, 2,633 distinct classes by body hash):** T4 (rungs A+B fleet-wide) + ≈ 94,000 compiles ≈ 5.9 CPU-h ≈ **0.5 h wall at 12 workers** — cheap, and it removes ≈ 24,000 sites (43 %) and frees ≈ 3,000 bodies + (19 %). **The residue ≈ 13,000 bodies / 32,000 sites ≈ 81 % of bodies — by distinct classes ≈ 1,800 exemplars** whose copies replay: + that is the campaign grind-to-zero prices (T6 recipes + permuter, then T7 waves). Where the residue sits: launders + barriers + + keep-alives (317 of 748 needed = 42 %) — the CSE/scheduling steers; v0/v1 + a0–a3 pins (238 = 32 %) — argument/return-register copies + (the §194-E/§17a ARGCOPY class); callee-saved pins (71 = 9 %) — the allocation-order class (R73, `alloc_table.py`); the rest casts, + volatile declarations, `$0` variables, instructions. **Design consequences for T3:** per-body compiles at 0.2 s make group testing + unnecessary (simplicity wins); run T4 first and publish the fall; rung R (T6) targets the three big classes in that order. + +## 🛑 SESSION CHECKPOINT — S97 (2026-09-09): T0 ☑ T1 ☑ T1b ☑ T2 ☑ (T2's commit pending); NEXT = T3 (`tools/delever.py` the campaign tool: --plan/--apply, the ledger, exemplar/replay, batches + `delever_cycle.sh`, the `!FAKE` markers, refusals, selftest) at Max for the design ### 0. How to use this block A fresh session reads CLAUDE.md's load order, replays this block verbatim, asks Drew for `/effort max` (T2 is Max; T3's finish and T4–T6 diff --git a/tools/delever.py b/tools/delever.py new file mode 100644 index 000000000..22b8de665 --- /dev/null +++ b/tools/delever.py @@ -0,0 +1,608 @@ +#!/usr/bin/env python3 +"""delever.py — take the compiler-forcing constructs ("levers") out of matched C, byte-gated per translation unit +(Phase 36; the probe engine at T2, the campaign tool at T3). + + tools/delever.py --probe --sample 150 [--seed 1] [-j 12] # T2: rung A + rung B on a stratified sample of DISTINCT bodies + # -> .run/P36/probe/{probe_results.jsonl,probe_summary.json,probe_table.md} + +THE LADDER PER BODY (deterministic, zero tokens): + rung A strip-all — every removable site of the body rewritten at once (pin -> plain declaration; barrier/launder/keep-alive -> + deleted; a hand-placed instruction -> its C; `$0` pin -> its variable's uses replaced by 0; volatile -> dropped; register -> + dropped), one compile, the object compared with the fleet run's (tools/delever_oracle.py). Measured twice: with the `register` + keyword dropped from the pin (the target form) and with it kept (A'). + rung B greedy — if A differs: from the untouched text, the sites are re-applied one at a time (asm statements first, then pins, + volatile, register); a site whose removal keeps the object identical is REMOVED, one that changes it is NEEDED. +The verdict of a body = the set of NEEDED sites; a body with none is lever-free. Never touched: GTE ops, the manifest's verbatim +bodies, an asm-body (a whole routine — the manifest's DECOMPILE rows are another task's work), file-scope declarations. + +EVERY EDIT IS POSITIONAL on the raw text (line/col from the census), the file is written in place for the compile and restored +from the in-memory snapshot right after (never `git checkout`, R102); a site whose raw token does not match the census is REFUSED +(R43), never guessed. +""" +import argparse +import collections +import json +import os +import pathlib +import random +import re +import sys +import time +from concurrent.futures import ThreadPoolExecutor + +REPO = pathlib.Path(__file__).resolve().parent.parent +sys.path.insert(0, str(REPO / "tools")) +import delever_oracle as oracle # noqa: E402 +import lever_census as lc # noqa: E402 +import share_census as sc # noqa: E402 + +SITES = REPO / ".run" / "P36" / "census" / "lever_sites.jsonl" +PROBE = REPO / ".run" / "P36" / "probe" +REMOVABLE = {("A", "pin"), ("B", "barrier"), ("B", "launder"), ("B", "keepalive"), ("B", "instruction"), + ("C", "cast"), ("C", "decl-body"), ("D", "register")} +ORDER = {"barrier": 0, "launder": 1, "keepalive": 2, "instruction": 3, "pin": 4, "cast": 5, "decl-body": 6, "register": 7} +STRLIT = lc.STRLIT + + +class Refuse(Exception): + pass + + +# ---------------------------------------------------------------------------------------------------------------------- +# text helpers (positions on the RAW text; comments masked to equal-length spaces so a ';' in a comment never ends a statement) +# ---------------------------------------------------------------------------------------------------------------------- +def same_len_mask(raw): + return sc._TOK.sub(lambda m: re.sub(r"[^\n]", " ", m.group(0)) if m.group(0)[:2] in ("/*", "//") else m.group(0), raw) + + +def line_starts(text): + ls = [0] + for ln in text.split("\n"): + ls.append(ls[-1] + len(ln) + 1) + return ls + + +def stmt_end(m, pos): + """index just past the ';' that ends the statement starting at pos (paren depth 0, string literals skipped); -1 if none.""" + depth, i, n = 0, pos, len(m) + while i < n: + c = m[i] + if c == '"': + mm = STRLIT.match(m, i) + i = mm.end() if mm else i + 1 + continue + if c == "(": + depth += 1 + elif c == ")": + depth -= 1 + elif c == ";" and depth <= 0: + return i + 1 + elif c == "}" and depth == 0: + return -1 + i += 1 + return -1 + + +def ws_after(m, pos): + i = pos + while i < len(m) and m[i] in " \t": + i += 1 + return i + + +# ---------------------------------------------------------------------------------------------------------------------- +# the rewrite of one site -> [(start, end, replacement)] on the raw text +# ---------------------------------------------------------------------------------------------------------------------- +ASM_HEAD = re.compile(r"(?:__asm__|__asm|asm)\s*(?:__volatile__|volatile)?\s*\(") +PIN_CLAUSE = re.compile(r"\s*(?:__asm__|__asm|asm)\s*\(\s*\"[^\"]*\"\s*\)") +INSTR_TABLE = { + # mnemonic -> (arity, C template) using OUT / IN1 / IN2 / IMM; the operands come from the asm's "=r"(..) / "r"(..) lists + "addu": ("OUT = IN1;", "zero"), "move": ("OUT = IN1;", None), "addiu": ("OUT = IN1 + IMM;", None), "sll": ("OUT = IN1 << IMM;", None), + "srl": ("OUT = (u32)IN1 >> IMM;", None), "and": ("OUT = IN1 & IN2;", None), "andi": ("OUT = IN1 & IMM;", None), + "lui": ("OUT = IMM << 16;", None), "li": ("OUT = IMM;", None), "lw": ("OUT = *(s32 *)((s32)IN1 + IMM);", None), + "lh": ("OUT = *(s16 *)((s32)IN1 + IMM);", None), "la": ("OUT = (s32)&SYM;", None), +} + + +def parse_asm_operands(inner): + """(template, outputs, inputs) — outputs/inputs as [(constraint, expr)]; the asm's own parser rules (lever_census).""" + s = inner.strip() + parts, i, n = [], 0, len(s) + while i < n: + if s[i] in " \t\r\n": + i += 1 + continue + mm = STRLIT.match(s, i) + if not mm: + break + parts.append(mm.group(0)[1:-1]) + i = mm.end() + rest = s[i:].strip() + secs = lc._split_sections(rest[1:]) if rest.startswith(":") else [] + def ops(sec): + out = [] + for mm in re.finditer(r'"([^"]*)"\s*\(', sec): + c = lc._paren_span(sec, mm.end() - 1) + out.append((mm.group(1), sec[mm.end():c].strip())) + return out + outs = ops(secs[0]) if len(secs) > 0 else [] + ins = ops(secs[1]) if len(secs) > 1 else [] + return "".join(parts), outs, ins + + +def instruction_to_c(inner, indent): + """The C statement for a hand-placed single-instruction asm, or None (residue).""" + tmpl, outs, ins = parse_asm_operands(inner) + t = re.sub(r"\\[nt]", " ", tmpl).strip() + if len(outs) != 1: + return None + out_expr = outs[0][1] + allops = [e for _, e in outs] + [e for _, e in ins] + def resolve(tok): + mm = re.fullmatch(r"%(\d+)", tok) + if mm: + k = int(mm.group(1)) + return allops[k] if k < len(allops) else None + return None + IMM = r"-?(?:0x[0-9A-Fa-f]+|\d+)" + # two-instruction address / constant materializations (one C expression each) + mm = re.fullmatch(r"lui\s+%0\s*,\s*%%hi\((\w+)\)\s*;?\s*addiu\s+%0\s*,\s*%0\s*,\s*%%lo\(\1\)", t) + if mm: + return f"{indent}{out_expr} = (s32)&{mm.group(1)};" + mm = re.fullmatch(r"lui\s+%0\s*,\s*(" + IMM + r")\s*;?\s*ori\s+%0\s*,\s*%0\s*,\s*(" + IMM + r")", t) + if mm: + return f"{indent}{out_expr} = ({mm.group(1)} << 16) | {mm.group(2)};" + if ";" in t or "\n" in t: + return None # other multi-instruction templates are residue + toks = [x for x in re.split(r"[\s,]+", t) if x] + if not toks: + return None + mnem = toks[0].lower() + if mnem not in INSTR_TABLE: + return None + templ, note = INSTR_TABLE[mnem] + refs = [x for x in toks[1:]] + if mnem == "addu": + if len(refs) != 3: + return None + if refs[2] in ("$zero", "$0"): + in1 = resolve(refs[1]) + return None if in1 is None else f"{indent}{out_expr} = {in1};" + in1, in2 = resolve(refs[1]), resolve(refs[2]) + return None if in1 is None or in2 is None else f"{indent}{out_expr} = (s32){in1} + (s32){in2};" + if mnem == "addiu" and len(refs) == 3 and refs[1] in ("$zero", "$0") and re.fullmatch(IMM, refs[2]): + return f"{indent}{out_expr} = {refs[2]};" + if mnem == "move": + if len(refs) != 2: + return None + in1 = resolve(refs[1]) + return None if in1 is None else f"{indent}{out_expr} = {in1};" + if mnem == "la": + if len(refs) != 2 or not re.fullmatch(r"[A-Za-z_]\w*", refs[1]): + return None + return f"{indent}{out_expr} = (s32)&{refs[1]};" + if mnem in ("lw", "lh"): + mm = re.fullmatch(r"(-?\w+)\((%\d+)\)", refs[1]) if len(refs) == 2 else None + if not mm: + return None + base = resolve(mm.group(2)) + return None if base is None else templ.replace("OUT", out_expr).replace("IN1", base).replace("IMM", mm.group(1)) and f"{indent}{templ.replace('OUT', out_expr).replace('IN1', base).replace('IMM', mm.group(1))}" + if mnem in ("addiu", "sll", "srl", "andi"): + if len(refs) != 3: + return None + in1 = resolve(refs[1]) + if in1 is None or not re.fullmatch(IMM, refs[2]): + return None + return f"{indent}{templ.replace('OUT', out_expr).replace('IN1', '(s32)' + in1).replace('IMM', refs[2])}" + if mnem == "and": + if len(refs) != 3: + return None + in1, in2 = resolve(refs[1]), resolve(refs[2]) + return None if in1 is None or in2 is None else f"{indent}{out_expr} = (s32){in1} & (s32){in2};" + if mnem in ("lui", "li"): + if len(refs) != 2 or not re.fullmatch(r"-?(?:0x[0-9A-Fa-f]+|\d+)", refs[1]): + return None + return f"{indent}{templ.replace('OUT', out_expr).replace('IMM', refs[1])}" + return None + + +def site_edits(raw, m, ls, site, keep_register=False): + """[(start, end, replacement)] for one site, or raise Refuse. `m` = same_len_mask(raw).""" + pos = ls[site["line"] - 1] + site["col"] - 1 + cls, kind = site["cls"], site["kind"] + indent_start = m.rfind("\n", 0, pos) + 1 + indent = re.match(r"[ \t]*", raw[indent_start:pos]).group(0) + if cls == "A": + if not m.startswith("register", pos): + raise Refuse(f"token mismatch at {site['tu']}:{site['line']}: expected `register`") + e = stmt_end(m, pos) + if e < 0: + raise Refuse(f"no statement end for the pin at {site['tu']}:{site['line']}") + stmt = raw[pos:e] + if site.get("zero"): + # the zero-register variable: delete the declaration, replace every use in the body by 0 + mm = re.search(r"([A-Za-z_]\w*)\s*(?:__asm__|__asm|asm)\s*\(", stmt) + if not mm: + raise Refuse("zero pin without a name") + name = mm.group(1) + edits = [(indent_start if raw[indent_start:pos].strip() == "" else pos, e + (1 if raw[e:e + 1] == "\n" and raw[indent_start:pos].strip() == "" else 0), "")] + b0, b1 = ls[site["fn_line"] - 1], ls[site["fn_end"]] - 1 + for um in re.finditer(r"\b%s\b" % re.escape(name), m[b0:b1]): + s = b0 + um.start() + if s < pos or s >= e: + edits.append((s, s + len(name), "0")) + return edits + new = stmt if keep_register else re.sub(r"\bregister\b[ \t]*", "", stmt, count=1) + new = PIN_CLAUSE.sub("", new) + return [(pos, e, new)] + if cls == "B" and site.get("via"): + name = site["via"] + if not m.startswith(name, pos): + raise Refuse(f"token mismatch at {site['tu']}:{site['line']}: expected `{name}(`") + if kind not in ("barrier", "launder", "keepalive"): + raise Refuse(f"macro-carried {kind} is residue") + e = stmt_end(m, pos) + if e < 0: + raise Refuse("no statement end for the macro use") + whole_line = raw[indent_start:pos].strip() == "" and raw[e:ws_after(m, e)].strip() == "" and raw[ws_after(m, e):ws_after(m, e) + 1] == "\n" + return [(indent_start, ws_after(m, e) + 1, "")] if whole_line else [(pos, e, "")] + if cls == "B": + if not ASM_HEAD.match(m, pos): + raise Refuse(f"token mismatch at {site['tu']}:{site['line']}: expected an asm statement") + o = m.find("(", pos) + c = lc._paren_span(m, o) + e = stmt_end(m, pos) + if c < 0 or e < 0: + raise Refuse("unterminated asm statement") + if kind in ("barrier", "launder", "keepalive"): + new = "" + elif kind == "instruction": + new = instruction_to_c(m[o + 1:c] if '"' in m[o + 1:c] else raw[o + 1:c], "") + if new is None: + raise Refuse(f"instruction `{site['detail']}` has no C spelling in the table") + new = new.strip() + else: + raise Refuse(f"asm kind {kind} is not removable") + whole_line = raw[indent_start:pos].strip() == "" and raw[e:ws_after(m, e)].strip() == "" and raw[ws_after(m, e):ws_after(m, e) + 1] == "\n" + if new == "" and whole_line: + return [(indent_start, ws_after(m, e) + 1, "")] + return [(pos, e, new)] + if cls == "C": + if not m.startswith("volatile", pos): + raise Refuse(f"token mismatch at {site['tu']}:{site['line']}: expected `volatile`") + return [(pos, ws_after(m, pos + len("volatile")), "")] + if cls == "D": + if not m.startswith("register", pos): + raise Refuse(f"token mismatch at {site['tu']}:{site['line']}: expected `register`") + return [(pos, ws_after(m, pos + len("register")), "")] + raise Refuse(f"class {cls}/{kind} is not removable") + + +def apply_edits(raw, edits): + """Splice non-overlapping edits (bottom-up). Overlap -> Refuse.""" + es = sorted(edits, key=lambda x: (x[0], x[1])) + for a, b in zip(es, es[1:]): + if b[0] < a[1]: + raise Refuse(f"overlapping edits at {a[0]}..{a[1]} / {b[0]}..{b[1]}") + out = raw + for s, e, r in sorted(es, key=lambda x: -x[0]): + out = out[:s] + r + out[e:] + return out + + +# ---------------------------------------------------------------------------------------------------------------------- +# the population +# ---------------------------------------------------------------------------------------------------------------------- +def load_sites(): + return [json.loads(l) for l in SITES.read_text().splitlines() if l.strip()] + + +def bodies_from_sites(sites): + bodies = {} + for s in sites: + if not s.get("fn"): + continue + b = bodies.setdefault((s["tu"], s["fn"]), dict(tu=s["tu"], fn=s["fn"], fn_line=s["fn_line"], fn_end=s["fn_end"], nhash=s.get("nhash"), + aliases=s["aliases"], header=s.get("header", False), sites=[], frozen=[])) + if (s["cls"], s["kind"]) in REMOVABLE: + b["sites"].append(s) + else: + b["frozen"].append(s) + return bodies + + +def kind_of(tu): + return "shared" if tu.startswith("src/shared/") else "ov" if tu.startswith("src/ov_") else "md" if tu.startswith("src/md_") \ + else "resident" if tu.startswith("src/resident/") else "main" + + +def includers(): + """header rel -> [TU rel] from the #include lines of every TU (the recipe to compile a header's body is an includer's).""" + inc = collections.defaultdict(list) + for p in sorted((REPO / "src").rglob("*.c")): + rel = p.relative_to(REPO).as_posix() + text = p.read_text(errors="surrogateescape") + for mm in sc.INCLUDE_LINE.finditer(sc.mask_text(text)): + inc[os.path.normpath(os.path.join(os.path.dirname(rel), mm.group(1)))].append(rel) + return inc + + +def features(b): + ks = collections.Counter(s["kind"] for s in b["sites"]) + n = len(b["sites"]) + mix = "pins-only" if set(ks) <= {"pin"} else "asm-only" if not (set(ks) & {"pin", "cast", "decl-body", "register"}) else "mixed" + return dict(kind=kind_of(b["tu"]), n=n, bucket=("1" if n == 1 else "2-4" if n <= 4 else "5-9" if n <= 9 else "10+"), mix=mix, + zero=any(s.get("zero") for s in b["sites"]), init=any(s.get("init") for s in b["sites"] if s["kind"] == "pin"), + instr=any(s["kind"] == "instruction" for s in b["sites"]), cast=any(s["kind"] == "cast" for s in b["sites"]), + register=any(s["kind"] == "register" for s in b["sites"]), volatile=any(s["cls"] == "C" for s in b["sites"]), + launder=any(s["kind"] == "launder" for s in b["sites"]), barrier=any(s["kind"] == "barrier" for s in b["sites"]), + keepalive=any(s["kind"] == "keepalive" for s in b["sites"])) + + +def stratified_sample(bodies, n, seed): + rnd = random.Random(seed) + # one exemplar per normalized class + by_class = {} + for key, b in bodies.items(): + if not b["sites"]: + continue + h = b["nhash"] or key + cur = by_class.get(h) + pref = {"main": 0, "resident": 1, "md": 2, "shared": 3, "ov": 4}[kind_of(b["tu"])] + if cur is None or pref < cur[0]: + by_class[h] = (pref, key) + pool = [bodies[k] for _, k in by_class.values()] + rnd.shuffle(pool) + # quotas scale with --sample (the shape of the population: main/resident/md are few but distinct, overlays are many) + base = {"main": 20, "resident": 16, "md": 15, "shared": 20, "ov": 79} + scale = n / sum(base.values()) + quota = {k: max(3, int(round(v * scale))) for k, v in base.items()} + picked, seen = [], set() + for kind, q in quota.items(): + cands = [b for b in pool if kind_of(b["tu"]) == kind] + # round-robin over (bucket, mix) + groups = collections.defaultdict(list) + for b in cands: + f = features(b) + groups[(f["bucket"], f["mix"])].append(b) + keys = sorted(groups) + i = 0 + while len([b for b in picked if kind_of(b["tu"]) == kind]) < q and any(groups[k] for k in keys): + k = keys[i % len(keys)] + i += 1 + if groups[k]: + b = groups[k].pop() + if (b["tu"], b["fn"]) not in seen: + picked.append(b) + seen.add((b["tu"], b["fn"])) + # the special features, topped up from the pool + for flag, want in (("zero", 10), ("init", 10), ("instr", 12), ("cast", 8), ("register", 5), ("launder", 8), ("keepalive", 6)): + have = sum(1 for b in picked if features(b)[flag]) + for b in pool: + if have >= want: + break + if (b["tu"], b["fn"]) not in seen and features(b)[flag]: + picked.append(b) + seen.add((b["tu"], b["fn"])) + have += 1 + return picked + + +# ---------------------------------------------------------------------------------------------------------------------- +# the ladder on one body +# ---------------------------------------------------------------------------------------------------------------------- +def run_body(b, recipe, write_path, raw, m, ls, log): + """Returns the per-body result dict; the caller restores the file.""" + sites = sorted(b["sites"], key=lambda s: (ORDER.get(s["kind"], 9), s["line"], s["col"])) + res = dict(tu=b["tu"], fn=b["fn"], nhash=b["nhash"], kind=kind_of(b["tu"]), aliases=b["aliases"], header=b["header"], + obj=recipe["obj"], n_sites=len(sites), sites=[dict(kind=s["kind"], cls=s["cls"], detail=s["detail"], line=s["line"]) for s in sites], + refused=[], compiles=0, seconds=0.0, features=features(b)) + per_site, edits_all, edits_keep = {}, [], [] + usable = [] + for s in sites: + try: + ed = site_edits(raw, m, ls, s) + edk = site_edits(raw, m, ls, s, keep_register=True) if s["kind"] == "pin" else ed + per_site[id(s)] = (ed, edk) + usable.append(s) + edits_all += ed + edits_keep += edk + except Refuse as ex: + res["refused"].append(dict(kind=s["kind"], line=s["line"], why=str(ex))) + res["n_usable"] = len(usable) + if not usable: + res["verdict"] = "NOTHING-USABLE" + return res + + def judge(edits, tag): + try: + cand = apply_edits(raw, edits) + except Refuse as ex: + return "REFUSED", str(ex) + if cand == raw: + return "REFUSED", "no-op edit (the candidate equals the original — an identical object would prove nothing, R37)" + v, dt, err = oracle.judge(recipe, cand, tag=tag, write_path=write_path) + res["compiles"] += 1 + res["seconds"] += dt + return v, err + # rung A (register dropped) and A' (register kept) + vA, errA = judge(edits_all, "A") + res["rung_A"] = vA + res["rung_A_err"] = errA[:200] if vA == "COMPILE-ERROR" else "" + if any(s["kind"] == "pin" for s in usable): + vK, _ = judge(edits_keep, "Ak") + res["rung_A_keep_register"] = vK + else: + res["rung_A_keep_register"] = vA + if vA == "IDENTICAL": + res["removed"] = [dict(kind=s["kind"], detail=s["detail"], line=s["line"]) for s in usable] + res["needed"] = [] + res["verdict"] = "LEVER-FREE" + return res + # rung B greedy + accepted, needed, removed = [], [], [] + for s in usable: + ed, _ = per_site[id(s)] + v, err = judge(accepted + ed, "B") + if v == "IDENTICAL": + accepted += ed + removed.append(dict(kind=s["kind"], detail=s["detail"], line=s["line"])) + else: + needed.append(dict(kind=s["kind"], detail=s["detail"], line=s["line"], verdict=v, err=(err[:120] if v == "COMPILE-ERROR" else ""))) + res["removed"], res["needed"] = removed, needed + res["verdict"] = "LEVER-FREE" if not needed else "RESIDUE" + log(f" {b['tu']}:{b['fn']} A={vA} B: removed {len(removed)} needed {len(needed)} compiles {res['compiles']}") + return res + + +def probe(sample_n, seed, jobs): + PROBE.mkdir(parents=True, exist_ok=True) + ok, why = oracle.calibration_current() + if not ok: + sys.exit(f"delever: the oracle's calibration is not current ({why}) — run tools/delever_oracle.py --calibrate first (R56)") + recipes = oracle.load_recipes()["recipes"] + sites = load_sites() + bodies = bodies_from_sites(sites) + inc = includers() + sample = stratified_sample(bodies, sample_n, seed) + log_f = open(PROBE / "probe_log.txt", "a") + + def log(msg): + line = f"{time.strftime('%H:%M:%S')} {msg}" + print(line, flush=True) + log_f.write(line + "\n") + log_f.flush() + log(f"probe: {len(sample)} bodies sampled from {len(bodies)} lever bodies ({len({b['nhash'] for b in bodies.values() if b['sites']})} distinct classes); seed {seed}") + # group by the FILE that gets written (a TU, or a header) — one worker per file + by_file = collections.defaultdict(list) + for b in sample: + by_file[b["tu"]].append(b) + + def work(tu): + out = [] + if tu.endswith(".h"): + tus = [t for t in inc.get(tu, []) if ("build/" + t[:-2] + ".o") in recipes] + if not tus: + return [dict(tu=tu, fn=b["fn"], verdict="NO-INCLUDER-RECIPE") for b in by_file[tu]] + recipe = recipes["build/" + tus[0][:-2] + ".o"] + write_path = tu + else: + obj = "build/" + tu[:-2] + ".o" + if obj not in recipes: + return [dict(tu=tu, fn=b["fn"], verdict="NO-RECIPE") for b in by_file[tu]] + recipe = recipes[obj] + write_path = None + path = REPO / tu + raw = path.read_text(errors="surrogateescape") + m = same_len_mask(raw) + ls = line_starts(raw) + try: + for b in by_file[tu]: + out.append(run_body(b, recipe, write_path, raw, m, ls, log)) + finally: + path.write_text(raw, errors="surrogateescape") + return out + results = [] + t0 = time.time() + # phase 1: translation units, one worker per TU (no two candidates of one file at once, and no header is being edited); + # phase 2: shared headers, SERIAL — a header's edit reaches every includer, so nothing else may compile meanwhile + # (the dry run's three "compile errors" were two workers' candidates crossing inside one includer) + tu_files = sorted(f for f in by_file if not f.endswith(".h")) + hdr_files = sorted(f for f in by_file if f.endswith(".h")) + with ThreadPoolExecutor(max_workers=jobs) as ex: + for r in ex.map(work, tu_files): + results.extend(r) + for f in hdr_files: + results.extend(work(f)) + wall = time.time() - t0 + with open(PROBE / "probe_results.jsonl", "w") as f: + for r in results: + f.write(json.dumps(r) + "\n") + summary = summarize(results, bodies, wall, seed) + (PROBE / "probe_summary.json").write_text(json.dumps(summary, indent=1) + "\n") + (PROBE / "probe_table.md").write_text(render(summary) + "\n") + print(render(summary)) + return summary + + +def summarize(results, bodies, wall, seed): + judged = [r for r in results if r.get("verdict") in ("LEVER-FREE", "RESIDUE")] + def pct(a, b): + return round(100.0 * a / b, 1) if b else None + by_kind = {} + for k in ("main", "resident", "md", "shared", "ov"): + rs = [r for r in judged if r["kind"] == k] + if not rs: + continue + by_kind[k] = dict(bodies=len(rs), A_identical=sum(1 for r in rs if r["rung_A"] == "IDENTICAL"), + A_keep_register_identical=sum(1 for r in rs if r.get("rung_A_keep_register") == "IDENTICAL"), + lever_free=sum(1 for r in rs if r["verdict"] == "LEVER-FREE"), + sites=sum(r["n_usable"] for r in rs), removed=sum(len(r["removed"]) for r in rs), needed=sum(len(r["needed"]) for r in rs), + compiles=sum(r["compiles"] for r in rs), mean_s_per_compile=round(sum(r["seconds"] for r in rs) / max(sum(r["compiles"] for r in rs), 1), 3)) + needed_kinds = collections.Counter(n["kind"] for r in judged for n in r["needed"]) + needed_detail = collections.Counter(f"{n['kind']}:{n['detail']}" for r in judged for n in r["needed"]) + removed_kinds = collections.Counter(x["kind"] for r in judged for x in r["removed"]) + refused = collections.Counter(x["why"].split(":")[0][:60] for r in results for x in r.get("refused", [])) + sites_total = sum(r["n_usable"] for r in judged) + sites_needed = sum(len(r["needed"]) for r in judged) + flags = {} + for flag in ("zero", "init", "instr", "cast", "register", "launder", "barrier", "keepalive", "volatile"): + rs = [r for r in judged if r["features"].get(flag)] + flags[flag] = dict(bodies=len(rs), lever_free=sum(1 for r in rs if r["verdict"] == "LEVER-FREE")) + pop_bodies = sum(1 for b in bodies.values() if b["sites"]) + pop_sites = sum(len(b["sites"]) for b in bodies.values()) + mean_compiles = sum(r["compiles"] for r in judged) / max(len(judged), 1) + mean_s = sum(r["seconds"] for r in judged) / max(sum(r["compiles"] for r in judged), 1) + return dict(generated=time.strftime("%Y-%m-%d %H:%M"), seed=seed, sampled=len(results), judged=len(judged), + not_judged=collections.Counter(r.get("verdict") for r in results if r not in judged), + rung_A_identical=sum(1 for r in judged if r["rung_A"] == "IDENTICAL"), + rung_A_keep_register_identical=sum(1 for r in judged if r.get("rung_A_keep_register") == "IDENTICAL"), + lever_free_after_B=sum(1 for r in judged if r["verdict"] == "LEVER-FREE"), + sites=dict(total=sites_total, removed=sites_total - sites_needed, needed=sites_needed, pct_removed=pct(sites_total - sites_needed, sites_total)), + needed_by_kind=dict(needed_kinds), needed_by_detail=dict(needed_detail.most_common(30)), removed_by_kind=dict(removed_kinds), + refused=dict(refused), by_kind=by_kind, flags=flags, + compiles=sum(r["compiles"] for r in judged), mean_compiles_per_body=round(mean_compiles, 2), mean_s_per_compile=round(mean_s, 3), + wall_s=round(wall, 1), + population=dict(bodies=pop_bodies, sites=pop_sites), + pricing=dict(T4_compiles_est=int(pop_bodies * mean_compiles), T4_cpu_hours_est=round(pop_bodies * mean_compiles * mean_s / 3600, 2), + T4_wall_hours_at_16_est=round(pop_bodies * mean_compiles * mean_s / 3600 / 12, 2), + residue_bodies_est=int(pop_bodies * (1 - (sum(1 for r in judged if r["verdict"] == "LEVER-FREE") / max(len(judged), 1)))), + residue_sites_est=int(pop_sites * (sites_needed / max(sites_total, 1))))) + + +def render(s): + L = [f"# probe — {s['sampled']} bodies sampled, {s['judged']} judged (seed {s['seed']}, {s['generated']}, wall {s['wall_s']} s)", "", + f"- rung A (strip-all) identical: **{s['rung_A_identical']} / {s['judged']}** (register dropped) · {s['rung_A_keep_register_identical']} with `register` kept", + f"- lever-free after rung B: **{s['lever_free_after_B']} / {s['judged']}**", + f"- sites: {s['sites']['total']} usable · removed {s['sites']['removed']} ({s['sites']['pct_removed']} %) · needed {s['sites']['needed']}", + f"- needed by kind: {s['needed_by_kind']}", f"- needed by detail (top): {s['needed_by_detail']}", + f"- removed by kind: {s['removed_by_kind']}", f"- refused (rewrite not applicable): {s['refused']}", + f"- compiles {s['compiles']} · mean {s['mean_compiles_per_body']} per body · {s['mean_s_per_compile']} s per compile", "", + "| kind | bodies | A identical | A (register kept) | lever-free after B | sites | removed | needed | compiles | s/compile |", "|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|"] + for k, v in s["by_kind"].items(): + L.append(f"| {k} | {v['bodies']} | {v['A_identical']} | {v['A_keep_register_identical']} | {v['lever_free']} | {v['sites']} | {v['removed']} | {v['needed']} | {v['compiles']} | {v['mean_s_per_compile']} |") + L += ["", "| feature | bodies | lever-free |", "|---|---:|---:|"] + for k, v in s["flags"].items(): + L.append(f"| {k} | {v['bodies']} | {v['lever_free']} |") + p = s["pricing"] + L += ["", f"**Pricing (R41; population {s['population']['bodies']:,} lever bodies / {s['population']['sites']:,} removable sites):** " + f"T4 ≈ {p['T4_compiles_est']:,} compiles ≈ {p['T4_cpu_hours_est']} CPU-h ≈ {p['T4_wall_hours_at_16_est']} h wall at 12 workers; " + f"residue after the mechanical ladder ≈ {p['residue_bodies_est']:,} bodies / {p['residue_sites_est']:,} sites (the sample's rates applied to the population)."] + return "\n".join(L) + + +def main(): + ap = argparse.ArgumentParser(description=__doc__.split("\n")[0]) + ap.add_argument("--probe", action="store_true") + ap.add_argument("--sample", type=int, default=150) + ap.add_argument("--seed", type=int, default=1) + ap.add_argument("-j", "--jobs", type=int, default=12) + a = ap.parse_args() + if a.probe: + probe(a.sample, a.seed, a.jobs) + return + ap.print_help() + + +if __name__ == "__main__": + main() diff --git a/tools/delever_oracle.py b/tools/delever_oracle.py new file mode 100644 index 000000000..f8ce2f640 --- /dev/null +++ b/tools/delever_oracle.py @@ -0,0 +1,303 @@ +#!/usr/bin/env python3 +"""delever_oracle.py — the fast byte oracle for a single-translation-unit source edit (Phase 36 T2, 2026-09-09). + + tools/delever_oracle.py --recipes [-j N] # capture every object's exact build command via `make -n -W` -> .run/P36/delever/recipes.json + tools/delever_oracle.py --calibrate ov_SC04_011 main # compile every TU of the named binaries UNTOUCHED: 100 % object equality with build/, + # twin == primary, then the POSITIVE control (a nop injected -> DIFFERS); exit 1 otherwise + tools/delever_oracle.py --status # is the calibration current for this HEAD / Makefile? + +THE QUESTION IT ANSWERS: "does this candidate text for TU X still produce the byte-identical object?" — and only that. The whole-binary +gate (`make check BINARY=…`, and the clean fleet run, R22) remains the arbiter of every batch; this oracle is the inner loop that +decides one lever site at a time in ~0.3–5 s instead of ~90 s. + +HOW (the design settled at gate 1 + the plan agent's review, R57: the instrument's own path is part of the instrument): + * the recipe of every object is the Makefile's OWN command, printed by `make -n -W BINARY=` (0.04–0.15 s each; + captured once per Makefile/config state, ~4,300 objects at -j16 in ~30 s). It carries the per-object -O0 overrides, the + jtbl_rodata_pads stage of main/module objects, the reorder island, the twin rule (the primary's source into the twin's object). + tools/compile_only.py's re-typed pipeline omits the pad stage and is NOT used. + * a candidate compiles IN PLACE at the real path (objects embed the source path as an STT_FILE symbol) with `-o` and `-MF` + redirected to scratch — build/ is never written, so the baseline object of the fleet run stays the reference; the TU's text is + restored from the caller's in-memory snapshot (never `git checkout`, R102). Workers own whole TUs: no two candidates of one TU at once. + * verdict = whole-object byte equality with build/ (R56: build/ must come from a clean fleet run of THIS tree — --calibrate proves it). + * CALIBRATION (R39/R57): every sampled TU compiled untouched reproduces its object byte for byte; a twin's object equals its primary's; + a deliberately altered body reports DIFFERS. `.run/P36/delever/calibration.json` records HEAD, the Makefile/config mtimes and the + per-object seconds (the scheduler's cost model); an --apply of the de-lever tool refuses without a current calibration. +""" +import argparse +import hashlib +import json +import os +import pathlib +import re +import subprocess +import sys +import time +from concurrent.futures import ThreadPoolExecutor + +REPO = pathlib.Path(__file__).resolve().parent.parent +sys.path.insert(0, str(REPO / "tools")) + +RUN = REPO / ".run" / "P36" / "delever" +RECIPES = RUN / "recipes.json" +CALIB = RUN / "calibration.json" +SCRATCH = RUN / "obj" +RECIPE_RE = re.compile(r"^set -o pipefail; (.*) -o (build/\S+\.o)$") + + +# ---------------------------------------------------------------------------------------------------------------------- +# enumeration: (alias, src, obj) for every object of every binary — derived from the Makefile's own rules (R33) +# ---------------------------------------------------------------------------------------------------------------------- +def src_dirs(): + import corpus + return dict(corpus.src_dirs()) + + +def twin_of_map(): + import share_census + return share_census.twin_of_map() + + +def objects(aliases=None): + """[(alias, src_rel, obj_rel)] — the pattern rule build/src/%.o: src/%.c, and for a twin the primary's sources renamed into the + twin's own object names (Makefile twin block).""" + import compile_only + dirs = src_dirs() + twins = twin_of_map() + out = [] + for a in sorted(dirs): + if aliases and a not in aliases: + continue + prim = twins.get(a) + for p in compile_only.tus_of(a, dirs): + src = p.relative_to(REPO).as_posix() + if prim: + # src//.c -> build/src//.o + stem = p.name[:-2] + if not stem.startswith(prim): + continue + obj = f"build/src/{a}/{a}{stem[len(prim):]}.o" + else: + obj = "build/" + src[:-2] + ".o" + out.append((a, src, obj)) + return out + + +def config_stamp(): + files = [REPO / "Makefile"] + sorted((REPO / "config").glob("*.mk")) + h = hashlib.sha1() + for f in files: + st = f.stat() + h.update(f"{f.name}|{int(st.st_mtime)}|{st.st_size}\n".encode()) + return h.hexdigest()[:12] + + +def head(): + return subprocess.run(["git", "rev-parse", "--short", "HEAD"], cwd=REPO, capture_output=True, text=True).stdout.strip() + + +# ---------------------------------------------------------------------------------------------------------------------- +# recipes +# ---------------------------------------------------------------------------------------------------------------------- +def capture_recipe(alias, src, obj): + r = subprocess.run(["make", "-n", "-W", src, obj, f"BINARY={alias}"], cwd=REPO, capture_output=True, text=True) + if r.returncode != 0: + return None, f"make -n rc={r.returncode}: {r.stderr.strip()[:200]}" + lines = [ln for ln in r.stdout.splitlines() if ln.startswith("set -o pipefail;")] + if len(lines) != 1: + return None, f"expected ONE pipeline line, got {len(lines)}" + m = RECIPE_RE.match(lines[0]) + if not m or m.group(2) != obj: + return None, f"unparsed recipe: {lines[0][:160]}" + return dict(alias=alias, src=src, obj=obj, pipeline=m.group(1)), None + + +def build_recipes(jobs, aliases=None): + objs = objects(aliases) + recipes, errors = {}, [] + t0 = time.time() + with ThreadPoolExecutor(max_workers=jobs) as ex: + for (a, src, obj), (rec, err) in zip(objs, ex.map(lambda t: capture_recipe(*t), objs)): + if rec: + recipes[obj] = rec + else: + errors.append(f"{a} {src} {obj}: {err}") + return dict(stamp=config_stamp(), head=head(), generated=time.strftime("%Y-%m-%d %H:%M"), n=len(recipes), + seconds=round(time.time() - t0, 1), recipes=recipes, errors=errors) + + +def load_recipes(refresh=False, jobs=16): + if RECIPES.exists() and not refresh: + d = json.loads(RECIPES.read_text()) + if d.get("stamp") == config_stamp(): + return d + d = build_recipes(jobs) + RUN.mkdir(parents=True, exist_ok=True) + RECIPES.write_text(json.dumps(d, indent=1) + "\n") + return d + + +# ---------------------------------------------------------------------------------------------------------------------- +# compile + compare +# ---------------------------------------------------------------------------------------------------------------------- +def compile_obj(recipe, text=None, tag="x", write_path=None): + """Compile the recipe's source (with `text` written IN PLACE first — to `write_path` when the edited file is a header the + source includes, else to the source itself; the CALLER restores it) to a scratch object. Returns (bytes | None, seconds, errors).""" + src = REPO / (write_path or recipe["src"]) + obj = recipe["obj"] + out = SCRATCH / (obj[len("build/"):].replace("/", "__")[:-2] + f".{tag}.o") + out.parent.mkdir(parents=True, exist_ok=True) + dep = str(out)[:-2] + ".d" + pipeline = recipe["pipeline"] + pipeline = re.sub(r"-MF \S+", f"-MF {dep}", pipeline, count=1) + cmd = f"set -o pipefail; {pipeline} -o {out}" + if text is not None: + src.write_text(text, errors="surrogateescape") + t0 = time.time() + r = subprocess.run(["bash", "-c", cmd], cwd=REPO, capture_output=True, text=True) + dt = time.time() - t0 + if r.returncode != 0 or not out.exists(): + # gcc 2.7.2 prints errors without the word "error" and the assembler floods stderr with `$at` warnings: keep every + # non-warning line (R103), then the tail + errs = [ln for ln in r.stderr.splitlines() + if ln.strip() and not re.search(r"\bwarning:", ln, re.I) and not ln.startswith(("In file included", " " * 16)) + and ": In function" not in ln] + return None, dt, ("\n".join(errs[:8]) or r.stderr[-400:]) + data = out.read_bytes() + try: + out.unlink() + pathlib.Path(dep).unlink(missing_ok=True) + except OSError: + pass + return data, dt, "" + + +def baseline_bytes(obj): + p = REPO / obj + return p.read_bytes() if p.exists() else None + + +def judge(recipe, text, tag="x", write_path=None): + """(verdict, seconds, err): verdict in IDENTICAL | DIFFERS | COMPILE-ERROR | NO-BASELINE.""" + base = baseline_bytes(recipe["obj"]) + if base is None: + return "NO-BASELINE", 0.0, "" + data, dt, err = compile_obj(recipe, text, tag, write_path) + if data is None: + return "COMPILE-ERROR", dt, err + return ("IDENTICAL" if data == base else "DIFFERS"), dt, "" + + +# ---------------------------------------------------------------------------------------------------------------------- +# calibration +# ---------------------------------------------------------------------------------------------------------------------- +def calibrate(aliases, jobs, recipes): + """Every object of the named binaries compiled UNTOUCHED -> must equal build/; twin == primary; then the positive control.""" + recs = [r for r in recipes["recipes"].values() if r["alias"] in aliases] + if not recs: + sys.exit(f"delever_oracle: no recipes for {aliases} (R43)") + twins = twin_of_map() + results = [] + + def one(r): + v, dt, err = judge(r, None, tag="cal") + return dict(alias=r["alias"], obj=r["obj"], verdict=v, seconds=round(dt, 3), err=err[-200:]) + with ThreadPoolExecutor(max_workers=jobs) as ex: + results = list(ex.map(one, recs)) + ok = sum(1 for x in results if x["verdict"] == "IDENTICAL") + bad = [x for x in results if x["verdict"] != "IDENTICAL"] + # twin == primary on the objects both build + twin_checks = [] + for a in aliases: + prim = twins.get(a) + if not prim: + continue + for r in recipes["recipes"].values(): + if r["alias"] == a: + pobj = r["obj"].replace(f"build/src/{a}/{a}", f"build/src/{prim}/{prim}") + same = baseline_bytes(r["obj"]) == baseline_bytes(pobj) + twin_checks.append(dict(twin=r["obj"], primary=pobj, equal=same)) + twin_bad = [t for t in twin_checks if not t["equal"]] + # the positive control: a nop injected into a REAL function body (the first definition the shared scanner finds in the + # first recipe's source with a body of >= 3 lines) must DIFFER — a verifier that cannot fail is no verifier (R39/R53) + import share_census as sc + ctl = recs[0] + src = REPO / ctl["src"] + orig = src.read_text(errors="surrogateescape") + pos_verdict = "SKIPPED" + defs = [r for r in sc.scan_text(orig, ctl["src"], shared_defs=None) if r["form"] == "def" and r.get("nlines", 0) >= 3 and not r.get("empty")] + if defs: + d = defs[0] + line_starts = [0] + for ln in orig.split("\n"): + line_starts.append(line_starts[-1] + len(ln) + 1) + # at the END of the body (C89: a statement before the declarations is a parse error) + o = orig.rfind("}", line_starts[d["end"] - 1], line_starts[d["end"]]) + if o >= 0: + cand = orig[:o] + ' __asm__("nop");\n' + orig[o:] + try: + pos_verdict, _, err = judge(ctl, cand, tag="ctl") + pos_verdict = pos_verdict if pos_verdict != "COMPILE-ERROR" else f"COMPILE-ERROR ({err[-100:]})" + finally: + src.write_text(orig, errors="surrogateescape") + by_alias = {} + for x in results: + d = by_alias.setdefault(x["alias"], dict(objects=0, identical=0, seconds=0.0)) + d["objects"] += 1 + d["identical"] += x["verdict"] == "IDENTICAL" + d["seconds"] += x["seconds"] + return dict(head=head(), stamp=config_stamp(), generated=time.strftime("%Y-%m-%d %H:%M"), aliases=sorted(aliases), + objects=len(results), identical=ok, failures=bad[:20], twin_checks=len(twin_checks), twin_mismatch=twin_bad[:10], + positive_control=dict(obj=ctl["obj"], verdict=pos_verdict), + per_alias={a: dict(v, mean_s=round(v["seconds"] / max(v["objects"], 1), 3)) for a, v in by_alias.items()}, + per_object_seconds={x["obj"]: x["seconds"] for x in results}, + ok=(not bad and not twin_bad and pos_verdict == "DIFFERS")) + + +def calibration_current(): + if not CALIB.exists(): + return False, "no calibration" + d = json.loads(CALIB.read_text()) + if d.get("head") != head(): + return False, f"calibrated at {d.get('head')}, HEAD is {head()}" + if d.get("stamp") != config_stamp(): + return False, "the Makefile/config changed since the calibration" + return bool(d.get("ok")), ("ok" if d.get("ok") else "the calibration FAILED") + + +def main(): + ap = argparse.ArgumentParser(description=__doc__.split("\n")[0]) + ap.add_argument("--recipes", action="store_true", help="(re)capture every object's recipe") + ap.add_argument("--calibrate", nargs="*", help="binaries to calibrate on (e.g. ov_SC04_011 ov_SC03_015 main)") + ap.add_argument("--status", action="store_true") + ap.add_argument("-j", "--jobs", type=int, default=16) + a = ap.parse_args() + RUN.mkdir(parents=True, exist_ok=True) + if a.status: + ok, why = calibration_current() + print(f"delever_oracle: calibration {'CURRENT' if ok else 'STALE/MISSING'} — {why}") + sys.exit(0 if ok else 1) + if a.recipes: + d = load_recipes(refresh=True, jobs=a.jobs) + print(f"delever_oracle: {d['n']} recipes captured in {d['seconds']} s at -j{a.jobs}; errors {len(d['errors'])}") + for e in d["errors"][:10]: + print(" ", e) + sys.exit(1 if d["errors"] else 0) + if a.calibrate is not None: + recipes = load_recipes(jobs=a.jobs) + t0 = time.time() + d = calibrate(a.calibrate, a.jobs, recipes) + d["seconds"] = round(time.time() - t0, 1) + CALIB.write_text(json.dumps(d, indent=1) + "\n") + print(f"delever_oracle --calibrate {' '.join(d['aliases'])}: {d['identical']}/{d['objects']} objects byte-identical untouched; " + f"twin checks {d['twin_checks']} ({len(d['twin_mismatch'])} mismatch); positive control {d['positive_control']['verdict']} " + f"on {d['positive_control']['obj']}; {d['seconds']} s — {'OK' if d['ok'] else 'FAIL'}") + for a_, v in d["per_alias"].items(): + print(f" {a_:14s} {v['identical']}/{v['objects']} identical, mean {v['mean_s']} s per object") + for f in d["failures"][:10]: + print(" FAIL", f["alias"], f["obj"], f["verdict"], f["err"][-120:]) + sys.exit(0 if d["ok"] else 1) + ap.print_help() + + +if __name__ == "__main__": + main() diff --git a/tools/lever_census.py b/tools/lever_census.py index e1be4b565..3a2cb9d55 100644 --- a/tools/lever_census.py +++ b/tools/lever_census.py @@ -405,7 +405,8 @@ def walk_file(raw, rel, is_header): d = span_of_line.get(ln) flat = re.sub(r"\s+", " ", text).strip() # a file-scope asm block keeps its whole template: the manifest match reads its `.globl`/`.ent` name - sites.append(dict(tu=rel, fn=(d["name"] if d else None), fn_line=(d["line"] if d else None), line=ln, + sites.append(dict(tu=rel, fn=(d["name"] if d else None), fn_line=(d["line"] if d else None), fn_end=(d["end"] if d else None), + nhash=(d["nhash"] if d else None), line=ln, col=pos - masked.rfind("\n", 0, pos), cls=cls, kind=kind, detail=detail, text=(flat if (cls == "B" and d is None) else flat[:200]), marked=marked(ln), scope=("body" if d else "file"), **kw))