Is there any reason why -mfloat-abi=hardfp is not supported with the
NDK's version of gcc?
I'm a little unhappy with:
- excessive library size (.so compiles to 15Mb (!), 1.1Mb after
running strip. Size is ~200Kb on other platforms.)
- floating point performance
and suspect that -mfloat-abi=softfp is to blame for both.
Running:
C:\android\android-ndk-r4\build\prebuilt\windows\arm-eabi-4.4.0\bin
\arm-eabi-gcc ... -march=armv7-a -mfloat-abi=hard -mfpu=vfp -
mtune=cortex-a8 ...
gives:
unimplemented: -mfloat-abi=hard and VFP
Has this just been disabled for the NDK's version of gcc? (Could I
install another gcc and expect this to work?)
Running:
cat /proc/cpuinfo
reports:
vfp and vfpv3
as available on my target device.
- Stu
--
You received this message because you are subscribed to the Google Groups "android-ndk" group.
To post to this group, send email to andro...@googlegroups.com.
To unsubscribe from this group, send email to android-ndk...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/android-ndk?hl=en.
My understanding for softfp is that I pay an overhead for:
- a function call
- a register read and a register write
for every floating point operation.
My code size will be bigger (maybe not much), and execution slower for
every FP operation even if the FPU in the implementation. Correct?
We've found that inlining our inner loops sped up our library 3x on
other platforms. I pretty sure having all fp operations as function
calls will result in very bad performance for us as it will remove
this inlining.
I'm mostly interested in profiling right now and can distribute softfp
and hard fp version of my .so if required. So, what to do?
- Stu
Thanks David,
My understanding for softfp is that I pay an overhead for:
- a function call
- a register read and a register write
for every floating point operation.
My code size will be bigger (maybe not much), and execution slower for
every FP operation even if the FPU in the implementation. Correct?
We've found that inlining our inner loops sped up our library 3x on
other platforms. I pretty sure having all fp operations as function
calls will result in very bad performance for us as it will remove
this inlining.
I'm mostly interested in profiling right now and can distribute softfp
and hard fp version of my .so if required. So, what to do?