Skip to content

feat: add context-sensitive jump analysis#372

Closed
DaniPopes wants to merge 4 commits into
dani/not-taken-jumpifrom
dani/sound-jump-analysis-core
Closed

feat: add context-sensitive jump analysis#372
DaniPopes wants to merge 4 commits into
dani/not-taken-jumpifrom
dani/sound-jump-analysis-core

Conversation

@DaniPopes
Copy link
Copy Markdown
Collaborator

@DaniPopes DaniPopes commented May 6, 2026

This adds the context-sensitive abstract stack analysis for dynamic jump resolution on top of the constant-condition JUMPI cleanup.

The analysis keeps multiple stack-depth contexts per block, resolves finite mixed target sets, and keeps conservative invalidation for unresolved Top jumps so shared-return cases are not treated as closed when an unknown entry state can still reach them.

Stacking this on dani/not-taken-jumpi keeps the simple constant-condition JUMPI representation separate: known true and known false conditions are already modeled as Resolved(..., JumpCondition) in the base PR, while this PR focuses on the broader context-sensitive resolution work.

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented May 6, 2026

Merging this PR will not alter performance

✅ 71 untouched benchmarks
⏩ 24 skipped benchmarks1


Comparing dani/sound-jump-analysis-core (28d6139) with dani/not-taken-jumpi (c998b93)2

Open in CodSpeed

Footnotes

  1. 24 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

  2. No successful run was found on dani/not-taken-jumpi (df8ebc5) during the generation of this report, so 2f41464 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

…sound-jump-analysis-core

# Conflicts:
#	crates/revmc-codegen/src/bytecode/passes/block_analysis.rs
@DaniPopes DaniPopes changed the base branch from main to dani/not-taken-jumpi May 6, 2026 08:32
@DaniPopes
Copy link
Copy Markdown
Collaborator Author

Superseded by #375, stacked on the clean constant-JUMPI PR #374.

@DaniPopes DaniPopes closed this May 6, 2026
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