refactor(llvm): Phase 132-P1 follow-up - bind block_end_values and clear predeclared PHIs
This commit is contained in:
@ -51,6 +51,14 @@ def lower_function(builder, func_data: Dict[str, Any]):
|
||||
builder.bb_map.clear()
|
||||
except Exception:
|
||||
builder.bb_map = {}
|
||||
# Phase 132-P1: Clear per-function predeclared PHI placeholders (avoid cross-function leakage)
|
||||
try:
|
||||
builder.predeclared_ret_phis.clear()
|
||||
except Exception:
|
||||
try:
|
||||
builder.predeclared_ret_phis = {}
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
# Phase 132-P1: Create function-local context Box
|
||||
# This automatically isolates all function-scoped state
|
||||
@ -63,6 +71,7 @@ def lower_function(builder, func_data: Dict[str, Any]):
|
||||
builder.phi_manager = context.phi_manager
|
||||
builder.block_phi_incomings = context.block_phi_incomings
|
||||
builder.def_blocks = context.def_blocks
|
||||
builder.block_end_values = context.block_end_values
|
||||
|
||||
# Bind resolver to context (redirects caches to context storage)
|
||||
builder.resolver.bind_context(context)
|
||||
@ -311,7 +320,7 @@ def lower_function(builder, func_data: Dict[str, Any]):
|
||||
vmap=builder.vmap,
|
||||
bb_map=builder.bb_map,
|
||||
preds=builder.preds,
|
||||
block_end_values=builder.block_end_values,
|
||||
block_end_values=context.block_end_values,
|
||||
resolver=builder.resolver,
|
||||
trace_phi=os.environ.get('NYASH_LLVM_TRACE_PHI') == '1',
|
||||
verbose=os.environ.get('NYASH_CLI_VERBOSE') == '1',
|
||||
|
||||
Reference in New Issue
Block a user