[fpc-devel] Peephole optimizer tai class change proposals

J. Gareth Moreton gareth at moreton-family.com
Mon Oct 11 10:00:15 CEST 2021


One for Jonas mainly, but also for Florian.  This is a new "extra 
optimisation information" feature that allows the peephole optimizer to 
leave 'notes' and other extra information on individual tai objects for 
later reference.  An initial showcase is to store a link to the 
destination label if it's not available in the lookup table (becuase it 
was created later by a peephole optimisation).

https://gitlab.com/freepascal.org/fpc/source/-/merge_requests/74/diffs

Currently the showcase doesn't appear to show any additional 
optimisations in the x86-64 RTL because the jump optimisation that 
creates a new label is almost never called.

I'll use this feature more extensively in the future, such as for 
storing information on the values of registers or making a note of a 
label that should be removed if possible because it would cause a 
long-term optimisation (something that a peephole optimisation that 
removes the label may not be able to determine because its own 
optimisation is questionable without that information).  See previous 
e-mails in this chain for an example.

Gareth aka. Kit

-- 
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus



More information about the fpc-devel mailing list