> Am 04.04.2021 um 15:36 schrieb Joost van der Sluis via fpc-pascal > <fpc-pascal@lists.freepascal.org>: > > > > Op 04-04-2021 om 13:33 schreef Florian Klämpfl via fpc-pascal: >>> Am 04.04.2021 um 12:50 schrieb Joost van der Sluis via fpc-pascal >>> <fpc-pascal@lists.freepascal.org>: >>> >>> Isn't it at least a good practice to store self at Y. So we have Z free for >>> other calculations and can access members directly using ldd (),y+(). >>> >>> But maybe that's difficult? >> Using Y might be indeed difficult as the compiler knows only after register >> allocation that it does not need Y for other purposes. It would basically >> require the ability to redo code generation. > > In my head I've been thinking a lot about another register-allocator: > > During the code-generation the code-generation only asks the > register-allocator 'I need a register now that cas capabilities X,Y and Z). > Or: give me the same register as I used last time. > > And then, afterwards, once code has been generated for the whole 'block', the > register-allocator fills in the registers. And store/restores them when > needed. This can be done using an algorithm that uses a tree to 'peel-down' > (is this English?) all the solutions. Just like is done with a > regular-expression parser. > > Just dreaming. I don't have the time to work on it, and I don't even know how > it works at the moment. But that would seem to be the ideal solution to me.
But this is how it is basically currently done? _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal