[fpc-devel] Testing compiler efficiency

J. Gareth Moreton gareth at moreton-family.com
Wed Jun 2 13:21:29 CEST 2021


To explain, I've done some minor refactoring of the register tracking class that will provide a 
speed boost when dealing with UpdateUsedRegs(TmpUsedRegs, p); and allow a descendant class to be 
extended from it (I plan to experiment with running some peephole optimisations while the registers 
are still virtual, hence the need for a register tracking class that supports them).

Currently I only have the refactored TUsedRegs class and I wanted to see how it affected the overall 
compile time for a project, since while it will allow TmpUsedRegs to work faster due to its design, 
it will likely cause the regular UpdateUsedRegs to run very slightly slower due to one or two 
additional method calls.

>From a pure refactoring standpoint, it removes the quirk of UpdateUsedRegs and 
UpdateUsedRegsAndOptimize accessing a private field of TUsedRegs that it would otherwise not have 
access to (a quirk of Pascal).  I'l submit a patch for evaluation shortly - so far, it's tested 
successfully on i386-win32, x86_64-win64 and arm-linux.

My laptop is in the repair shop currently, so I'm back to using exclusively Raspberry Pi-based 
machines.

Gareth aka. Kit


On Tue 01/06/21 05:18 , "J. Gareth Moreton via fpc-devel" fpc-devel at lists.freepascal.org sent:
> Hi everyone,
> 
> 
> 
> I've found a potential area where the speed of the compiler itself could 
> 
> be improved (while researching something unrelated!).  I have a quick 
> 
> little question though.  What's the preferred way to test the compiler
> 
> speed and time how long it takes to build something in general?  In
> the 
> past I attempted to build the Lazarus source, but this tended to be 
> 
> rather clunky.
> 
> 
> 
> Gareth aka. Kit
> 
> 
> 
> 
> 
> -- 
> 
> This email has been checked for viruses by Avast antivirus software.
> 
> https://www.avast.com/antivirus
> 
> 
> _______________________________________________
> 
> 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