Skip to content

[AUTOMATED] Reduce repeated decompiler preparation - #205

Merged
sjkim1127 merged 1 commit into
mainfrom
codex/decomp-startup-reuse
Oct 15, 2026
Merged

sjkim1127 merged 1 commit into
mainfrom
codex/decomp-startup-reuse

Conversation

@sjkim1127

Copy link
Copy Markdown
Contributor

Scope

Reduce redundant decompiler preparation without changing producer output or analysis policy:

  • Borrow the existing cached control-flow facts for internal projections, preserving the public owned snapshot API.
  • Bound only canonical sorted vectors; share the existing general projection implementation.
  • Skip redundant relocation rescans only while a weak loader COW storage token matches; preserve current-byte rescans after patch/metadata mutation.
  • Construct one successful register model per language under concurrent cold reads, retain failure retries, and avoid macro searches on literal lines.

No new runtime dependency, analysis bypass, worker policy, timeout, CLI option or schema change.

Measured evidence

Frozen C++ qualification revision, stripped bytes and explicit entry requests only:

  • Five alternating small-batch samples: Linux 2.330 → 2.224 s; Windows 1.253 → 1.171 s; macOS 1.492 → 1.380 s (medians).
  • Large Tracy O0 control, one sequential pair: 148.593 → 103.820 s; CPU 1584.775 → 1015.641 s. All six outputs identical.
  • Fresh full replay: 250/250 returned across 45 binaries; zero changed non-time function records. All code layers, types, PCs, scoped maps, errors/fallbacks and non-time evidence compared.
  • Repeated timed requests are deterministic. No corpus executable was run; this is output parity, not execution parity or a quality/ranking claim.

Fission remains 4.12–11.58× slower than pinned Kuna 1.808 on the three selected batches. This does not claim Kuna-level or whole-corpus speed.

Independence from draft PRs

This PR is based directly on main 52c81dd and does not include #203/#204. Measurements use #204 head efe35ee plus this production patch. Every modified implementation preimage is identical between those bases. Native performance without the draft changes is not separately claimed; CI here validates the independent main-based patch.

Validation

  • Focused loader/CF 12 tests and register/macro four tests passed.
  • Relevant loader/static/sleigh/pcode/decompiler/CLI nextest: 2,003 passed / 5 skipped on the measured source.
  • Related crate checks, release CLI, workspace fmt, diff and owner-boundary checks passed.
  • Remote main-based CI is a separate gate; not claimed green before it runs.

See docs/validation/decompiler-startup-performance.md and its compact JSON for raw samples, complete population, hashes, reproduction and limits. The proposal records rejected FPK and earlier projection experiments. Full raw artifacts remain locally under benchmark/artifacts/performance/2026-10-14-kuna/.

@sjkim1127
sjkim1127 merged commit b33e4e1 into main Oct 15, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant