feat(mir/llvm): Phase 273 P0-P1 DomainPlan→CorePlan + LLVM arg fix
Phase 273 P0-P1: Two-layer plan architecture - DomainPlan: Pattern-specific knowledge (ScanWithInit) - CorePlan: Fixed vocabulary (Seq, Loop, If, Effect, Exit) - ValueId references only (String expressions forbidden) - Pipeline: Extractor→Normalizer→Verifier→Lowerer New plan/ module: - mod.rs: Type definitions, SSOT spec - normalizer.rs: DomainPlan→CorePlan + ID allocation - verifier.rs: V1-V6 invariant checks (fail-fast) - lowerer.rs: CorePlan→MIR (pattern-agnostic) LLVM fix (ChatGPT): - function_lower.py: Fix argument reference bug - Phase 258 index_of_string now PASS on LLVM backend 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -19,10 +19,8 @@ Related:
|
||||
- 入口: `docs/development/current/main/phases/phase-278/README.md`
|
||||
- 実装ガイド: `docs/development/current/main/phases/phase-278/P0-INSTRUCTIONS.md`
|
||||
|
||||
- **Phase 279(planned, impl): Type propagation pipeline SSOT 統一(lifecycle / JoinIR / LLVM の二重化解消)**
|
||||
- 目的: 型伝播(Copy/BinOp/PHI/Compare など)の “順序/入口” を 1 本に固定し、経路差による二重バグを根絶する
|
||||
- 入口: `docs/development/current/main/phases/phase-279/README.md`
|
||||
- 実装ガイド: `docs/development/current/main/phases/phase-279/P0-INSTRUCTIONS.md`
|
||||
(✅ done)**Phase 279 P0**: Type propagation pipeline SSOT 統一(lifecycle / JoinIR / LLVM の二重化解消)
|
||||
- 完了: `docs/development/current/main/phases/phase-279/README.md`
|
||||
|
||||
- **Phase 272(✅ complete): Pattern6/7 を Frag+emit_frag へ吸収(段階適用)**
|
||||
- 目的: scan系 loop の CFG 構築を `Frag/ExitKind` 合成へ寄せ、pattern列挙の増殖を止める
|
||||
@ -30,12 +28,15 @@ Related:
|
||||
- 入口: fixture/smoke を SSOT として固定(Pattern6→Pattern7 の順で段階適用)
|
||||
- 詳細: `phases/phase-272/README.md`
|
||||
|
||||
- **Phase 273(planned, design-first): Pattern → Plan Extractor(pure)→ PlanLowerer で収束**
|
||||
- **Phase 273(active, design-first): Pattern → Plan Extractor(pure)→ PlanLowerer で収束**
|
||||
- 目的: pattern の裾広がりを止め、`Plan → Frag → emit_frag()` の本線へ一本化する(terminator SSOT は維持)
|
||||
- 相談メモ: `docs/development/current/main/investigations/phase-272-frag-plan-architecture-consult.md`
|
||||
- 状況:
|
||||
- ✅ P0(PoC)完了: `docs/development/current/main/phases/phase-273/README.md`
|
||||
- 次: P1(DomainPlan→CorePlan + PlanNormalizer(SSOT)+ PlanVerifier)
|
||||
- 受け入れ(最小):
|
||||
- extractor が builder を触らない(ID採番/PHI挿入禁止)
|
||||
- Plan 語彙を固定(`seq/if/loop/exit/effect/let`)
|
||||
- CorePlan 語彙を固定(`seq/if/loop/exit/effect` など)。scan専用 Effect/variant 禁止、式を String にしない
|
||||
- PlanLowerer が block/value/phi を作る唯一の箱になる
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user