Optimisation work on Zero/ARM

Xerxes Rånby xerxes at zafena.se
Fri Jul 10 03:24:10 PDT 2009


Greetings Ed!

I have been trying to compile the "BIG ASM" interpreter today in order
to check if something needs changing before moving your work into Icedtea.

Edward Nevill skrev:
>> I peeked at the sourcecode and it looks great!
>> Your changes are most portable for inclusion into Icedtea6/OpenJDK since
>> they are already contained in separate patches against the Icedtea6 tree
>>     
> >from 23 june 2009 in the debian/patches directory, fantastic.
>
> Would you be happy to review the changes for inclusion into IcedTea.
>
> === zero-asm-port.diff
>
> This contains the diffs to the ports/... part of IcedTea. The diffs are
> quite small (141 line) and are there mainly to provide hooks for the asm
> interpreter. The files affected are
>
> - zero.make
>
> Adds cppInterpreter_arm.o and rules to build it.
>   
I have found this line of zero.make in my way:

zero-asm-port.diff:+CFLAGS += -DHOTSPOT_ASM -DHW_NULL_PTR_CHECK
-march=armv5t -mtune=cortex-a8 -O2 -falign-functions=64 -falign-loops=8 -g0

I think it are causing my crosscompile build for my armv5te system to
fail with this error:

  -fpic -fno-rtti -fno-exceptions -D_REENTRANT -fcheck-new -g  -pipe 
-fno-strict-aliasing -DHOTSPOT_ASM -DHW_NULL_PTR_CHECK -march=armv5t
-mtune=cortex-a8 -O2 -falign-functions=64 -falign-loops=8 -g0
-DVM_LITTLE_ENDIAN  -Wpointer-arith -Wsign-compare    -c -o
adjoiningGenerations.o
/usr/src/openembedded/verdexpro/tmp/work/armv5te-angstrom-linux-gnueabi/openjdk-6-jre-6b16-r3/hg/icedtea6/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.cpp
| {standard input}: Assembler messages:
| {standard input}:14: Fatal error: alignments greater than 32 bytes not
supported in .text sections.
| {standard input}: Assembler messages:
| {standard input}:14: Fatal error: alignments greater than 32 bytes not
supported in .text sections.
| make[7]: *** [abstractCompiler.o] Error 1
| make[7]: *** Waiting for unfinished jobs....
| make[7]: *** [accessFlags.o] Error 1
| {standard input}: Assembler messages:
| {standard input}:14: Fatal error: alignments greater than 32 bytes not
supported in .text sections.
| make[7]: *** [adjoiningGenerations.o] Error 1
| {standard input}: Assembler messages:
| {standard input}:14: Fatal error: alignments greater than 32 bytes not
supported in .text sections.
| make[7]: *** [adaptiveSizePolicy.o] Error 1
| make[7]: Leaving directory
`/usr/src/openembedded/verdexpro/tmp/work/armv5te-angstrom-linux-gnueabi/openjdk-6-jre-6b16-r3/hg/icedtea6/openjdk-ecj/build/linux-arm/hotspot/outputdir/linux_zero_core/product'
| make[6]: *** [the_vm] Error 2

Are any of the cflags
-march=armv5t -mtune=cortex-a8 -O2 -falign-functions=64 -falign-loops=8 -g0
 crucial or just optimization related?

Most ARM Linux distributions will supply the correct CFLAGS so i dont
think we should have these turned on as default.

Cheers
Xerxes



More information about the zero-dev mailing list