Green Hills コンパイラに関連する Polyspace コンパイル エラーの修正
オプション [コンパイラ] (-compiler)
に [greenhills]
を選択すると、この問題が発生します。
問題
Polyspace® 解析中、Green Hills ターゲット [rh850]
に固有のベクトル データ型に関連するエラーが表示されます。たとえば、識別子 __ev64_u16__
に関連するエラーが表示されます。
原因
ターゲットに [rh850]
を指定した Green Hills® コンパイラを使用してコードをコンパイルする場合、Single Instruction Multiple Data (SIMD) ベクトル命令を有効にするには、次の 2 つのフラグを指定します。
-rh850_simd
:SIMD ベクトル命令をサポートする組み込み関数を有効にします。この関数はコンパイラ ヘッダー ファイルで定義します。以下のデータ型を使用可能です。__ev64_u16__
__ev64_s16__
__ev64_u32__
__ev64_s32__
__ev64_u64__
__ev64_s64__
__ev64_opaque__
__ev128_opaque__
-rh850_fpsimd
:浮動小数点 SIMD ベクトル命令をサポートする組み込み関数を有効にします。この関数はコンパイラ ヘッダー ファイルで定義します。以下のデータ型を使用可能です。__ev128_f32__
__ev256_f32__
Polyspace 解析は、既定では SIMD サポートを有効にしません。Polyspace に対してコンパイラ フラグを指定しなければなりません。
解決法
Polyspace 解析で、コマンド ライン オプション -compiler-parameter
を使用します。ユーザー インターフェイスで [構成] ペインの [詳細設定] の下にあるOther
フィールドにこのコマンド ライン オプションを入力できます。
-rh850_simd
:Polyspace 解析には、以下を使用します。-compiler-parameter -rh850_simd
-rh850_fpsimd
:Polyspace 解析には、以下を使用します。-compiler-parameter -rh850_fpsimd
メモ
__ev128_opaque__
は Polyspace では 16 バイトにアライメントされます。__ev256_f32__
は Polyspace では 32 バイトにアライメントされます。