Just made some more additions, this time introducing some fundamental
extra optimisation information classes that I can see myself using right
off the bat.
https://gitlab.com/CuriousKit/optimisations/-/compare/main...opt-info-list?from_project_id=29565238
I plan to use the tai one for pointing jumps to labels, a simple Boolean
one for flagging potential label removals in some optimisations that may
be difficult to justify without such information (see some of my
previous e-mails) and the Register/value pair for tracking known
register values.
Gareth aka. Kit
On 06/10/2021 05:20, J. Gareth Moreton via fpc-devel wrote:
Would you approve something like this, Jonas? I admit it's not
properly tested yet, but I'm descending from TLinkedListItem (and the
descendant class can itself be descended from) and the TAOptObj class
handles allocation and cleanup of extra information. I'm not sure how
practical it is, but I'm taking advantage of the linked list system by
allowing tai objects to have more than one extra information object
associated with it.
https://gitlab.com/CuriousKit/optimisations/-/compare/main...opt-info-list?from_project_id=29565238
I hope you can view it!
It might be worth changing the defintion of optinfo from Pointer to
TExtraOptInfo (the TLinkedListItem descendant), but I don't know if
this may break something that's already present.
One thing I did miss was a "typ" field for TExtraOptInfo so you can
look up to see what kind of object it is without relying on ClassType
etc, but I don't know where and how to define such an enumeration
because the different types would be platform-dependent. All I can
think of currently is an include file for each platform, which comes
with its own problems.
Gareth aka. Kit
--
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel