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