Files
hakorune/docs/development/current/main/phases/phase-29ae/README.md
tomoaki cb7021e166
Some checks are pending
fast-smoke / fast (push) Waiting to run
phase29aq(p4): add trim stdlib coverage
2025-12-31 12:17:31 +09:00

3.6 KiB
Raw Blame History

Phase 29ae: JoinIR Regression Pack (docs-first)

Goal: JoinIR の最小回帰セットを SSOT として固定する。

Regression pack (SSOT)

  • Pattern2: phase29ab_pattern2_*
  • Pattern2 (real-world): phase263_pattern2_*
  • Pattern2 (subset, strict shadow, VM): phase29ai_pattern2_break_plan_subset_ok_min_vm
  • Pattern2 (release adopt, VM): phase29ao_pattern2_release_adopt_vm
  • Pattern3 (IfPhi, VM): phase118_pattern3_if_sum_vm
  • Pattern3 (release adopt, VM): phase29ao_pattern3_release_adopt_vm
  • Pattern4 (continue min, VM): phase29ap_pattern4_continue_min_vm
  • Pattern1 (strict shadow, VM): phase29ao_pattern1_strict_shadow_vm
  • Pattern1 (subset reject, VM): phase29ao_pattern1_subset_reject_extra_stmt_vm
  • Pattern1 (stdlib to_lower, VM): phase29ap_stringutils_tolower_vm
  • Pattern1 (stdlib join, VM): phase29ap_stringutils_join_vm
  • ScanWithInit (stdlib index_of, VM): phase29aq_string_index_of_min_vm
  • ScanWithInit (stdlib last_index_of, VM): phase29aq_string_last_index_of_min_vm
  • ScanWithInit (stdlib index_of_string, VM): phase29aq_string_index_of_string_min_vm
  • Pattern2 (stdlib parse_integer, VM): phase29aq_string_parse_integer_min_vm
  • SplitScan (stdlib split, VM): phase29aq_string_split_min_vm
  • SplitScan (stdlib split char, VM): phase29aq_string_split_char_min_vm
  • SplitScan (stdlib split string, VM): phase29aq_string_split_string_min_vm
  • Pattern2 (stdlib trim_start, VM): phase29aq_string_trim_start_min_vm
  • Pattern2 (stdlib trim_end, VM): phase29aq_string_trim_end_min_vm
  • Pattern1 (stdlib to_upper, VM): phase29aq_string_to_upper_min_vm
  • Pattern5 (Break, VM): phase286_pattern5_break_vm
  • Pattern5 (strict shadow, VM): phase29ao_pattern5_strict_shadow_vm
  • Pattern5 (release adopt, VM): phase29ao_pattern5_release_adopt_vm
  • Pattern6 (strict shadow, VM): phase29ao_pattern6_strict_shadow_vm
  • Pattern6 (release adopt, VM): phase29ao_pattern6_release_adopt_vm
  • Pattern6: phase29ab_pattern6_*
  • Pattern6 (nested minimal release adopt, VM): phase29ap_pattern6_nested_release_adopt_vm
  • Pattern6 (nested minimal strict shadow, VM): phase29ap_pattern6_nested_strict_shadow_vm
  • Pattern7 (strict shadow, VM): phase29ao_pattern7_strict_shadow_vm
  • Pattern7 (release adopt, VM): phase29ao_pattern7_release_adopt_vm
  • Pattern7: phase29ab_pattern7_*
  • この pack が JoinIR 回帰の唯一の integration gatephase143_* は対象外)
  • JoinIR routing is plan/composer SSOT only (legacy loop table removed in Phase 29ap P12)
  • phase143_* は LoopBuilder 撤去 / plugin disable 固定 / LLVM exe 期待が古いので除外
  • phase286_pattern9_* は plugins disabled 経路の mismatch があるため legacy pack 側で SKIPphase29ae pack には含めない)
  • shadow adopt tag[coreplan/shadow_adopt:*])は filter_noise で除去される
  • タグ検証が必要な smoke は raw outputfilter 前)を参照する
  • タグ coverage SSOT: docs/development/current/main/design/coreplan-shadow-adopt-tag-coverage-ssot.md

Header PHI Entry/Latch Contract (SSOT)

  • Entry preds: entry_incoming のブロック + host entry block のみ
  • Latch preds: header の preds から entry preds を引いた残り
  • PHI inputs: entry preds は entry 値、latch preds は latch 値を流す
  • 根拠: src/mir/builder/control_flow/joinir/merge/README.mdPhase 29ae セクション)
  • 修正コミット: 11adec0ab

Commands

  • ./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh

Status

  • phase1883: PASSRC=9 を成功扱い)
  • pattern2: PASSJoinIR main param remap を carrier_order に揃える) cf95afbd8