On Monday, 2 de January de 2012 11.10.57, Thiago Macieira wrote:
> The code is compiling fine with GCC on x86, x86-64; ICC on x86-64 and I have
> a  linker error on ARM with Neon.

make clean solved the linker error. All my working configurations now build the
code:

gcc x86-64 64-bit -march=core2
        builds SSE2 and AVX helpers
icc x86-64 64-bit -march=corei7-avx
        builds AVX helpers only
gcc i386 -march=core2
        builds SSE2 and AVX helpers
gcc ARM -march=armv7-a -mfpu=neon
        builds Neon helpers only

I have also verified that a generic i386 (no -march=core2) and a generic ARM
(no -mfpu=neon) also work. They build, respectively, the plain, SSE2 and AVX
helpers and the plain and Neon helpers.

My MIPS build is broken because I haven't managed to install Mesa yet and
QtGui requires OpenGL to compile.

In particular, for the release x86-64 build above:

   text    data     bss     dec     hex filename
 204850    3224       0  208074   32cca qdrawhelper_avx.o
    506      16       8     530     212 qdrawhelper_plain.o
 229572    3224       0  232796   38d5c qdrawhelper_sse2.o
   2927       0       0    2927     b6f qdrawhelper_ssse3.o

The 3224 bytes of non-read-only data are actually .data.rel.* sections. That's
341 relocations in each of the helpers and 2 in the plain (the qt_memfill
wrappers). The total is 684 relocations, or 13.7% of the 4986 relative
relocations that end up in QtGui.

The relocations are actually indication of indirect branches, which aren't
that good for the CPU. Further optimisation work should look into replacing
those function tables with proper dispatcher code, and benchmark.

I will proceed to merging qblendfunctions and qmemfunctions into the draw
helpers.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
     Intel Sweden AB - Registration Number: 556189-6027
     Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to