ICorProfilerFunctionControl::SetCodegenFlags メソッド

Just-In-Time (JIT) の再コンパイルされた関数に対してコード生成を制御するために、COR_PRF_CODEGEN_FLAGS 列挙からいくつかのフラグを設定します。

構文

HRESULT SetCodegenFlags(  
    [in] DWORD flags);  

パラメーター

flags
[in] COR_PRF_CODEGEN_FLAGS 列挙体からの 1 つ以上のフラグ。

解説

プロファイラーは ICorProfilerCallback4::GetReJITParameters コールバックを介して、このインターフェイスのインスタンスを取得します。 SetCodegenFlags によってプロファイラーは、再コンパイルされた関数のコード生成を制御できるようになります。 他のすべての JIT 再コンパイル パラメーターと同様に、コード生成フラグは関数のすべてのインスタンスに適用されます。

JIT コンパイラは関数をコンパイルするとき、これらのコンパイル フラグを他のソースによって指定された他のフラグと共に考慮します。 その他のソースには、デバッガー、ICorProfilerInfo::SetEventMask メソッド (COR_PRF_DISABLE_INLINING および COR_PRF_DISABLE_OPTIMIZATIONS の値を指定) を使用して起動時にプロファイラーによって設定されたグローバル フラグ、およびプロファイラーの ICorProfilerCallback::JITInlining コールバックが含まれます。 JIT コンパイラは、最小限の最適化を要求するソースに優先順位を付けます。 たとえば、プロファイラーが起動時に COR_PRF_DISABLE_INLINING を指定したが、ICorProfilerFunctionControl::SetCodegenFlags コールバックで COR_PRF_CODEGEN_DISABLE_INLINING を指定しない場合でも、インライン展開は無効になります。 同様に、プロファイラーによって SetCodegenFlagsCOR_PRF_CODEGEN_DISABLE_INLINING を指定せず、ICorProfilerCallback::JITInlining コールバックを使用したインライン展開を無効にした場合は、インライン展開が無効になります。

必要条件

:システム要件」を参照してください。

ヘッダー : CorProf.idl、CorProf.h

ライブラリ: CorGuids.lib

.NET Framework のバージョン: 4.5 以降で使用可能

関連項目