35 lines
844 B
Python
35 lines
844 B
Python
"""
|
|
Build context for instruction lowering and helpers.
|
|
|
|
This structure aggregates frequently passed references so call sites can
|
|
remain concise as we gradually refactor instruction signatures.
|
|
"""
|
|
|
|
from dataclasses import dataclass
|
|
from typing import Any, Dict, List, Optional
|
|
import llvmlite.ir as ir
|
|
|
|
@dataclass
|
|
class BuildCtx:
|
|
# Core IR handles
|
|
module: ir.Module
|
|
i64: ir.IntType
|
|
i32: ir.IntType
|
|
i8: ir.IntType
|
|
i1: ir.IntType
|
|
i8p: ir.PointerType
|
|
|
|
# SSA maps and CFG
|
|
vmap: Dict[int, ir.Value]
|
|
bb_map: Dict[int, ir.Block]
|
|
preds: Dict[int, List[int]]
|
|
block_end_values: Dict[int, Dict[int, ir.Value]]
|
|
|
|
# Resolver (value queries, casts, string-ish tags)
|
|
resolver: Any
|
|
|
|
# Optional diagnostics toggles (read from env by the builder)
|
|
trace_phi: bool = False
|
|
verbose: bool = False
|
|
|