[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