if that's what they meant, or a metaclass variable.
Kit
On 06/07/2025 15:41, Marco van de Voort via fpc-devel wrote:
Op 6-7-2025 om 16:31 schreef J. Gareth Moreton via fpc-devel:
What I mean is that if you want to instantiate an object of class
TFoo, you'd call TFoo.Create, not TFooCla
What I mean is that if you want to instantiate an object of class TFoo,
you'd call TFoo.Create, not TFooClass.Create.
If you want to take advantage of Object Pascal's unique polymorphism and
instantiate a descendant class of TFoo, you'd call
MetaClassVariable.Create rather than TFooClass.Creat
I would personally call that unusual at best. Logically I would
consider it a type mismatch or a syntax error of some kind, since TFoo
is a class and TFooClass is a metaclass. Also, if I saw such code in a
project, I would think someone made a mistake that didn't get caught,
since TFoo.Create
If I'm right in thinking, things like "fpc_abs_real" are fallback
functions that have to be overridden by a platform-specific
implementation, and return runtime errors if they aren't implemented.
In many cases, such internal compiler routines are not called at all
because there's a direct inst
I hope there's time for this. If this merge request is approved, can it
be cherry-picked for 3.2.4 as well?
https://gitlab.com/freepascal.org/fpc/source/-/merge_requests/1049
It fixes a bug in the register allocator that I have reason to believe
has been around for some time.
Kit
On 21/06/
to
everyone who had to put up with this in their Inboxes! Still, it might
serve to be a useful future reference.
Gareth aka. Kit
On 13/06/2025 17:09, J. Gareth Moreton via fpc-devel wrote:
The reason why you didn't get the ZIP is because I forgot to attach
the bloody thing!! Oops. Here it
27;
Makefile:3027: recipe for target 'full' failed
make: *** [full] Error 2
Gareth aka. Kit
On 13/06/2025 15:56, Tomas Hajny via fpc-devel wrote:
On 2025-06-13 16:04, J. Gareth Moreton via fpc-devel wrote:
Hi Gareth,
Here's the full log (as a ZIP since the raw text file is over 100
quot; to the make call?
It probably has a problem with the process unit from release
installation...
But I would like to confirm that this is indeed the issue.
Pierre
Le 13/06/2025 à 13:08, J. Gareth Moreton via fpc-devel a écrit :
Hi Pierre,
Here attached is the log of me running 'make'
full log of the failing make command?
Pierre
Le 12/06/2025 à 08:27, J. Gareth Moreton via fpc-devel a écrit :
Hi everyone,
There seems to be a problem on i386-linux on the trunk in that I can't
run the test suite. After successfully building the compiler, I then go
to the "tests&qu
Hi everyone,
There seems to be a problem on i386-linux on the trunk in that I can't
run the test suite. After successfully building the compiler, I then go
to the "tests" subdirectory and run "make clean full
TEST_OPT=~/Documents/fpc-opts/compiler/ppc386" and get the following error:
Compil
FPC is always going to be a bit behind the curve because gcc, for
example, has corporate sponsors. Heck, when I interviewed for a role at
ARM (which I didn't get), they made clear that they help develop GCC and
LLVM directly. Can't easily compete with the actual CPU manufacturers
contributing
Hi everyone,
Just thought I'd give a heads-up on my latest mad experiments!
I'm currently working to see if I can improve auto-vectorisation within
the compiler. I'm using x86_64 as my starting point since SSE2 is
guaranteed to be present, but aiming to make it as cross-platform as
possible
because in many cases the time interval is too short to get any
value.
Pierre
Le 26/04/2025 à 23:50, J. Gareth Moreton via fpc-devel a écrit :
If it's okay, can I rename the define from "IN_TESTS" to "CONFORMANCE"
or similar? Technically, the code in "bcase" and &
that the compiler has produced
correct code.
Kit
On 25/04/2025 22:00, J. Gareth Moreton via fpc-devel wrote:
"Just one small remark: why do you use '$8' instead of simply '8'?"
Mostly habit because the tests use "Iteration and 7" to select the
ind
Hi everyone,
I'm curious behind the continuous failure of tests/test/tset6.pp - is it
a feature that hasn't been implemented yet or a parser problem?
Kit
--
This email has been checked for viruses by Avast antivirus software.
www.avast.com
___
fpc-
lure...
I have no objection to your patch, please go ahead and commit.
For tests/bench/bcase.pp, I had to set ITERATIONS To $1
to avoid errors...
Just one small remark: why do you use '$8' instead of simply '8'?
Pierre
Le 25/04/2025 à 21:52, J. Gareth Moreton via fp
Hi everyone,
I just fixed an issue with tests/bench/bfloatfunc.pp over at
https://gitlab.com/freepascal.org/fpc/source/-/merge_requests/996
failing due to the reduced iteration count. I've increased it from 1 to
8 when in conformance mode (in IN_TESTS defined), since if it's less
than that,
Hi everyone,
Has there been any decision on what to do with mathematical
functionality that's shared across units? I bring this up because while
trying to optimise an internal mathematical routine (ldexp), I
discovered there are two different versions in use - one in the Math
unit and a priv
Thanks Denis,
I have to be slightly careful though because the example I gave with
"addps" is not actually correct, because (%r8) could be unaligned (it
works fine with "vaddps" though due to a paradigm change in the design
of AVX compared to SSE). In this situation a more correct example wou
s, and there may
be some unnecessary reads and writes between the stack and XMM
registers, but I'm working on it, bit by it.
My current branch can be found here:
https://gitlab.com/CuriousKit/optimisations/-/commits/ucomplex-x86-vector
Kit
On 23/08/2024 17:56, J. Gareth Moreton via fpc-devel
Should I use a compiler definition instead like "-dX86_VECTORS"? That
way, the feature can easily be turned off.
Kit
On 21/08/2024 15:59, J. Gareth Moreton via fpc-devel wrote:
Hi everyone,
Just thought I'd give a heads-up on what's happening with me and the
compiler imp
Hi everyone,
Just thought I'd give a heads-up on what's happening with me and the
compiler improvements. Also, I've been busy with contract work and have
just had some minor surgery, so I'm not running on all cylinders currently.
* Still waiting on administrator comments and feedback on my
Fixed! Thanks again Marģers.
Kit
On 01/07/2024 18:09, Marģers . wrote:
> Fixed 2 and 3.
Thank you.
one more ...
{\$ifdef FPU_HAS_PURE}pure;{\$ENDIF}
FPU_HAS_PURE probably is typo and should be: FPC_HAS_PURE
--
This email has been checked for viruses by Avast antivirus software.
www.avas
Oh yes, that's a silly mistake! Easy enough to fix hopefully.
Kit
On 01/07/2024 18:09, Marģers . wrote:
> Fixed 2 and 3.
Thank you.
one more ...
{\$ifdef FPU_HAS_PURE}pure;{\$ENDIF}
FPU_HAS_PURE probably is typo and should be: FPC_HAS_PURE
--
This email has been checked for viruses by A
On a related note, I do wonder where pure functions might help with
JIT. It depends on what Florian and the other administrators and
developers seek, but currently I aim for my pure function implementation
to fulfil both standard properties (1. same output for the same
input(s), and 2. no side
In the case of JVM, the JIT compiler is specific to Java, I think.
Normally JIT requires the source code to be compiled into an
intermediate bytecode first (e.g. Java bytecode or the Common
Intermediate Language (.NET)).
Kit
On 01/07/2024 09:33, Mattias Gaertner via fpc-devel wrote:
On 7/
Aah, thanks Marco. I still have some things to learn about FPC!
Kit
On 01/07/2024 08:05, Marco van de Voort via fpc-devel wrote:
Op 1-7-2024 om 02:34 schreef Hairy Pixels via fpc-devel:
I had a question about pure functions. I'm seeing some newer
languages have a JIT built-in so they can run
re functions? It seems like the JIT is actually
easier to implement than all this complicated node analysis, but probably
slower to run I may guess. I think the LLVM backend could do this but the main
code generator I'm not sure.
On Jun 30, 2024, at 9:17 AM, J. Gareth Moreton via fpc-de
in the code.
Merge request has been updated - I have also added two new tests based
on your examples. Thanks again Marģers.
Kit
On 28/06/2024 13:24, J. Gareth Moreton via fpc-devel wrote:
Hi Marģers,
Thanks for the feedback!
Assigning the results of pure functions to constants has not yet bee
Hi everyone,
So for a few weeks now, I've been playing with the idea of speeding up
the trig functions in Free Pascal, or at least the trig functions for
Single-precision which find uses in graphical applications where deep
precision is not absolutely necessary, but speed is paramount.
Never
Hi Marģers,
Thanks for the feedback!
Assigning the results of pure functions to constants has not yet been
developed. I had planned to add it once the bulk of pure functions
(i.e. the current merge request) had been approved since it requires
some additional work (specifically what happens i
On 25/06/2024 18:24, J. Gareth Moreton via fpc-devel wrote:
Hi everyone,
This might be the silliest question, but where are functions like
fpc_sin_real defined and implemented in the compiler, specifically for
x86_64? I'm playing around with a faster algorithm but can't seem to
Hi everyone,
This might be the silliest question, but where are functions like
fpc_sin_real defined and implemented in the compiler, specifically for
x86_64? I'm playing around with a faster algorithm but can't seem to
find the actual files where the code is implemented. Functions like
fpc_f
extra test case.
Kit
On 10/06/2024 21:54, Florian Klämpfl via fpc-devel wrote:
On 05.06.24 13:16, J. Gareth Moreton via fpc-devel wrote:
Uncertain if this one has been added or not:
https://gitlab.com/freepascal.org/fpc/source/-/merge_requests/218 -
this one fixes a bug with division node
*From:* J. Gareth Moreton via fpc-devel < fpc-devel@lists.freepascal.org>
*To:* < fpc-devel@lists.freepascal.org>
If you've got the commit(s) to hand, there's still time!
Kit
On 08/06/2024 14:00, Marģers . via fpc-devel wrote:
Is there a reason why missing
If you've got the commit(s) to hand, there's still time!
Kit
On 08/06/2024 14:00, Marģers . via fpc-devel wrote:
Is there a reason why missing x86 assembler instructions have not made
to fixes (except for avx512, that would be too much)?
To get finally forward with the 3.2.4 release, fixe
Uncertain if this one has been added or not:
https://gitlab.com/freepascal.org/fpc/source/-/merge_requests/218 - this
one fixes a bug with division nodes
Commits are:
54aae023ea2f4ee864c4ef3ce98ad387c166cb52 - bug fix
fb14bc845943073730f66be5c0450fe08afca276 - tests
Kit
On 02/06/2024 21:28,
P.S. That's commit abf89eea0d6a36add99bfbcb6a0cedcec18cca59
On 03/06/2024 22:33, Adriaan van Os via fpc-devel wrote:
Florian Klämpfl via fpc-devel wrote:
To get finally forward with the 3.2.4 release, fixes will be frozen
by 9th June, so if there are some last second cherry picks needed,
now i
evel wrote:
On 02/06/2024 21:06, J. Gareth Moreton via fpc-devel wrote:
I admit I'm not overly sure how to handle Thaddy sometimes:
"They fixed it in the wrong way. It is fixed in a way to solve a
single - rare - problem by an OP that seems to have more infuence
than me and the fixer
referring to exactly. Hopefully not my
aforementioned commit, because I think making sure the flag register is
properly allocated so the peephole optimizer can make the correct
informed choices is pretty important!
Kit
On 02/06/2024 11:51, J. Gareth Moreton via fpc-devel wrote:
I made a post on that
I made a post on that topic, as I remember that bug. It was a peephole
optimisation that I introduced, but before anyone tries to lynch me for
breaking the compiler, the reason why things broke is because it makes
the optimisation on the assumption that the FLAGS register was not in
use. Howe
Heh, that's fair. It was essentially how we did it in the past anyway!
Kit
On 29/05/2024 22:08, Florian Klämpfl via fpc-devel wrote:
On 29.05.24 13:09, J. Gareth Moreton via fpc-devel wrote:
Shouldn't this be made as a merge request?
I am sure we can handle also such patc
Shouldn't this be made as a merge request?
On 28/05/2024 07:12, Marģers . via fpc-devel wrote:
Some compiler x86 assembler improvements
1) patch for fpc 3.3.1 (attachment: mkx86ins_version_bump.patch)
compiler/utils/mkx86ins.pp
Version bumped from 1.6.1 to 1.6.2
There has been changes to code,
,
although I'm not sure if it's a permissions issue or a subtle fault with
the pointers. This may require refactoring later on or if bugs manifest
in larger projects.
Kit
On 26/05/2024 21:33, J. Gareth Moreton via fpc-devel wrote:
Thank you for all your assistance with this Sven.
g the jump table in the same section as the
actual code) unfortunately didn't work, so it's something more subtle.
Kit
On 26/05/2024 11:55, Sven Barth via fpc-devel wrote:
J. Gareth Moreton via fpc-devel
schrieb am Sa., 25. Mai 2024, 22:18:
Indeed - I'm not giving up! I
e!
Kit
On 25/05/2024 16:42, Sven Barth via fpc-devel wrote:
J. Gareth Moreton via fpc-devel
schrieb am Sa., 25. Mai 2024, 10:49:
Thought I'd give a small update.
I was distracted over the past month with work, the arm-linux
blocking
bug and a couple of merge requests whi
ndle.
Gareth aka. Kit
On 29/04/2024 21:31, Sven Barth via fpc-devel wrote:
Am 29.04.2024 um 08:42 schrieb J. Gareth Moreton via fpc-devel:
Aah, partially answered. It's not supported in 3.2.2, but there is
better support for it in the trunk.
You had me worried there for a mome
Thanks Sven. I'm predicting a future of Windows on AArch64, since
Windows is not going anywhere but Arm processors are starting to really
take off beyond mobile devices.
Kit
On 29/04/2024 21:31, Sven Barth via fpc-devel wrote:
Am 29.04.2024 um 08:42 schrieb J. Gareth Moreton via fpc-
Aah, partially answered. It's not supported in 3.2.2, but there is
better support for it in the trunk.
Kit
On 29/04/2024 06:42, J. Gareth Moreton via fpc-devel wrote:
Hi everyone,
I may need some help with this one. Is there a tried and tested way
of getting FPC to build and insta
Hi everyone,
I may need some help with this one. Is there a tried and tested way of
getting FPC to build and install on aarch64-win64? (I assume that's the
correct OS for Windows for ARM64). The make script doesn't seem to
accept the combination of CPU_TARGET=aarch64 OS_TARGET=win64 and it's
I figured that would be the case with the PE format. Fun times ahead!
Kit
On 27/04/2024 13:06, Sven Barth via fpc-devel wrote:
J. Gareth Moreton via fpc-devel
schrieb am Sa., 27. Apr. 2024, 10:00:
You've piqued my interest. I currently only have the ability to
develop on aa
ntenance since I
shouldn't need to set the operand sizes, but I'll save that for another day.
On 24/04/2024 05:08, J. Gareth Moreton via fpc-devel wrote:
I've gotten back as far as here, and it's still bad:
commit 7fbda0e0e8b1d071e72ccbc5e487dbb1c2173c63 (HEAD)
Auth
y because 3.2.2 doesn't work.
However the hang (and also an eventual out of memory error) doesn't
occur if -OoNOPEEPHOLE is specified, meaning the problem is located in
the peephole optimizer. So it looks like I'll have to try to debug this
the hard way!
Kit
On 23/04/2024 17
I've reproduced the hang doing "make clean all CPU_TARGET=i386
OS_TARGET=win32 OPT="-Cp80486 -Op80486"" on my x86_64-win64 machine.
So far I haven't found the bad commit - this problem has been here a while.
Kit
I still haven't found the bad commit!
On 23/0
Absolutely I can. I'll see what I can find.
Gareth aka. Kit
On 23/04/2024 12:09, Tomas Hajny via fpc-devel wrote:
On 2024-04-23 11:50, Marģers . via fpc-devel wrote:
1) does not work
make clean singlezipinstall OS_TARGET=win32 CPU_TARGET=i386
ALLOW_WARNINGS=1 OPT=" -O2 -vxitl -Cp80486 -Op804
Hi everyone,
While I'm starting to focus more on node-level optimisations, since they
benefit more platforms and can produce better optimisations in some
situations due to cross-platform support and things like register
allocation, I'm thinking about refactoring and improving x86's
OptPass1MO
Essentially, an arithmetic overflow is happening. Since the largest
Int64 possible is 9,223,372,036,853,775,807, going one above that (the
result to abs(low(int64))) wraps back around to -9,223,372,036,853,775,808.
Internally, you can think about negating (positing?) a negative number
as inve
Oops - I'm sorry for my introduced bug!
Gareth aka. Kit
On 31/03/2024 21:48, Michael Ring via fpc-devel wrote:
Works, thank you!
Michael
Am 31.03.24 um 22:18 schrieb Florian Klämpfl via fpc-devel:
Am 31.03.2024 um 21:58 schrieb Michael Ring via fpc-devel
:
This is what I see (guess the
Excellent, thank you Michael.
Kit
On 01/03/2024 20:56, Michael Van Canneyt via fpc-devel wrote:
On Fri, 1 Mar 2024, J. Gareth Moreton via fpc-devel wrote:
Just want to confirm that the failure also occurs on x86_64-win64
under -CriotR rules.
On all platforms. I fixed compilation with
Just want to confirm that the failure also occurs on x86_64-win64 under
-CriotR rules.
Kit
On 01/03/2024 18:18, J. Gareth Moreton via fpc-devel wrote:
Hi everyone.
As part of my automated tests I try to build the compiler and packages
on i386-win32 under the options "-O4 -CriotR".
Hi everyone.
As part of my automated tests I try to build the compiler and packages
on i386-win32 under the options "-O4 -CriotR". Doing so gives a failure
with the vcl_compat package (the failure also occurs with just
"-CriotR"). Can others confirm?
External command
"C:/Users/garet/Docum
Hi Garry,
Hopefully I have fixed this issue now, which is also causing problems
elsewhere.
https://gitlab.com/freepascal.org/fpc/source/-/merge_requests/598 - just
waiting on it to be verified, approved and merged.
Gareth aka. Kit
On 20/02/2024 06:32, J. Gareth Moreton via fpc-devel wrote
Hi everyone,
While evaluating a new peephole optimisation, I came across a null
pointer dereference in the assembly language. After looking at the
original Pascal code, I came across this starting at line 525 of
packages/chm/src/chmreader.pas:
procedure TChmReader.ReadWindows(mem:TMemoryStr
Thanks for the report and especially your investigative work. Ii'll take
a look to see what's going on.
Gareth aka. Kit
On 20/02/2024 01:30, Garry Wood via fpc-devel wrote:
Hello,
Commit 6b2e4fa4 (main) entitled “* arm: "OpCmp2OpS" moved to Pass 2 so
it doesn't conflict with AND; CMP -> TST
Hi everyone,
After some recent updates to the trunk, the compiler no longer
successfully builds when -dDEBUG_NODE_XML is specified:
symsym.pas(2885,9) Warning: (treated as error) Case statement does not
handle all possible cases
This is located within "procedure TConstSym.XMLPrintConstData(
Note that for 1), it should be "end.", not "end;" - make sure that isn't
causing your error.
Subroutine directives like "vectorcall" I think are usable as variable
names.
Kit
On 24/01/2024 22:29, Martin Frb via fpc-devel wrote:
https://www.freepascal.org/docs-html/ref/refsu3.html
Is this l
Hi everyone,
I'm just fixing a bugged optimisation, and I came across a situation
where I need to essentially do a "signed wrap" of a constant. At one
point I'm optimising "subl $-12,%eax", "addl $1,%eax" into a single
instruction, but to make sure (untrapped) overflows are handled
correctly
Hi everyone,
I hate to point fingers, but there's a 0-byte file named "HEAD" in the
repository, which causes git to throw a tantrum sometimes - it was
introduced in the following commit:
commit a4c324ee237674950e4675894df386519b75a130
Author: Rika Ichinose
Date: Fri Apr 14 09:24:55 2023 +0
I just stumbled across this article about micro-architecture-specific
optimisations in ARM:
https://www.phoronix.com/news/ARM64-Linux-No-Uarch-Opts
They briefly mention x86_64, and I agree it's good to avoid
micro-architecture-specific optimisations and now it makes me wonder
where the line i
Hi everyone,
So one of my recent merge requests
(https://gitlab.com/freepascal.org/fpc/source/-/merge_requests/516) has
been having test failures on arm-linux, and this has confused me for a
while because they don't occur on aarch64-linux (the two platforms share
the same code in this particu
Hi everyone,
I've been developing a new optimisation for x86, and in one situation a
JMP becomes a Jcc. To make sure it's valid, I ensure that
"IsJumpToLabel" returns True before the change is made. All was well in
x86_64-win64 and x86_64-linux, but on i386-linux, I came across a bit of
an
On 08/11/2023 21:11, Florian Klämpfl via fpc-devel wrote:
Am 08.11.2023 um 21:22 schrieb J. Gareth Moreton via
fpc-devel:
- I don't know what the eventual support for intrinsics will be for FPC, if it
will ever get implemented, but I at the very least hope the internal nodes wil
Hi everyone,
I just thought I'd give a heads up on what I'm currently doing for the
Free Pascal Compiler.
- Pure functions are still my main target. There are a few sticking
points that I'm trying to resolve, like handling certain internal
functions and how to deal with out variables that g
Hi everyone,
I'm still exploring optimisations in generated x86 code, something which
has become my speciality, and I found one new potential optimisation
sequence that aims to reduce unnecessary calls to CMP and TEST when the
result is already known. However there are some situations where I
I should have figured. Thank you!
Kit
On 27/10/2023 01:51, Nikolay Nikolov via fpc-devel wrote:
On 10/11/23 11:21, Tomas Hajny via fpc-devel wrote:
On 2023-10-11 04:15, J. Gareth Moreton via fpc-devel wrote:
Sweet, thank you. Would you be willing to share your modified test's
sour
ility'
test. The feedback from others has proven useful in determining the
correctness of the new optimisation hint, which I intend to use to make
the i386/x86_64 peephole optimizer smarter in regards to using LEA
statements.
Kit
On 13/10/2023 16:36, Tomas Hajny via fpc-devel wrote:
On 2023
This one's for you Stefan!
https://github.com/spring4d/benchmark/issues/4
Kit
On 13/10/2023 16:03, Tomas Hajny via fpc-devel wrote:
On 2023-10-13 16:25, J. Gareth Moreton via fpc-devel wrote:
GetLogicalProcessorInformation returns a Boolean - if false, an error
occurred, and is handl
l wrote:
On 2023-10-13 16:25, J. Gareth Moreton via fpc-devel wrote:
GetLogicalProcessorInformation returns a Boolean - if false, an error
occurred, and is handled as follows:
DiagnoseAndExit('Failed during call to GetLogicalProcessorInformation:
' + GetLastError.ToString);
GetLastErro
23 08:34, Tomas Hajny via fpc-devel wrote:
On 2023-10-13 09:26, Tomas Hajny wrote:
On 2023-10-12 20:02, J. Gareth Moreton via fpc-devel wrote:
So an update.
.
.
The latest version of blea.pp doesn't compile with a 32-bit compiler -
line 76 contains an unconditional reference to R8 register
(it's replaced with "CPUName" on 32-bit). I wasn't
sure if global variables were initialised or not, hence me playing safe.
Kit
On 13/10/2023 08:34, Tomas Hajny via fpc-devel wrote:
On 2023-10-13 09:26, Tomas Hajny wrote:
On 2023-10-12 20:02, J. Gareth Moreton via fpc-deve
So an update.
I've added Spring.Benchmark to "tests/bench/spring" on my local branch,
along with its readme and licence file. It seems to work quite well
even if it feels a bit like overkill for this small a benchmark. Still,
I've attached the version with Stefan's translated Google Benchmar
To whom it may concern,
I have a new message for the "LEA instruction speed" chain, but it is
currently in holding as it contains a 47k ZIP file (source code only,
and a third-party licence agreement). Can the mailing list maintainer
confirm (or deny) that it's okay?
Kit
__
2023 at 11:13 AM J. Gareth Moreton via fpc-devel
wrote:
Thanks Tomas,
Nothing is broken, but the timing measurement isn't precise enough.
Normally I have a much higher iteration count (e.g. 1,000,000), but I
had reduced it to 10,000 because, coupled with the 1,000 iterations in
the subrout
Sweet, thank you. Would you be willing to share your modified test's
source? I was worried that if CPUID wasn't present it would cause a SIGILL.
Kit
On 11/10/2023 01:47, Tomas Hajny via fpc-devel wrote:
On 2023-10-10 13:24, J. Gareth Moreton via fpc-devel wrote:
I'm al
tend to be very heavily used, while AGUs tend to be used one
at a time.
On 10/10/2023 11:54, Tomas Hajny via fpc-devel wrote:
On 2023-10-10 12:19, Marco van de Voort via fpc-devel wrote:
Op 10-10-2023 om 11:13 schreef J. Gareth Moreton via fpc-devel:
Thanks Tomas,
Nothing is broken, but the timi
Ooo, that might be just what we need. Thank you Stefan.
Kit
On 10/10/2023 10:57, Stefan Glienke via fpc-devel wrote:
Be my guest making https://github.com/spring4d/benchmark compatible for all
platforms you need it for.
On 10/10/2023 11:13 CEST J. Gareth Moreton via fpc-devel
wrote
e). 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
very slow routines. Still, let's see if 100,000 gives better results
for you.
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 na
haven't broken something.
Kit
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 ex
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 sligh
nts
Ettumanoor, INDIA
Ph:+91 9443211326
On Sun, Oct 8, 2023 at 6:40 PM J. Gareth Moreton via fpc-devel
wrote:
Hi Nataraj
Which processor is that run on? (although too close to call, it
implies LEA has a latency of 2 in that case)
Kit
On 08/10/2023 14:06, Nataraj S Narayan
Did some checking of the test I copied the code from, and I forgot that
Rika's original code only exited once a certain time period had elapsed
(e.g. 0.5 seconds). I had changed it to a standard iteration count
since I was concerned about fairness and accuracy, but I only changed
the loop cond
In the meantime, here's the merge request for the feature based on user
tests and studying of Agner Fog's instruction tables:
https://gitlab.com/freepascal.org/fpc/source/-/merge_requests/502
Kit
___
fpc-devel maillist - fpc-devel@lists.freepascal.
logy Consultants
Ettumanoor, INDIA
Ph:+91 9443211326
On Sat, Oct 7, 2023 at 9:39 PM J. Gareth Moreton via fpc-devel
wrote:
That's interesting; I am interested to see the assembly output for
the
Pascal control cases. As for the 64-bit version, that was my fault
since the
Sorry, ignore last attachment - I forgot to change a line of assembly
(it was correct for x86_64-win64!!). Here is the corrected version.
Kit
On 08/10/2023 12:38, J. Gareth Moreton via fpc-devel wrote:
Sorry, I got careless and was in a rush, as both the Pascal code is
wrong and I didn
Sorry, I got careless and was in a rush, as both the Pascal code is
wrong and I didn't store the result of the benchmark test, hence the
error check at the end returned a false negative.
The benchmark code was from Rika's SHA-1 test code, which I didn't
properly check, although I assumed the l
ur testing on an AMD 486 shows it is at least as fast as two ADDs in a
dependency chain. That should be all the information I need - thanks again!
Kit
On 07/10/2023 19:03, Tomas Hajny via fpc-devel wrote:
On 2023-10-07 18:09, J. Gareth Moreton via fpc-devel wrote:
That's interesting; I
tached the fixed test.
Kit
P.S. Results on my Intel(R) Core(TM) i7-10750H
Pascal control case: 2.0 ns/call
Using LEA instruction: 1.7 ns/call
Using ADD instructions: 1.3 ns/call
On 07/10/2023 16:51, Tomas Hajny via fpc-devel wrote:
On 2023-10-07 03:57, J. Gareth Moreton via fpc-devel wrote
Hi Tomas,
Do you think this should suffice? Originally it ran for 1,000,000
repetitions but I fear that will take way too long on a 486, so I
reduced it to 10,000.
Kit
On 03/10/2023 06:30, Tomas Hajny via fpc-devel wrote:
On October 3, 2023 03:32:34 +0200, "J. Gareth Moreton via fpc-
ote:
Am 03.10.2023 um 03:32 schrieb J. Gareth Moreton via fpc-devel
:
Hi everyone,
This is mainly to Florian, but also to anyone else who can answer the question
- at which point did a complex LEA instruction (using all three input operands
and some other specific circumstances) get s
1 - 100 of 491 matches
Mail list logo