注意点
このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。
目次
- #126832 Set commit message for image pinning from Renovate
- #126826 Fix race condition in EvictionCount_NotOvercounted_WhenEntryAlreadyRemoved test
- #126825 Remove TODO for async devirtualization
- #126814 Add skill-validator structural checks for skills and agents
- #126813 Generate line number info in ilc and crossgen
- #126812 JIT: support SSA-aware PHI jump threading
- #126803 ARM64: Use fmov instead of umov for 64-bit integer ToScalar
- #126797 Assert handle is not null in HandleToObject
- #126796 JIT: Remove VNFOA_SharedStatic, ValueNumStore::IsSharedStatic, and shared-static column from valuenumfuncs.h
- #126775 Skip covariant-return test when running crossgen tests
- #126763 Support hardware with more than 1024 CPUs
- #126745 Restore iOS device CI jobs in runtime.yml
- #126718 Update .gitignore to include cache and dump files
- #126478 Improve Process support on MacCatalyst: use posix_spawn
- #126034 Remove deprecated OpenSSL RSA APIs
- #125211 [RyuJit] Remove
gtCallAddr - #124637 Add instruction set detection for SVE_AES, SVE_SHA3, SVE_SM4, SHA3, SM4
#126832 Set commit message for image pinning from Renovate
- 作成者: @mthalman
- 作成日時: 2026年04月13日 13:34:01(UTC)
- マージ日時: 2026年04月13日 17:36:34(UTC)
- ラベル: area-System.Text.Json
概要
Renovateの設定を更新し、コンテナイメージダイジェストのピニング更新時に、より具体的なコミットメッセージタイトル「Pin container image dependencies」を使用するようにしました。従来の汎用的な「Pin dependencies」から変更されます。
変更内容
- eng/renovate.json:
commitMessageTopic: "container image dependencies"をダイジェストピニング用のpackageRulesエントリに追加(+2/-1)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
この変更はRenovate生成のプルリクエストのメタデータに関する設定更新であり、ビルド・ランタイムの機能には影響しません。
#126826 Fix race condition in EvictionCount_NotOvercounted_WhenEntryAlreadyRemoved test
- 作成者: @cincuranet
- 作成日時: 2026年04月13日 07:50:37(UTC)
- マージ日時: 2026年04月13日 16:58:25(UTC)
- ラベル: area-Extensions-Caching
概要
EvictionCount_NotOvercounted_WhenEntryAlreadyRemovedテストにおける競合状態を修正するPR。バックグラウンドのScanForExpiredItemsタスクがテストの明示的なTryGetValueおよびCompact操作と競合し、エントリがConcurrentDictionaryから削除されても_accumulatedEvictionsがまだインクリメントされていない状態でGetCurrentStatisticsが呼ばれることで、エビクション数の過小計測が発生していた問題を解決。ExpirationScanFrequencyをTimeSpan.MaxValueに設定することで、バックグラウンドスキャンを事実上無効化する。
変更内容
- src/libraries/Microsoft.Extensions.Caching.Memory/tests/MemoryCacheMetricsTests.cs:
MemoryCacheOptions.ExpirationScanFrequencyをTimeSpan.MaxValueに設定(1行変更)
パフォーマンスへの影響
影響なし(テストコードの修正のため)
関連Issue
その他
このテスト修正はMicrosoft.Extensions.Caching.Memoryライブラリの内部テストに限定された変更で、公開API や本体ロジックには影響しません。テストの信頼性向上を目的としています。
#126825 Remove TODO for async devirtualization
- 作成者: @MichalStrehovsky
- 作成日時: 2026年04月13日 05:11:56(UTC)
- マージ日時: 2026年04月13日 21:58:02(UTC)
- ラベル: area-crossgen runtime-async
概要
CoreCLR JIT インターフェースのデバッグ時デバーチャライゼーション処理において、非同期バリアントに関する TODO コメントを削除し、対応する仮の例外処理を削除します。非同期デバーチャライゼーションサポートが修正されたため、この例外処理は不要になりました。
変更内容
- src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs: 非同期バリアント向けのデバーチャライゼーション関連 TODO コメントを削除(-3 行)
- DEBUG アサーション条件を厳格化し、非同期バリアントを含むあらゆる
CORINFO_DEVIRTUALIZATION_UNKNOWN失敗に対してトリガーするように変更(+1 行)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
この変更はコード品質の改善であり、非同期デバーチャライゼーションサポートが完全に実装されたことを反映しています。JIT コンパイル時のデバーチャライゼーション最適化プロセスに関連しており、ランタイムのコンパイラ部分に対する内部実装の変更です。
#126814 Add skill-validator structural checks for skills and agents
- 作成者: @danmoseley
- 作成日時: 2026年04月13日 00:18:03(UTC)
- マージ日時: 2026年04月13日 15:58:23(UTC)
- ラベル: area-Infrastructure area-skills
概要
dotnet/runtime に GitHub Actions ワークフローを追加し、.github/skills/ および .github/agents/ 配下のファイル変更時に skill-validator check を実行してスキルとエージェント定義の構造的妥当性を検証します。AOT コンパイル済みバイナリを使用するため .NET ランタイムは不要です。現在 11 個のスキルと 2 個のエージェントが定義されており、マージ前に不正な frontmatter やフィールド欠落などの問題を検出できます。
変更内容
.github/workflows/skill-validation.yml(新規): パス フィルター、スパース チェックアウト、スキルとエージェントの個別検証実行、同時実行制御、ステップ サマリー出力を含むワークフロー。nightly リリースのskill-validatorバイナリを使用.github/agents/agentic-workflows.agent.md: YAML frontmatter にnameフィールドを追加(バリデーター互換性対応).github/skills/api-proposal/SKILL.md: 参照ファイルパス表記の統一調整.github/skills/issue-triage/SKILL.md: 書式・表現の更新とアンチパターン ガイダンスの明確化.github/skills/update-os-coverage/SKILL.md: 書式調整
パフォーマンスへの影響
影響なし(CI ワークフロー追加のため開発者のローカル実行環境には影響なし。パス フィルター使用により、スキル/エージェント変更以外の PR では実行されない)
関連Issue
dotnet/arcade-skills#19(参考設計)
その他
- 設計選定理由:
- パス フィルター: runtime の高い PR 流量対応(99%+ の PR は非実行)
- スパース チェックアウト: リポジトリ全体でなくスキル/エージェント ディレクトリのみ取得
- スキル/エージェント個別実行:
skill-validator checkは--plugin/--skills/--agentsの いずれか一つのみ指定可能 - Nightly バイナリ使用(ピン留めなし): dotnet/skills の検証改善を自動取得
- ステップ サマリー出力(200 行制限): Actions UI からの診断を高速化
- テスト: ワークフロー自体が main ブランチに存在しない限り CI では発火しない。マージ後、
.github/skills/**または.github/agents/**への変更で自動実行。workflow_dispatchによる手動テストも可能
#126813 Generate line number info in ilc and crossgen
- 作成者: @MichalStrehovsky
- 作成日時: 2026年04月12日 23:42:29(UTC)
- マージ日時: 2026年04月13日 18:06:17(UTC)
- ラベル: area-NativeAOT-coreclr
概要
AOTコンパイラツール(ilc/crossgen2)でスタックトレースの行番号情報を生成できるようにする変更です。共有MSBuildプロパティでStackTraceLineNumberSupportを有効化し、デバッグ体験を向上させます。
変更内容
src/coreclr/tools/aot/AotCompilerCommon.props:StackTraceLineNumberSupportプロパティを有効化(ilc/crossgen2の両コンパイラで共有)
パフォーマンスへの影響
影響なし
関連Issue
その他
なし
#126812 JIT: support SSA-aware PHI jump threading
- 作成者: @AndyAyersMS
- 作成日時: 2026年04月12日 20:29:30(UTC)
- マージ日時: 2026年04月13日 22:51:11(UTC)
- ラベル: area-CodeGen-coreclr
概要
JITの冗長分岐排除(redundant branch elimination)機能を拡張し、PHI値を使用するブロックを通じたジャンプスレッド化をサポートしました。PHIの使用がスレッド化されるブロックとその直後の後続ブロック内で完全に追跡できる場合に、SSA/VN使用箇所を書き換えて安全にスレッド化を行う機能を実装しています。
変更内容
- redundantbranchopts.cpp: PHI SSA使用の検出と後続ブロックのSSA/VN書き換え処理を実装。ジャンプスレッド適格性チェックをリファクタリングし、より詳細な分類情報を返すように変更
- compiler.h:
JumpThreadCheckResult型を追加し、PHI使用分析・書き換え用の新しいヘルパーメソッドを宣言 - compmemkind.h: 冗長分岐/ジャンプスレッド化データ用の新しいアロケータ種別を追加
- JumpThreadPhi.cs/csproj: PHIベースのジャンプスレッド化シナリオをカバーするリグレッションテストを追加
パフォーマンスへの影響
コード生成の品質向上が期待されます(より積極的な分岐最適化により)。ただし、具体的なベンチマーク数値は提供されていません。
関連Issue
#126703(完全な修正はまだ)
その他
この変更はJITコンパイラの内部実装(最適化パス)に関するもので、公開APIに影響はありません。SSA形式への対応に基づいた最適化であり、ジャンプスレッド化の保守性向上に焦点が当たっています。
#126803 ARM64: Use fmov instead of umov for 64-bit integer ToScalar
- 作成者: @Copilot
- 作成日時: 2026年04月12日 01:23:27(UTC)
- マージ日時: 2026年04月13日 04:01:01(UTC)
- ラベル: area-CodeGen-coreclr
概要
ARM64 JITコードジェネレータで、Vector64/Vector128.ToScalarが64ビット整数型(long/ulong)を扱う場合、umov(ベクトル要素抽出)ではなくfmov(ベクトル↔汎用レジスタ間の移動)を発行するように変更しました。他の要素型については既存の動作を保持します。
変更内容
- src/coreclr/jit/hwintrinsiccodegenarm64.cpp: 64ビット整数型の
ToScalar呼び出しを特殊処理し、umovの代わりにINS_fmovをemitIns_Mov経由で発行するようコードを修正(+10/-2行)
パフォーマンスへの影響
影響なし(指定されたベンチマーク結果なし)
関連Issue
なし
その他
- ARM64 JIT クロスビルド: 警告0、エラー0で正常にコンパイル完了
- CodeQL検査および都市レビュー合格済み
- この変更は内部実装(JITコードジェネレータ)であり、公開APIに影響なし
#126797 Assert handle is not null in HandleToObject
- 作成者: @MichalPetryka
- 作成日時: 2026年04月11日 20:30:18(UTC)
- マージ日時: 2026年04月13日 02:11:07(UTC)
- ラベル: community-contribution area-crossgen2-coreclr
概要
HandleToObject メソッドにおいて、ハンドルがnullでないことを確認するアサーションを追加します。この変更により、以前は暗号的な IndexOutOfRangeException が発生していた状況で、より明確なエラー情報を提供するようになります。
変更内容
- src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs: HandleToObject メソッドにnullチェック用のアサーション(1行追加)を実装
パフォーマンスへの影響
影響なし(アサーションはデバッグビルドにおける診断用)
関連Issue
なし
その他
本変更はJIT インターフェースの内部実装に対するもので、公開APIへの影響はありません。ハンドル渡しが不適切な場合の診断可能性が向上します。
#126796 JIT: Remove VNFOA_SharedStatic, ValueNumStore::IsSharedStatic, and shared-static column from valuenumfuncs.h
- 作成者: @Copilot
- 作成日時: 2026年04月11日 20:06:10(UTC)
- マージ日時: 2026年04月13日 14:20:32(UTC)
- ラベル: area-CodeGen-coreclr
概要
CoreCLR JITの値番号付けインフラストラクチャから未使用の「shared-static」関数属性を削除し、値番号付け関数メタデータとそれに関連するテーブルを簡略化します。
変更内容
- valuenum.h:
VNFOA_SharedStatic列挙値、関連するシフト定数、静的アサーションを削除。ValueNumStore::IsSharedStatic()メソッドの宣言と実装を削除。ValueNumFuncDefマクロの署名を更新し、shared-static パラメータを廃止。 - valuenum.cpp:
IsSharedStaticの実装を削除。操作属性生成・検証・名前マクロを新しいValueNumFuncDef形状に対応。 - valuenumfuncs.h: 全
ValueNumFuncDefエントリ(ハードウェア組み込み展開を含む)から最終の論理値列を削除。ヘッダーコメント更新。コード形式化の修正(長い関数署名とValueNumFuncDefテーブル初期化マクロの単一行への統合、末尾の空白と長いコメント修正)。
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
ビルド検証済み(リリース + チェック構成、警告0件、エラー0件)。内部実装の簡略化であり、公開APIへの影響なし。
#126775 Skip covariant-return test when running crossgen tests
- 作成者: @jtschuster
- 作成日時: 2026年04月10日 22:50:13(UTC)
- マージ日時: 2026年04月13日 16:43:55(UTC)
- ラベル: area-Infrastructure runtime-async area-crossgen2-coreclr
概要
crossgen/crossgen2テストの実行時にasync/covariant-returnテストプロジェクトをスキップするための変更。#126755でcrossgen2がasync メソッドの共変戻り値型処理に対応するまでの一時的な対応です。
変更内容
src/tests/async/covariant-return/covariant-returns.csproj:CrossGenTestオプトアウトエントリを追加(+2行)
パフォーマンスへの影響
影響なし
関連Issue
その他
このPRはouterloopテスト実行を緑色に保つための暫定措置です。根本的な修正が完了した際には、このオプトアウト設定を削除する必要があります。
#126763 Support hardware with more than 1024 CPUs
- 作成者: @janvorli
- 作成日時: 2026年04月10日 21:21:25(UTC)
- マージ日時: 2026年04月13日 23:16:41(UTC)
- ラベル: area-GC-coreclr
概要
1024個を超えるCPUを搭載したLinuxマシンでのランタイム初期化失敗に対応するPR。sched_getaffinityの固定サイズのcpu_set_tを動的に割り当てられたCPUセット構造に変更し、任意の数のCPUをサポート。GCのヒープ上限は1024個に保ったまま、CPU関連のデータ構造を動的化。MAX_SUPPORTED_CPUS定数をMAX_SUPPORTED_HEAPSに名称変更してコード意図を明確化。
変更内容
- PAL/ランタイム初期化:
CPU_ALLOC/CPU_ALLOC_SIZEを使用した動的サイズCPUセットでsched_getaffinity/sched_setaffinity呼び出しを更新(thread.cpp、sysinfo.cpp、PalUnix.cpp) - GC インターフェース:
GCToOSInterface::GetMaxProcessorCount()新規追加、AffinitySetを動的割り当て対応に修正(gcenv.os.h) - GC マッピング構造:
proc_no_to_heap_no、numa_node_to_heap_mapをシステムの実際のプロセッサ数に基づいて動的に割り当て(gc.cpp、interface.cpp) - 定数名変更:
MAX_SUPPORTED_CPUS→MAX_SUPPORTED_HEAPS(gcenv.os.h)で配列インデックスが実際にはヒープ数であることを明示 - Windows/Unix環境対応: 各環境の
gcenv.windows.cpp、gcenv.unix.cppでプロセッサアフィニティセットの初期化を動的化
パフォーマンスへの影響
影響なし。動的割り当てはランタイム初期化時のみで、実行時の性能に影響しない。ヒープ数の上限(1024)は変わらず、メモリ効率は改善(実際のCPU数に応じた割り当て)。
関連Issue
その他
Copilotレビューで3件の低信頼度コメント指摘:
- Windows CPU Groups有効時、グループ番号を含むプロセッサインデックスの処理で疎なマスク対応が不完全
- Unix環境で
g_totalCpuCountがオンラインCPU数なため、オフラインCPUがある場合に最大インデックス値を逃す可能性 - グループ別ActiveProcessorMask対応が不十分の可能性
これらは現在の実装の潜在的なエッジケースを指摘しているため、スパースプロセッサ配置環境でテストが推奨される。
#126745 Restore iOS device CI jobs in runtime.yml
- 作成者: @kotlarmilos
- 作成日時: 2026年04月10日 08:23:18(UTC)
- マージ日時: 2026年04月13日 07:18:06(UTC)
- ラベル: area-Diagnostics-coreclr os-ios
概要
iOS デバイス(arm64)CI ジョブを runtime.yml の3つの iOS スモークテスト(Mono AOT、NativeAOT、CoreCLR)に復元します。デバイスキューの信頼性の問題により導入されていた iossimulator_arm64 ワークアラウンドを置き換えます。
変更内容
eng/pipelines/runtime.yml: Mono、NativeAOT、CoreCLR のスモークテストジョブでiossimulator_arm64をios_arm64に置き換え(3行削除、6行追加)
パフォーマンスへの影響
影響なし
関連Issue
その他
- PR 説明は AI/Copilot 生成です
- 本来は CoreCLR の Module フィールドガード調整(
ceeload.h、ceeload.cpp)も含まれていた模様ですが、提供されたファイル変更情報に反映されていません
#126718 Update .gitignore to include cache and dump files
- 作成者: @jtschuster
- 作成日時: 2026年04月09日 16:50:00(UTC)
- マージ日時: 2026年04月13日 18:21:47(UTC)
- ラベル: area-Infrastructure
概要
.gitignoreを更新し、C# Dev Kit拡張機能が生成するキャッシュファイル(.lscache)とダンプファイルをGitの追跡から除外するパターンを追加します。
変更内容
- .gitignore: C# Dev Kit拡張機能のLSP(Language Server Protocol)キャッシュファイル(.lscache)とダンプファイルを無視するパターンを追加(+7行)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
この変更により、開発者のローカル環境でC# Dev Kit拡張機能が自動生成するキャッシュファイルおよびダンプファイルがGitリポジトリにコミットされるのを防ぎます。
#126478 Improve Process support on MacCatalyst: use posix_spawn
- 作成者: @Copilot
- 作成日時: 2026年04月02日 17:58:32(UTC)
- マージ日時: 2026年04月13日 14:21:10(UTC)
- ラベル: area-System.Diagnostics.Process
概要
MacCatalystにおけるプロセス生成機能を改善し、macOSで利用可能なposix_spawnによる高速パスを有効化するもの。従来MacCatalystはプロセス生成の実装がなく、初期化されていないchildPidを返す回帰状態にあった。posix_spawnを活用することでパフォーマンス向上とMacCatalyst上での正しい動作を実現する。
変更内容
- configure.cmake:
posix_spawn_file_actions_addchdir_npの利用可能性を検出するCMakeチェックを追加し、MacCatalystなど利用不可なプラットフォームを自動で除外 - pal_config.h.in: CMakeで検出した
HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR_NPマクロを生成されたヘッダに含める - pal_process.c:
posix_spawnの前処理ガード#if defined(TARGET_OSX)を#if defined(TARGET_OSX) || defined(TARGET_MACCATALYST)に拡張*childPid初期化ガードも同様に拡張して-1の確実な初期化を保証- MacCatalyst特有の機能制限に対応した2つのケーパビリティベースガードを追加:
#if !HAVE_FORK:setCredentials=true時にENOTSUP失敗(fork利用不可のため)#if !HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR_NP:cwd != NULL時にENOTSUP失敗(関数利用不可のため)
posix_spawn_file_actions_addchdir_np呼び出しをケーパビリティベースのガードで保護
パフォーマンスへの影響
posix_spawnの利用により、MacCatalestでのプロセス生成が高速化される。従来のフォールバック実装(戻り値-1)と比較してパフォーマンス向上が期待できる。
関連Issue
その他
MacCatalystでのプロセス生成実装は、forkがカーネル制限で利用不可、posix_spawn_file_actions_addchdir_npが未利用可という制約がある。この変更はケーパビリティベースの前処理ガードで制約を明示的に処理し、将来的にこれらの関数がMacCatalystで利用可能になった場合にも対応可能な設計となっている。
#126034 Remove deprecated OpenSSL RSA APIs
- 作成者: @PranavSenthilnathan
- 作成日時: 2026年03月24日 15:59:21(UTC)
- マージ日時: 2026年04月13日 19:35:55(UTC)
- ラベル: area-System.Security
概要
OpenSSLの非推奨なRSA APIを削除し、EVP_PKEYベースのAPIへの移行を完了します。RSA型とRSA_*メソッドをEVP_PKEYへ置き換え、証明書生成とキー検証パスを更新します。ビルドはOpenSSL 3.0以降で非推奨APIの廃止に対応しています。
変更内容
- pal_ssl.c: 自署証明書生成ロジックをEVP_PKEYベースに変更し、従来のRSA抽出/設定処理を削除
- pal_evp_pkey.c:
EVP_PKEY_get_bn_paramを使用したQuickRsaCheckEvpを導入し、OpenSSL 3+でレガシーRSAオブジェクトアクセスを回避 - pal_evp_pkey_rsa.c: 秘密鍵検証ロジックをヘルパー関数に統合し、
EVP_PKEY_get0_RSAの動的検出に対応 - opensslshim.h: RSA関連バインディングを「lightup」(実行時検出)関数に変換し、フォールバック宣言を追加
- configure.cmake: RSA プリミティブの可用性検出プローブ(RSA_new/RSA_free)を追加
- pal_crypto_config.h.in:
HAVE_OPENSSL_RSA_PRIMITIVEフィーチャー定義を追加 - osslcompat_30.h: EVPパラメータ抽出用のRSAパラメータ名定数を追加
- RSACreateTests.cs: テストケースを追加
パフォーマンスへの影響
影響なし
関連Issue
その他
- この変更はOpenSSL 3.0以降の非推奨API廃止に対応した内部実装の更新です
- 公開APIへの破壊的変更はありません
- RSA機能が利用不可の環境にも対応できる「lightup」バインディングにより、互換性を維持しながら段階的な移行が可能です
#125211 [RyuJit] Remove gtCallAddr
- 作成者: @SingleAccretion
- 作成日時: 2026年03月05日 11:22:17(UTC)
- マージ日時: 2026年04月13日 12:17:03(UTC)
- ラベル: area-CodeGen-coreclr community-contribution
概要
Call ノードが持つ冗長なフィールド gtCallAddr を削除し、すべてのコール型で gtControlExpr に統一する変更です。これまで gtCallAddr と gtControlExpr はコール型ごとに使い分けられていましたが、目的は同じ(コール対象の保持)であったため、これを整理して実装の複雑性を低減します。間接呼び出しでは常に有効ですが、ヘルパー呼び出しとユーザー呼び出しでは nullptr となる場合があります。
変更内容
- gentree.h:
GenTreeCallからgtCallAddrフィールド(10行削除)を削除、gtControlExprの使用を統一 - gentree.cpp: コール関連ロジックを再構成(34行追加/74行削除)
- compiler.h/hpp:
gtCallAddr関連のマクロ定義・インライン関数を削除/修正 - *コード生成(codegen.cpp)**: 各アーキテクチャ(ARM、LoongArch64、RISC-V、x86/x64、WebAssembly)でコール命令生成ロジック更新
- JIT最適化パス: lower.cpp、morph.cpp、lsra(レジスタ割り当て)ファイルでの
gtCallAddr参照をすべてgtControlExprに置換 - その他: フローグラフ、アサーション伝播、間接呼び出し変換などの各最適化パス更新
パフォーマンスへの影響
ベンチマーク結果は差分なし(No diffs)。ただし Linux x64 での軽微なインライニング減少(GenTreeCall::IsHelperCall の変更に伴う)が報告されており、PGO(Profile Guided Optimization)更新で解決予定。
関連Issue
なし
その他
- この変更は内部実装の整理であり、公開API に影響なし
- 破壊的変更ではない(コンパイラ内部の簡素化)
- テスト結果は良好(ビルド成功)
#124637 Add instruction set detection for SVE_AES, SVE_SHA3, SVE_SM4, SHA3, SM4
- 作成者: @a74nh
- 作成日時: 2026年02月20日 12:50:19(UTC)
- マージ日時: 2026年04月13日 14:39:51(UTC)
- ラベル: area-CodeGen-coreclr community-contribution
概要
ARM64プロセッサの新しい暗号化命令セット(SHA3、SM4、およびSVE拡張機能のSVE_AES、SVE_SHA3、SVE_SM4)に対する命令セット検出とサポートを追加します。ランタイム、JIT、Ready2Run(R2R)ツールチェーン全体で、これらの機能を一貫して認識・制御できるようにします。
変更内容
- CPU機能検出:
minipal_getcpufeaturesを拡張し、Linux hwcaps、Apple sysctl、WindowsIsProcessorFeaturePresentを通じてSHA3/SM4およびSVE暗号拡張を検出 - 命令セット定義: ARM64向け新規命令セット(R2R ID・含意を含む)を追加し、CoreCLR命令セットEnum・ヘルパーに反映
- JIT/コンパイル制御: CLRConfig/JitConfig スイッチで新規命令セットの有効化を制御し、機能ビットをEE JITコンパイルフラグに統合
- R2R対応: 新規命令セット向けのR2R命令セットIDマッピング(
ReadyToRunInstructionSet)を追加
パフォーマンスへの影響
影響なし(検出機構の追加であり、既存コード生成には直接的な影響なし)
関連Issue
その他
- JIT/EEバージョンGUID(
jiteeversionguid.h)が変更されています CorInfoInstructionSet.csに大幅な変更があり、命令セット列挙型の検証・マッピングロジックが拡張されています- 内部実装(ネイティブ側ヘッダ・C実装、JIT設定)の変更であり、公開APIの破壊的変更はありません