From: | "Joachim Durchholz" <joachim_d@gmx.de> |
Newsgroups: | comp.compilers |
Date: | 23 Aug 2002 11:02:29 -0400 |
Organization: | Compilers Central |
References: | 02-07-098 02-07-121 02-07-128 02-08-005 02-08-024 02-08-054 |
Keywords: | performance |
Posted-Date: | 23 Aug 2002 11:02:29 EDT |
Marco van de Voort wrote:
> Tzvetan Mikov wrote:
>>I got pretty angry when I saw things like:
>> mov eax, ebx
>> mov ebx, eax
>>in the "optimized" code.
>
> But how did the overal performance differ? Everybody can single out some
> thing that was missed by the peephole optimiser (and maybe only because the
> construct just before or after it was "special"), but the overall code
> quality matters, and can (IMHO) be only done by benchmarking/profiling real
> applications.
I haven't done any benchmarks, but code like the above was scattered
all over the place. About 20% of instructions were such store/reload
pairs, at least for the code that I looked at. I found this appalling.
I once wrote a text editor in TP. I wrote a few lines of inline
assembly to access the single characters on a line and got an overall
speedup of one order of magnitude, both with and without array bounds
checking. The TP code couldn't handle more than about 2 keystrokes per
second, assembly was barely acceptable with bounds checking and
satisfactory without.
Again, this is all written from a years-old perspective. I have used
Borland Pascal, but I never encountered any serious performance
problems with Borland products afterwards (I don't know whether that's
because the code generators improved or whether processors got
faster).
Regards,
Joachim
Return to the
comp.compilers page.
Search the
comp.compilers archives again.