Skip to content

feat(cfg): bound canonical analysis work - #741

Open
Jon-Becker wants to merge 1 commit into
feat/canonical-cfg-consumerfrom
feat/bounded-canonical-analysis
Open

Jon-Becker wants to merge 1 commit into
feat/canonical-cfg-consumerfrom
feat/bounded-canonical-analysis

Conversation

@Jon-Becker

@Jon-Becker Jon-Becker commented Sep 6, 2026

Copy link
Copy Markdown
Owner

What changed? Why?

Stacked on #740. Adds a deterministic contextual-analysis work budget: 250,000 block-state executions by default, configurable with heimdall cfg --max-iterations. Completed iterations and queued points omitted at exhaustion are surfaced in ContextualCfg and CfgDiagnostics; partial results are warned about rather than silently presented as complete.

Notes to reviewers

Key files are crates/vm/src/core/context.rs, crates/cfg/src/core/mod.rs, and crates/cfg/src/interfaces/args.rs. Exhaustion returns conservative discovered structure plus explicit uncertainty. The production smoke matrix stayed below the default; Seaport was highest at 102,757 iterations.

How has it been tested?

Targeted VM contextual-analysis tests, CFG zero-budget tests, workspace check, formatting, and release-mode production bytecode runs for six mainnet contracts.

@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

AI Evaluation Suite

Check the box below to run the heimdall-eval AI evaluation suite.

  • Run AI Evaluation Suite

@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

✅ Coverage Report for 6886225

Metric Value
Base branch 71.77%
PR branch 74.56%
Diff +2.79%

@Jon-Becker
Jon-Becker force-pushed the feat/bounded-canonical-analysis branch from 6054c5c to ee5af0f Compare September 6, 2026 21:40
@Jon-Becker
Jon-Becker force-pushed the feat/bounded-canonical-analysis branch from ee5af0f to c108e20 Compare September 6, 2026 23:40
@Jon-Becker
Jon-Becker force-pushed the feat/bounded-canonical-analysis branch from c108e20 to 9516335 Compare September 14, 2026 17:43
@github-actions

github-actions Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Benchmark for 6886225

Click to view benchmark
Test Base PR %
heimdall_cfg/complex 13.4±0.59ms 113.8±2.56ms +749.25%
heimdall_cfg/simple 1468.8±41.52µs 524.2±6.52µs -64.31%
heimdall_decoder/seaport 59.2±3.02µs 58.0±3.72µs -2.03%
heimdall_decoder/transfer 4.2±0.25µs 4.1±0.33µs -2.38%
heimdall_decoder/uniswap 15.9±0.76µs 16.1±0.81µs +1.26%
heimdall_decompiler/abi_complex 56.3±2.72ms 53.7±0.57ms -4.62%
heimdall_decompiler/abi_simple 1469.4±23.55µs 1453.6±36.43µs -1.08%
heimdall_decompiler/sol_complex 73.0±1.19ms 69.0±0.98ms -5.48%
heimdall_decompiler/sol_simple 1895.2±27.26µs 1891.9±45.36µs -0.17%
heimdall_decompiler/yul_complex 62.6±2.12ms 62.7±1.47ms +0.16%
heimdall_decompiler/yul_simple 1671.9±23.84µs 1668.4±68.26µs -0.21%
heimdall_disassembler/complex 1545.4±88.37µs 1520.7±80.27µs -1.60%
heimdall_disassembler/simple 73.8±5.06µs 72.9±6.89µs -1.22%
heimdall_vm/erc20_transfer 261.9±13.89µs 265.3±15.01µs +1.30%
heimdall_vm/fib 856.0±13.71µs 861.0±55.24µs +0.58%
heimdall_vm/ten_thousand_hashes 2.7±2.77s 3.5±2.91s +29.63%

📊 View the full Criterion report

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