On 12 Dec 2006, at 17:42, Ronald Vogelaar wrote:
Coming from Unix/Linux world, there's one thing that I noticed
about your compiler settings. You use GCC_OPTIMIZATION_LEVEL = s.
It is commonly accepted nowadays that -Os does not generally create
the fastest binaries. You should use -O3 or at least -O2.
Thanks Ronald, I'll be giving that a go. Coming from the MrCpp
world ;) I've been used to finding that the smaller executables are
generally faster, but I guess this no longer applies when not using
the MrCpp compiler. MrCpp is some really ancient compiler Apple made
made 7 years ago that generates the best PPC code I've ever seen. I
think it still did have optimisations for G3, although not G4 or G5.
Having said that, I can't imagine that being the cause of a massive
slowdown. But why do you not use -fUnroll_loops?
Erm... I dunno. Basically because I don't want all the loops
unrolled, only the most important ones. Silly eh? I'll play it on the
safer (but fatter) side this time, and unroll the loops.
I also think you can safely assume SSE3 to be present in all Intel
Macs (Though I am unsure whether that would actually bring you
anything.
Yeah, I had no idea what SSE3 was or if it is on Intel Macs, but now
that I know it's there, I'll add it. It can't hurt.
Ronald Vogelaar
http://www.rovosoft.com
Theodore H. Smith wrote:
Hi people,
I'm compiling my ElfData plugin with Xcode for UB.
It seems there is a big slow down on intel. I can't figure out
why. Many of my functions are running around 2x slower than the
PPC version!!
So basically, if I have these stats:
PPC plugin compiled with Xcode
Intel plugin compiled with Xcode
PPC app compiled with RB2006
Intel app compiled with RB2006
Then, the Intel version of my plugin is 2x slower relative to
REALbasic. I'm assuming REALbasic is the same, but ElfData is
running slower. I'm also getting similar results when comparing
ElfData to perl, so I don't think it's just REALbasic that is
optimised for intel, it's more like ElfData's compiler settings
need fixing for Intel.
Is something up? Something isn't making sense here.
I'm thinking I gotta improve my speed test project, to use a
scripted test, so that I can get a complete coverage run, so I can
automatically compare entire datasets between runs. This way, I
can get a one stop fix to just compare what the effects of various
compiler settings on my plugin's overall performance.
Then I'll do a proper comparison. I'll test CW vs MrCpp vs
Xcode :) and this time get a full thorough coverage. MrCpp won't
do Intel, alas, but it does G5 just fine.
I bought myself a copy of RB2006, just for the sake of testing my
plugin for Intel Macs, btw :)
My settings in Xcode are thus:
GCC_GENERATE_DEBUGGING_SYMBOLS = NO
GCC_DEBUGGING_SYMBOLS = default
GCC_ENABLE_SYMBOL_SEPARATION = YES
GCC_OPTIMIZATION_LEVEL = s
GCC_NO_COMMON_BLOCKS = NO
GCC_REUSE_STRINGS = YES
GCC_DYNAMIC_NO_PIC = NO
GCC_FAST_OBJC_DISPATCH = NO
GCC_ENABLE_OBJC_GC = NO
GCC_UNROLL_LOOPS = NO
GCC_FAST_MATH = YES
GCC_STRICT_ALIASING = NO
GCC_MODEL_TUNING = G5
GCC_MODEL_PPC64 = NO
GCC_AUTO_VECTORIZATION = NO
GCC_ENABLE_SSE3_EXTENSIONS = NO
GCC_FEEDBACK_DIRECTED_OPTIMIZATION = Off
GCC_SYMBOLS_PRIVATE_EXTERN = NO
GCC_INLINES_ARE_PRIVATE_EXTERN = YES
GCC_ENABLE_FIX_AND_CONTINUE = NO
GCC_OBJC_CALL_CXX_CDTORS = NO
GCC_THREADSAFE_STATICS = NO
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO
GCC_GENERATE_TEST_COVERAGE_FILES = NO
any problems here? Firstly, I'm not so sure about that
GCC_MODEL_TUNING = G5 line... If I am targeting intel, why should
the instructions be scheduled for G5? Won't that kill the flow?
But I can't actually choose intel from Xcode's UI!!
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>
--
http://elfdata.com/plugin/
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>