Skip to content

bloqade.lanes.bytecode.encode.BytecodeEncoder

← Module overview

classBytecodeEncodersource

bloqade.lanes.bytecode.encode.BytecodeEncoder

Bases: EmitABC[EmitFrame, Program]

Turn a stack_move ir.Method into a bytecode Program.

class BytecodeEncoder(instructions: list[Instruction] = list())

Constructed with the method’s dialect group (BytecodeEncoder(dialects=method.dialects)). Call run(method) to populate self.instructions, then build the Program from them. Prefer dump_program for the one-shot public API.

Parameters

NameTypeDefaultDescription
instructionslist[Instruction]list()

Attributes

NameTypeDefaultDescription
keys—('emit.bytecode',)
void—Program(version=(1, 0), instructions=[])
instructionslist[Instruction]field(default_factory=list)

methodinitialize_framesource

bloqade.lanes.bytecode.encode.BytecodeEncoder.initialize_frame

Signature
def initialize_frame(node: ir.Statement, *, has_parent_access: bool = False) -> EmitFrame

Parameters

NameTypeDefaultDescription
nodeir.Statementrequired
has_parent_accessboolFalse

Returns

EmitFrame

source

methodresetsource

bloqade.lanes.bytecode.encode.BytecodeEncoder.reset

def reset() -> None
source

methodeval_fallbacksource

bloqade.lanes.bytecode.encode.BytecodeEncoder.eval_fallback

def eval_fallback(frame: EmitFrame, node: ir.Statement) -> tuple

Parameters

NameTypeDescription
frameEmitFrame
nodeir.Statement

Returns

tuple

source