Main Content

Fix Polyspace Compilation Errors Related to Green Hills Compiler

If you choose greenhills for the option Compiler (-compiler), you encounter this issue.

Issue

During Polyspace® analysis, you see an error related to vector data types specific to Green Hills target rh850. For instance, you see an error related to identifier __ev64_u16__.

Cause

When compiling code using the Green Hills® compiler with target rh850, to enable single instruction multiple data (SIMD) vector instructions, you specify two flags:

  • -rh850_simd: You enable intrinsic functions that support SIMD vector instructions. The functions are defined in your compiler header files. These data types are available:

    • __ev64_u16__

    • __ev64_s16__

    • __ev64_u32__

    • __ev64_s32__

    • __ev64_u64__

    • __ev64_s64__

    • __ev64_opaque__

    • __ev128_opaque__

  • -rh850_fpsimd: You enable intrinsic functions that support floating-point SIMD vector instructions. The functions are defined in your compiler header files. These data types are available:

    • __ev128_f32__

    • __ev256_f32__

The Polyspace analysis does not enable SIMD support by default. You must identify your compiler flags to Polyspace.

Solution

In your Polyspace analysis, use the command-line option -compiler-parameter. In the user interface, you can enter the command-line option in the Other field, under the Advanced Settings in the Configuration pane.

  • -rh850_simd: For your Polyspace analysis, use

    -compiler-parameter -rh850_simd

  • -rh850_fpsimd: For your Polyspace analysis, use

    -compiler-parameter -rh850_fpsimd

    Note

    • __ev128_opaque__ is 16 bytes aligned in Polyspace.

    • __ev256_f32__ is 32 bytes aligned in Polyspace.