Skip to content

Add technical documentation for EVM bytecode to LLVM basic blocks lowering#64

Merged
tcrypt25519 merged 7 commits into
mainfrom
copilot/add-markdown-doc-for-jet-compiler
Feb 14, 2026
Merged

Add technical documentation for EVM bytecode to LLVM basic blocks lowering#64
tcrypt25519 merged 7 commits into
mainfrom
copilot/add-markdown-doc-for-jet-compiler

Conversation

Copilot AI commented Feb 14, 2026

Copy link
Copy Markdown
  • Review source files (contract.rs, ops.rs, instructions.rs) to understand bytecode lowering
  • Document compilation structure overview
  • Document CodeBlock and CodeBlocks types in detail
  • Document bytecode chunking algorithm
  • Document block connectivity and control flow construction
  • Document terminators and flow semantics
  • Document control flow graph semantics
  • Add implications for system diagramming section
  • Create final markdown document in /docs directory
  • Address feedback on block lifecycle documentation (zero-length blocks)

💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

@semanticdiff-com

Copy link
Copy Markdown

Review changes with  SemanticDiff

…ocks lowering

Co-authored-by: tcrypt25519 <212655132+tcrypt25519@users.noreply.github.com>
Copilot AI changed the title [WIP] Add technical documentation for Jet compiler EVM lowering Add technical documentation for EVM bytecode to LLVM basic blocks lowering Feb 14, 2026
Copilot AI requested a review from tcrypt25519 February 14, 2026 01:42
@tcrypt25519
tcrypt25519 marked this pull request as ready for review February 14, 2026 02:13
Copilot AI review requested due to automatic review settings February 14, 2026 02:13

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new compiler-focused technical reference documenting how Jet lowers EVM bytecode into LLVM basic blocks and wires control flow (including jump table dispatch).

Changes:

  • Introduces docs/bytecode-to-llvm-blocks.md describing CodeBlock/CodeBlocks, bytecode chunking, CFG construction, and terminator semantics.
  • Includes pseudo-code and illustrative IR snippets for JUMP/JUMPI/JUMPDEST handling.
  • Adds guidance for diagramming the lowering pipeline.

Comment thread docs/bytecode-to-llvm-blocks.md
Comment thread docs/bytecode-to-llvm-blocks.md Outdated
Comment thread docs/bytecode-to-llvm-blocks.md Outdated
Comment thread docs/bytecode-to-llvm-blocks.md Outdated
Comment thread docs/bytecode-to-llvm-blocks.md Outdated
Comment thread docs/bytecode-to-llvm-blocks.md
tcrypt25519 and others added 3 commits February 13, 2026 20:26
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Address feedback that "empty rom == open" doesn't hold for consecutive
JUMPDESTs, which create closed blocks with zero-length rom slices.
Update Block Lifecycle section to accurately describe the implementation's
use of is_empty() as a reassignment guard rather than state indicator.

Co-authored-by: tcrypt25519 <212655132+tcrypt25519@users.noreply.github.com>
@tcrypt25519
tcrypt25519 merged commit 9b696da into main Feb 14, 2026
tcrypt25519 added a commit that referenced this pull request Feb 16, 2026
…ering (#64)

* Initial plan

* Add comprehensive technical documentation for EVM bytecode to LLVM blocks lowering

Co-authored-by: tcrypt25519 <212655132+tcrypt25519@users.noreply.github.com>

* Update docs/bytecode-to-llvm-blocks.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs/bytecode-to-llvm-blocks.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs/bytecode-to-llvm-blocks.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Clarify block lifecycle documentation for zero-length blocks

Address feedback that "empty rom == open" doesn't hold for consecutive
JUMPDESTs, which create closed blocks with zero-length rom slices.
Update Block Lifecycle section to accurately describe the implementation's
use of is_empty() as a reassignment guard rather than state indicator.

Co-authored-by: tcrypt25519 <212655132+tcrypt25519@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: tcrypt25519 <212655132+tcrypt25519@users.noreply.github.com>
Co-authored-by: Tyler Smith <mail@tcry.pt>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@tcrypt25519
tcrypt25519 deleted the copilot/add-markdown-doc-for-jet-compiler branch February 16, 2026 20:02
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.

3 participants