Project Home
Project Home
Trackers
Trackers
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - QCC Compiler error on NEON intrinsic only when using -finstrument-functions option: (1 Item)
   
QCC Compiler error on NEON intrinsic only when using -finstrument-functions option  
Hey guys,

I'm using some NEON intrinsics in C++ code targeting the Blackberry Dev Alpha Device. Below are the QCC calls.

This compiles fine:

qcc -o src/main.o ../src/main.c -V4.6.3,gcc_ntoarmv7le -w1 -I/Users/Jarrod/Documents/Dev/Blackberry/bbndk-10.0.4-beta/
target/qnx6/usr/include/freetype2 -I/Users/Jarrod/Documents/Dev/Blackberry/bbndk-10.0.4-beta/target/qnx6/../target-
override/usr/include -D_FORTIFY_SOURCE=2 -DUSING_GL11 -c -O0 -g -fstack-protector-all -mfloat-abi=softfp -mfpu=neon

This produces the error:

qcc -o src/main.o ../src/main.c -V4.6.3,gcc_ntoarmv7le -w1 -I/Users/Jarrod/Documents/Dev/Blackberry/bbndk-10.0.4-beta/
target/qnx6/usr/include/freetype2 -I/Users/Jarrod/Documents/Dev/Blackberry/bbndk-10.0.4-beta/target/qnx6/../target-
override/usr/include -D_FORTIFY_SOURCE=2 -DUSING_GL11 -c -O0 -g -fstack-protector-all -finstrument-functions -mfloat-abi
=softfp -mfpu=neon

The only difference between the two is the addition of the -finstrument-functions flag. 

The error I get is:

In file included from ../src/main.c:28:0:
/Users/Jarrod/Documents/Dev/Blackberry/bbndk-10.0.4-beta/host/macosx/x86/usr/lib/gcc/arm-unknown-nto-qnx8.0.0eabi/4.6.3/
include/arm_neon.h: In function 'vget_lane_s64':
/Users/Jarrod/Documents/Dev/Blackberry/bbndk-10.0.4-beta/host/macosx/x86/usr/lib/gcc/arm-unknown-nto-qnx8.0.0eabi/4.6.3/
include/arm_neon.h:4992:3: error: argument must be a constant

Digging around it seems that GCC might have some issues with intrinsics when set to -O0, but I tried with -O1 and got 
the same result (see final comment by Dmitry Moskalchuk): https://groups.google.com/forum/?fromgroups#!topic/android-ndk
/nyWARL6zFU0

Thanks for any help guys. I would love to leverage your awesome QNX Application Profiler with my NEON optimised routines
 as these are the really performance critical parts of my app.

Cheers,
Jarrod