nyash-codex
020fbc6740
refactor(phi_core): Phase 193 - Complete loopform modularization with 4-pass architecture
Phase 193: loopform_builder.rs modularization (1,166 → 102 lines, 91% reduction)
## Module Structure Created
```
src/mir/phi_core/loopform/
├── mod.rs (102 lines) - Public API coordinator
├── context.rs (148 lines) - ValueId management
├── variable_models.rs (101 lines) - Variable types
├── utils.rs (112 lines) - Utilities
├── exit_phi.rs (96 lines) - Exit PHI builder
├── builder_core.rs (411 lines) - Core builder logic
├── passes/
│ ├── mod.rs (67 lines) - Pass coordinator
│ ├── pass1_discovery.rs (156 lines) - Variable discovery
│ ├── pass2_preheader.rs (70 lines) - Preheader copies
│ ├── pass3_header_phi.rs (106 lines) - Header PHI construction
│ └── pass4_seal.rs (276 lines) - PHI completion
```
## 4-Pass Architecture Explicit
### Pass 1: Variable Discovery (pass1_discovery.rs)
- Classify variables as carriers or pinned
- Allocate all ValueIds upfront
- GUARD protection for invalid ValueIds
### Pass 2: Preheader Copy (pass2_preheader.rs)
- Emit deterministic copy instructions
- Order: pinned first, carriers second
### Pass 3: Header PHI Construction (pass3_header_phi.rs)
- Generate incomplete PHI nodes
- First input: preheader_copy (known)
- Second input: latch value (unknown)
### Pass 4: PHI Sealing (pass4_seal.rs)
- Complete PHI nodes with latch values
- Separate pinned/carrier handling
- PHI optimization (same-value detection)
## Size Comparison
Before:
- loopform_builder.rs: 1,166 lines (monolithic)
- loopform_passes.rs: 133 lines (documentation stub)
- Total: 1,299 lines in 2 files
After:
- 11 focused modules: 1,645 lines total
- Main file (mod.rs): 102 lines (91% reduction)
- Largest module: builder_core (411 lines)
- Average module size: 150 lines
- 4 pass modules: 608 lines (explicit structure)
## Success Criteria Met
✅ Directory structure created with 11 focused modules
✅ 4-pass architecture explicit and clear
✅ cargo build --release succeeds
✅ Loop programs execute correctly
✅ Zero breaking changes (all APIs compatible)
✅ Module documentation comprehensive
✅ All visibility correct (pub/pub(crate) appropriate)
## Files Modified
- NEW: src/mir/phi_core/loopform/mod.rs (public API)
- NEW: src/mir/phi_core/loopform/builder_core.rs (core builder)
- NEW: src/mir/phi_core/loopform/passes/*.rs (4 pass modules)
- MOVED: loopform_*.rs → loopform/*.rs (5 files)
- DELETED: loopform_builder.rs, loopform_passes.rs
- UPDATED: phi_core/mod.rs (import structure)
- UPDATED: json_v0_bridge/lowering/loop_.rs (import path)
## Impact
- **Maintainability**: Each pass has clear responsibilities
- **Testability**: Individual passes can be tested independently
- **Documentation**: Comprehensive module and pass documentation
- **Modularity**: Clean separation of concerns
- **Readability**: No file exceeds 411 lines
Phase 1-3 modularization complete. Ready for new feature development.
2025-12-05 21:58:54 +09:00
..
2025-12-05 21:58:54 +09:00
2025-11-21 06:25:17 +09:00
2025-12-04 18:56:23 +09:00
2025-11-30 14:30:28 +09:00
2025-09-18 13:35:38 +09:00
2025-11-06 15:41:52 +09:00
2025-12-01 11:10:46 +09:00
2025-11-21 06:25:17 +09:00
2025-11-21 06:25:17 +09:00
2025-11-18 18:56:35 +09:00
2025-12-03 06:14:57 +09:00
2025-11-21 06:25:17 +09:00
2025-11-30 09:38:28 +09:00
2025-12-04 15:23:43 +09:00
2025-11-30 09:38:28 +09:00
2025-12-03 22:19:24 +09:00
2025-11-21 06:25:17 +09:00
2025-11-22 02:13:10 +09:00
2025-11-21 06:25:17 +09:00
2025-12-03 14:25:28 +09:00
2025-09-17 07:43:07 +09:00
2025-12-03 13:59:06 +09:00