メインコンテンツ

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