説明
OCCURRENCE プラグマまたは指示子では、関数やループをパイプライン処理する際に次を指定します。パイプライン処理された関数やループ内で呼び出されるパイプライン処理された関数のコードは、外側の関数やループよりも低いレートで実行されます。低いレートで実行することで、そのパイプライン処理された呼び出しは、より低いレートでパイプライン処理され、最上位のパイプライン内で共有される可能性があります。次に例を示します。
- ループは N 回反復する。
- 条件文がループの一部を制御し、処理は M 回のみ実行されます。ここで、N は M の整数倍です。
- N/M の出現を条件とする条件文がコードを制御します。
OCCURRENCE レートを持つ領域を特定することで、ツールは外側スコープよりも大きな開始間隔で、関数やループをパイプライン処理できます。
構文
syn.directive.occurrence=[OPTIONS] <location>
-
<location>: 実行速度が遅いパイプライン処理された関数呼び出しを含むコード ブロックを指定します。
オプション
-
cycle=<int> - N/M の実行回数の比率を指定します。
- N は、外側の関数またはループが実行される回数です。
- M は、条件付き領域が実行される回数です。
重要: N は M の整数倍数である必要があります。 -
off=true - 指定した関数に対する OCCURRENCE (実行回数の比率設定) を無効にします。
例
関数 foo の領域 Cond_Region の実行頻度を 4 に指定します。この領域は、それを含むコードよりも 4 倍低速で実行されます。
syn.directive.occurrence=cycle=4 foo/Cond_Region