[fpc-devel] Vectorisation, optimisation etc.

J. Gareth Moreton gareth at moreton-family.com
Mon Apr 8 12:22:25 CEST 2019


I would consider a size reduction a 
success if it doesn't impact performance, 
although higher speed is always nice.

A lot of my research is currently waiting 
on the XML node dump patch, since 
vectorisation would have to be done at the 
node level to be most efficient.  Also, my 
optimiser overhaul is still pending, so I 
can't really touch the peephole optimiser 
until it is either accepted (if it still 
merges!) or rejected.

Gareth aka. Kit

On Sun 07/04/19 10:05 , Jonas Maebe 
jonas at freepascal.org sent:
> On 2019-04-07 03:25, Ben Grasset wrote:
> 
> 
> 
> > Even the fact that FPC will not / 
cannot inline
> "procedure variable" 
> > calls is far from great. Just that 
alone would
> result in enormous 
> > speedups in a huge amount of places...
> 
> 
> 
> I'm sure there is code where that is the 
case, but I very much doubt 
> 
> this particular functionality would help 
with most code out there. E.g., 
> 
> if I enable FPC's whole-program 
devirtualisation on the compiler so that 
> 
> it tries to turn as many virtual calls 
into direct calls, and then feed 
> 
> the result to LLVM (so it can inline all 
of those previously indirect 
> 
> calls), the result is barely faster than 
the original code (it is quite 
> 
> a bit smaller though).
> 
> 
> 
> This is in spite of the fact that e.g. 
all of the originally virtual 
> 
> AfterConstruction and BeforeDestruction 
calls get removed completely 
> 
> (since they're empty), and quite a bit 
of the code generator, register 
> 
> allocator and node tree methods also get 
devirtualised.
> 
> 
> 
> Again, I'm sure there are programs where 
it does make a big difference, 
> 
> but I don't think the suggestion that 
this would help in "a huge
> amount 
> of places" is correct in the general 
case.
> 
> 
> 
> 
> 
> Jonas
> 
> 
__________________________________________
_____
> 
> fpc-devel maillist  -  fpc-
devel at lists.freepascal.org
> http://lists.freepascal.org/cgi-
bin/mailman/listinfo/fpc-devel
> 
> 
> 
> 




More information about the fpc-devel mailing list