This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ARM CORTEX A8 : use of fpack-struct compiler directive

Note: This was originally posted on 27th May 2009 at http://forums.arm.com

Hi,

I am compiling an application with arm linux gcc version 4.2.3 (Sourcery G++ Lite 2008q1-126) with the compiler directive's.

I want to optimize this application for the ARM and I am not suppose to use DSP.
[font="Courier New"]
arm-linux-gcc ../Src/*.c ../Src/SimdFunctions.s ../Src/getRectSubPix.s -DOPT_WIN_SIZE -DENABLE_SIMD_GETRECTSUBPIX -DUSE_SIMD -DUSE_SIMD_DAVID -I ../Inc -mcpu=cortex-a8 -mfpu=neon -Wa,-mfpu=neon -mfloat-abi=softfp -o ../Obj/opt_blink.out -O3 -fpack-struct -freorder-blocks-and-partition -lm -lc -lgcc -ftree-vectorize[/font]

after compilation total number of lines of assembly code generated is 35563.

If i remove the compiler directive -fpack-struct the total number of lines of assembly code is 22354.

I checked this by writing a small C program which updates the structure that consists of 3 integer elements. consider if i want to write 55, 66, 77 to these three elements then

with -fpack-sturct directive the program uses byte store to store 55, 66, 77 and then fills the remaining bytes with zeros which generates around 20 lines of assembly code

whereas without -fpack-sturct it writes directly to the location and the assembly generated is is of about 5 lines.

Also help me in any compilation directives to be given to optimize even more.

thanks and regards
Shashi
shashi.ms@samsung.com
0