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 バイトにアライメントされます。