[fpc-devel] LEA instruction speed

J. Gareth Moreton gareth at moreton-family.com
Tue Oct 10 11:23:07 CEST 2023


Looking at the text log, the results are a bit strange and I can't 
easily explain it.  Normally a system interrupt would increase the time 
taken.

Let me know if increasing the iteration count fixes it or not.

Kit

On 10/10/2023 09:57, Tomas Hajny wrote:
> On 2023-10-09 20:51, J. Gareth Moreton via fpc-devel wrote:
>
>
> Hi Kit,
>
>> I updated the "blea" test in the merge request so it now displays the
>> processor brand name on x86_64; however, it is not fetched under i386
>> because CPUID was not introduced until later 486 processors. I've
>> attached it to this e-mail if anyone wants to take a look to ensure I
>> haven't broken something.
>
> I don't know what's broken, but the results vary so much on a fast 
> machine that they are unusable for any measurement from my point of 
> view (standard 3.2.2 compiler, compiled with -O4 and running under MS 
> Windows this time). Sometimes the ADD version shows 0.0 ns/call, 
> sometimes the LEA version shows 0.0 ns/call (32-bits) or 0.1 ns/call 
> (64-bits). See the attached results (the CPU is only displayed for the 
> 64-bit compilation, but it's obviously the same CPU).
>
> Tomas
>
>
>>
>> On 09/10/2023 18:01, J. Gareth Moreton via fpc-devel wrote:
>>> Thank you very much!  That processor is built on the Excavator 
>>> architecture and lines up with the flag I put in the merge request 
>>> (i.e. it has the "fast LEA" hint).
>>>
>>> I honestly didn't expect this much testing feedback, so thank you all!
>>>
>>> Gareth aka. Kit
>>>
>>> P.S. I'm tempted to extend the test slightly to actually name the 
>>> CPU automatically.
>>>
>>> On 09/10/2023 15:40, Jean SUZINEAU via fpc-devel wrote:
>>>> My results:
>>>> jean at First-Boss:~/temp$ cat /proc/cpuinfo | grep "model name"
>>>> model name    : AMD A6-7480 Radeon R5, 8 Compute Cores 2C+6G
>>>> jean at First-Boss:~/temp$ /usr/bin/fpc blea.pp
>>>> Free Pascal Compiler version 3.2.2 [2021/07/09] for x86_64
>>>> Copyright (c) 1993-2021 by Florian Klaempfl and others
>>>> Target OS: Linux for x86-64
>>>> Compiling blea.pp
>>>> Linking blea
>>>> 95 lines compiled, 0.2 sec
>>>> jean at First-Boss:~/temp$ ./blea
>>>>    Pascal control case: 5.1 ns/call
>>>>  Using LEA instruction: 0.5 ns/call
>>>> Using ADD instructions: 0.8 ns/call
>>>> jean at First-Boss:~/temp$
>>>>
>>>> _______________________________________________
>>>> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
>>>> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>>>>
>>> _______________________________________________
>>> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
>>> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>>>
>> _______________________________________________
>> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
>> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel


More information about the fpc-devel mailing list