fix(joinir): guard bridge meta debug logs

This commit is contained in:
2025-12-20 06:36:16 +09:00
parent 41d28330e9
commit 3d09302832

View File

@ -1,5 +1,5 @@
// Phase 190: Use modularized converter
use super::{join_func_name, JoinIrFunctionConverter, JoinIrVmBridgeError};
use super::{JoinIrFunctionConverter, JoinIrVmBridgeError};
use crate::mir::join_ir::frontend::JoinFuncMetaMap;
use crate::mir::join_ir::JoinModule;
use crate::mir::{MirFunction, MirModule};
@ -41,27 +41,30 @@ pub fn convert_join_module_to_mir_with_meta(
let mir_func = JoinIrFunctionConverter::convert_function(join_func)?;
// Phase 189 DEBUG: Dump MirFunction blocks to check PHI presence
eprintln!(
// Guarded to avoid polluting stdout/stderr in normal runs.
debug_log!(
"[joinir/meta] MirFunc '{}' has {} blocks after convert_function:",
mir_func.signature.name,
mir_func.blocks.len()
);
for (block_id, block) in &mir_func.blocks {
let phi_count = block
.instructions
.iter()
.filter(|i| matches!(i, crate::mir::MirInstruction::Phi { .. }))
.count();
eprintln!(
"[joinir/meta] Block {:?}: {} instructions ({} PHI), terminator={:?}",
block_id,
block.instructions.len(),
phi_count,
block
.terminator
.as_ref()
.map(|t| format!("{:?}", t).chars().take(40).collect::<String>())
);
if crate::config::env::joinir_vm_bridge_debug() {
for (block_id, block) in &mir_func.blocks {
let phi_count = block
.instructions
.iter()
.filter(|i| matches!(i, crate::mir::MirInstruction::Phi { .. }))
.count();
debug_log!(
"[joinir/meta] Block {:?}: {} instructions ({} PHI), terminator={:?}",
block_id,
block.instructions.len(),
phi_count,
block
.terminator
.as_ref()
.map(|t| format!("{:?}", t).chars().take(40).collect::<String>())
);
}
}
// 3. Phase 40-1: if_modified_varsがあればloop exit PHI生成
@ -78,9 +81,13 @@ pub fn convert_join_module_to_mir_with_meta(
}
}
// Phase 256 P1.7: Use actual function name instead of join_func_name()
// join_func_name() produces "join_func_{id}" but JoinFunction.name contains
// the actual name ("main", "loop_step", "k_exit").
// The merge code looks up functions by name, so we must use the actual name.
mir_module
.functions
.insert(join_func_name(*func_id), mir_func);
.insert(join_func.name.clone(), mir_func);
}
Ok(mir_module)