Skip to main content

Module evm

Module evm 

Source
Expand description

The EVM backend: the reference Backend implementation, lowering MIR to EVM bytecode.

This module contains:

  • EvmCodegen: The main EVM code generator
  • ir: Machine-level EVM instructions and block metadata
  • Assembler: Two-pass assembler with label resolution and instruction peepholes
  • stack: Stack scheduling for DUP/SWAP generation

Re-exports§

pub use ir::EVM_IR_PASSES;
pub use ir::EvmIrBlock;
pub use ir::EvmIrBlockHotness;
pub use ir::EvmIrBlockId;
pub use ir::EvmIrBlockMetadata;
pub use ir::EvmIrInstruction;
pub use ir::EvmIrInstructionKind;
pub use ir::EvmIrMetadata;
pub use ir::EvmIrMetadataItem;
pub use ir::EvmIrModule;
pub use ir::EvmIrOperand;
pub use ir::EvmIrParseError;
pub use ir::EvmIrPass;
pub use ir::EvmIrStackEffect;
pub use ir::EvmIrStackOp;
pub use ir::EvmIrTerminator;
pub use ir::EvmIrTerminatorKind;
pub use ir::EvmIrValue;
pub use ir::EvmIrValueId;
pub use ir::EvmIrVerifyError;
pub use ir::parse_evm_ir_module;
pub use ir::verify_evm_ir_module;
pub use assembler::AssembledCode;
pub use assembler::Assembler;
pub use assembler::AssemblerConfig;
pub use assembler::Label;
pub use stack::SpillManager;
pub use stack::SpillSlot;
pub use stack::StackModel;
pub use stack::StackScheduler;

Modules§

assembler
Two-pass assembler with label resolution.
ir
EVM backend IR.
stack
Stack scheduling for EVM code generation.

Structs§

EvmArtifact
The artifact produced by the EVM backend: deployment and runtime bytecode.
EvmCodegen
EVM code generator.
EvmCodegenConfig
Configuration for the EVM backend.