feat(mir): Phase 260 P2 - Delete BasicBlock.jump_args, unify to terminator SSOT

- Delete legacy jump_args/jump_args_layout fields from BasicBlock
- Add return_env/return_env_layout for Return-specific metadata
- Rename set_return_edge_args() → set_return_env() (clearer semantics)
- Remove 8 legacy helper methods (has/get/set/clear legacy_jump_args)
- Simplify set_jump/branch_with_edge_args (remove legacy sync, keep API)
- Update edge_args_from_terminator() to terminator-only (no fallback)
- Update 10+ JoinIR handler/test sites to use new API

This completes Phase 260 P0 → P2 migration: edge-args are now
exclusively in terminator operands (Jump/Branch) or Return-specific
metadata (renamed from legacy terminology).

BREAKING: BasicBlock.jump_args field removed. Use terminator edge-args
or block.return_env() for Return blocks.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-21 09:39:20 +09:00
parent c0334f8b7e
commit 45a7e24f7d
6 changed files with 59 additions and 114 deletions

View File

@ -744,8 +744,8 @@ mod tests {
.get(&entry)
.expect("missing loop_body entry block");
assert!(
entry_block.has_legacy_jump_args(),
"loop_body entry block must have legacy jump_args metadata in bridged MIR"
entry_block.return_env().is_some(),
"loop_body entry block must have return_env metadata in bridged MIR"
);
// Loop-only (the routing path in real lowering): still must encode loop_step as a tail-call.