[foreign-jextract] Integrated: 8250518: Jextract should process macros in bulk
Maurizio Cimadamore
mcimadamore at openjdk.java.net
Mon Jul 27 11:17:32 UTC 2020
On Fri, 24 Jul 2020 14:42:21 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:
> This patch adds bulk processing of macros; that is, instead of having a reparsing step for every macro constant, this
> patch tweaks jextract so that all unparsed macros are processed in one go.
> The logic is quite convoluted and this work led to a major refactoring of MacroParserImpl; there is now a *table* where
> unparsed macros are kept - elements in this table are reparsed, and, based on the contents of the reparsed cursors, the
> table state is updated accordingly (the code has quite a bit of doc documenting the possible state transitions). This
> results in some 2x performance boost in some of the heaviest extraction runs.
> One thing to notice is that one of the test required some tweaks, as the new code seems to be able to infer a sharper
> type for a macro - e.g. `foo*` instead of `void*`. I suspect this is related to `TypeMaker::resolveTypeReferences` but
> I'm not 100% sure - @slowhog can you please take a look?
This pull request has now been integrated.
Changeset: d2feb2e6
Author: Maurizio Cimadamore <mcimadamore at openjdk.org>
URL: https://git.openjdk.java.net/panama-foreign/commit/d2feb2e6
Stats: 416 lines in 4 files changed: 144 ins; 241 del; 31 mod
8250518: Jextract should process macros in bulk
Reviewed-by: jvernee, sundar
-------------
PR: https://git.openjdk.java.net/panama-foreign/pull/264
More information about the panama-dev
mailing list