|
|
af6f95cd4b
|
Phase 33 NORM canon test: enforce normalized dev route for P1/P2/JP mini
|
2025-12-11 20:54:33 +09:00 |
|
|
|
9dbf053781
|
refactor(joinir): Phase 222.5-E - Merge/Boundary HashMap → BTreeMap
Convert 10 medium-priority locations to BTreeMap for determinism:
Merge System (6 locations):
- instruction_rewriter.rs: value_to_func_name, function_params,
function_entry_map, local_block_map
- value_collector.rs: value_to_func_name, function_params,
function_entry_map
ID Remapper (2 locations):
- joinir_id_remapper.rs: block_map, value_map
Boundary Injector (2 locations):
- joinir_inline_boundary_injector.rs: value_map (param & return)
Impact:
- Changed files: 4
- Changed lines: +36, -24 (net +12)
- Tests: 849/856 PASS (no regression)
- Determinism: Merge/Boundary processing now deterministic
Combined with Phase 222.5-D (13 high-priority locations),
JoinIR pipeline now uses BTreeMap uniformly across all
critical paths (Pattern/Merge/Boundary/ValueId allocation).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2025-12-10 14:09:18 +09:00 |
|
|
|
d7805e5974
|
feat(joinir): Phase 213-2 Step 2-2 & 2-3 Data structure extensions
Extended PatternPipelineContext and CarrierUpdateInfo for Pattern 3 AST-based generalization.
Changes:
1. PatternPipelineContext:
- Added loop_condition: Option<ASTNode>
- Added loop_body: Option<Vec<ASTNode>>
- Added loop_update_summary: Option<LoopUpdateSummary>
- Updated build_pattern_context() for Pattern 3
2. CarrierUpdateInfo:
- Added then_expr: Option<ASTNode>
- Added else_expr: Option<ASTNode>
- Updated analyze_loop_updates() with None defaults
Status: Phase 213-2 Steps 2-2 & 2-3 complete
Next: Create Pattern3IfAnalyzer to extract if statement and populate update summary
|
2025-12-10 00:01:53 +09:00 |
|
|
|
0397df5240
|
refactor(joinir): Phase 189 - Remove hardcoded 'sum' variable, generalize exit PHI connection
Key improvements:
1. **Eliminate hardcoded variable name**: Replace hardcoded "sum" with generic
ValueId-based variable_map updates. Add new JoinInlineBoundary constructor
`new_with_input_and_host_outputs()` for Pattern 3.
2. **Generalize output slot mapping**: Exit PHI result now updates all host_outputs
entries in variable_map, not just hardcoded "sum". Prepares for future
multi-carrier patterns.
3. **PHI preservation in blocks**: Fix block finalization to preserve existing
PHI instructions (from handle_select) instead of overwriting them.
4. **Stable function name→ValueId mapping**: Ensure consistent ValueId
assignment for tail call detection across multi-function merges.
5. **Enhanced debugging**: Add detailed logging in block converter and meta
analysis for PHI verification.
Files modified:
- src/mir/builder/control_flow.rs: Remove hardcoded "sum", use boundary outputs
- src/mir/join_ir/lowering/inline_boundary.rs: Add new constructor
- src/mir/join_ir_vm_bridge/joinir_block_converter.rs: Stable mappings, PHI preservation
- src/mir/join_ir_vm_bridge/meta.rs: Debug output for PHI tracking
- src/mir/builder/joinir_id_remapper.rs: PHI value remapping
- src/mir/builder/joinir_inline_boundary_injector.rs: Span preservation
Test status: Pattern 3 (loop_if_phi.hako) still produces correct result (sum=9, RC=9)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: ChatGPT <noreply@openai.com>
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-05 19:39:54 +09:00 |
|
|
|
827990e742
|
feat(joinir): Phase 189 Box 1・2 モジュール化実装
Box 1: joinir_id_remapper.rs (~380行)
- ValueId/BlockId ID空間変換の独立化
- 決定性を重視した実装
- 全MIR命令型に対応(Await含む)
Box 2: joinir_inline_boundary_injector.rs (~180行)
- JoinInlineBoundary Copy命令注入
- Entry blockへのCopy instruction挿入
- SSA値空間の接続
統合:
- src/mir/builder.rs に mod 宣言追加
- ビルド成功確認
- テスト実行確認(loop_min_while.hako)
Phase 189 モジュール化の第一歩完了
|
2025-12-05 14:11:49 +09:00 |
|