[fpc-devel] ARM/AARCH64 work

Florian Klämpfl florian at freepascal.org
Thu Aug 6 07:58:17 CEST 2020

> Am 05.08.2020 um 19:47 schrieb J. Gareth Moreton <gareth at moreton-family.com>:
> Hi everyone,
> So I have been asked to do some work in improving optimisation for AARCH64, and ARM by logical 
> extension since some parts are shared.  I've had a look around the code for the Peephole Optimizer 
> for these platforms, and while I've found some potential improvements to generated code, my first 
> desire is to break up the monolithic optimisation functions (e.g. "PeepHoleOptPass1Cpu"), since some 
> of them are well over 1,000 lines long and incredibly unwieldy.  
> The plan for this is simple... each opcode or set of similar opcodes will get its own function 
> similar to how it is done on x86 platforms (e.g. "OptPass1STR" for STR optimisations).  This will 
> make the code much more compartmentalised and easier to maintain.  There are some exceptions to this 
> rule but I'm managing them easily enough.
> Additionally, at a later stage, I want each platform to be able to share the DebugMsg method and the 
> SPeepholeOptimization string, since currently a lot of platforms redeclare DebugMsg but without 
> actually changing anything in the implementation.
> Obviously I'll submit the changes as patches so they can be properly reviewed and tested, but does 
> this sound like a good idea?

Yes, you might have seen, that I started already with this some time ago.

> Gareth aka. Kit
> P.S. While I haven't been asked to improve aarch64-linux specifically, if I'm understanding things 
> correctly, there should be very few differences with the actual target platform in regards to 
> calling conventions, for example.

You mean with regard to different aarch64 platforms?

> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

More information about the fpc-devel mailing list