[fpc-devel] The 15k bounty: Optimizing executable speed forLinux x86 / LLVM
Florian Klämpfl
florian at freepascal.org
Sun Feb 17 23:08:14 CET 2019
The debug_eh branch contains now support for dwarf based exception
handling for i386-linux.
Testing fpc/tests/bench/bansi1.pp gives with trunk
Test 1: 1000000 done in 0.367 sec
Test 2: 1000000 done in 0.414 sec
Test 3: 1000000 done in 0.359 sec
while with debug_eh it results in
Test 1: 1000000 done in 0.337 sec
Test 2: 1000000 done in 0.310 sec
Test 3: 1000000 done in 0.315 sec
The debug_eh branch can be build with e.g. from x86_64-linux
make all OS_TARGET=linux CPU_TARGET=i386 -j OPT="-XP -dpsabieh -Aas"
CROSSOPT="-Fl/lib/i386-linux-gnu/ -Fl/usr/lib/gcc/i686-linux-gnu/8/"
or natively:
make all -j OPT="-dpsabieh -Aas" OPT="-Fl/lib/i386-linux-gnu/
-Fl/usr/lib/gcc/i686-linux-gnu/8/"
/usr/lib/gcc/i686-linux-gnu/8 needs to be adapted to the build system,
libgcc_s must be found.
The library pathes need to be passed when compiling a program as well,
also -Aas is needed.
The debug_eh branch contains also the tls threadvar support, so this can
be enabled when building by -dtls_threadvars as well.
Oh, and Kylix:
This module must be distributed under the terms of the GNU General
Public License (GPL), version 2. A copy of this license can be found
at:http://www.borland.com/kylix/gpl.html.
Test 1: 1000000 done in 0.819 sec
Test 2: 1000000 done in 0.826 sec
Test 3: 1000000 done in 0.794 sec
For Simon's benchmark is does not help though as it is not using
exception frames in the hot spots.
More information about the fpc-devel
mailing list