On Mon, Mar 21, 2011 at 4:25 AM, Jim Huang <jim.hu...@linaro.org> wrote:
> Hello list,
>
> Recently, Android team is working on integrating Linaro toolchain for
> Android and NDK.  According to the initial benchmark results[1],
> Linaro GCC is competitive comparing to Google toolchain.  In the
> meanwhile, we are trying to enable gcc-4.5 specific features such as
> Graphite and LTO (Link Time Optimization) in order to make the best
> choice for Android build system and NDK usage.  However, I encountered
> a problem about LTO and would like to ask help from toolchain WG.
>
> Assuming Linaro Toolchain for Android is installed in directory
> /tmp/android-toolchain-eabi, you can obtain Google's toolchain
> benchmark suite by git:
>  # git clone git://android.git.kernel.org/toolchain/benchmark.git
>
> You have to apply the attached patch in order to make benchmark suite
> work[2].  Then, change directory to skia:
>  # cd benchmark/skia
> And build skia bench with LTO enabled:
>  # ../scripts/bench.py --action=build
> --toolchain=/tmp/android-toolchain-eabi --add_cflags="-flto
> -user-linker-plugin"
>
> 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/Sk64.o <= src/src/core/Sk64.cpp
> CPP ARM obj/src/core/SkAlphaRuns.o <= src/src/core/SkAlphaRuns.cpp
> CPP ARM obj/src/core/SkBitmap.o <= src/src/core/SkBitmap.cpp
> CPP ARM obj/src/core/SkBitmapProcShader.o <= 
> src/src/core/SkBitmapProcShader.cpp
> CPP ARM obj/src/core/SkBitmapProcState.o <= src/src/core/SkBitmapProcState.cpp
> CPP ARM obj/src/core/SkBitmapProcState_matrixProcs.o <=
> src/src/core/SkBitmapProcState_matrixProcs.cpp
> src/src/core/SkBitmapProcShader.cpp: In function
> 'SkShader::CreateBitmapShader(SkBitmap const&, SkShader::TileMode,
> SkShader::TileMode, void*, unsigned int)':
> src/src/core/SkBitmapProcShader.cpp:243:13: warning: 'color' may be
> used uninitialized in this function
> 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.

I'm afraid I don't know what the fix is.  Anyone else?

-- Michael

_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to