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.