On 21 March 2011 06:01, Michael Hope michael.hope@linaro.org wrote:
On Mon, Mar 21, 2011 at 4:25 AM, Jim Huang jim.huang@linaro.org wrote:
[...]
The build process would be interrupted by gcc: make -j4 --warn-undefined-variables -f ../scripts/build/main.mk TOOLCHAIN=/tmp/android-toolchain-eabi ADD_CFLAGS="-flto -user-linker-plugin" build
[...]
CPP ARM obj/src/core/SkBitmapSampler.o <= src/src/core/SkBitmapSampler.cpp src/src/core/SkBitmapProcState_matrixProcs.cpp:530:1: sorry, unimplemented: gimple bytecode streams do not support machine specific builtin functions on this target
Hi Jim. This is being caused by the NEON intrinsics in SkBitmapProcState_matrixProcs.cpp such as the vdupq_n_s32() in decal_nofilter_scale(). If you wanted a first pass on LTO vs non-LTO then you could build SKIA without the NEON optimisations and see how it compares.
hi Michael,
Thanks a lot for your help. After disabling NEON, the skia benchmark is able to be built with LTO now. The modification is attached in this mail.
Also, I prepare the reproducible as following:
$ cat neon-intrinsics.c #include <stdint.h> #include <arm_neon.h>
void foo() { int32x4_t result_vec = vdupq_n_s32(0); }
$ arm-eabi-gcc -c -mfloat-abi=softfp -mfpu=neon -flto -user-linker-plugin -c neon-intrinsics.c neon-intrinsics.c:7:1: sorry, unimplemented: gimple bytecode streams do not support machine specific builtin functions on this target
I'm afraid I don't know what the fix is. Anyone else?
Sincerely, -jserv