<soum...@nvidia.com> writes:
> From: Soumya AR <soum...@nvidia.com>
>
> Hi,
>
> This RFC is a continuation of previous patches sent here:
> https://gcc.gnu.org/pipermail/gcc-patches/2025-May/682702.html
>
> As suggested in the earlier thread, I've now added a python script to generete
> the printing and parsing routines for the JSON tuning parameters from the 
> schema.
>
> With this, if changes are made to tune_params, the user can simply regenerate
> the routines by running the script (albeit after updating the schema).
>
> Additionally, instead of removing 'const' from all predfined tune_params
> structures, I've reworked the patch to only clear 'const' from the individual
> tuning fields and instead update the structures using temporaries.
>
> Best,
> Soumya
>
> Soumya AR (6):
>   aarch64 + arm: Remove const keyword from tune_params members and
>     nested members
>   aarch64: Enable dumping of AArch64 CPU tuning parameters to JSON
>   json: Add get_map() method to JSON object class
>   aarch64: Enable parsing of user-provided AArch64 CPU tuning parameters
>   aarch64: Regression tests for parsing of user-provided AArch64 CPU
>     tuning parameters
>   aarch64: Script to auto generate JSON tuning routines

Just wanted to say that I've not forgotten about this.  I'm hoping
to get to it the next few days.

Thanks,
Richard

>
>  gcc/config.gcc                                |   2 +-
>  .../aarch64-generate-json-tuning-routines.py  | 370 ++++++++++++
>  gcc/config/aarch64/aarch64-json-schema.h      | 261 ++++++++
>  .../aarch64-json-tunings-parser-generated.inc | 337 +++++++++++
>  .../aarch64/aarch64-json-tunings-parser.cc    | 559 ++++++++++++++++++
>  .../aarch64/aarch64-json-tunings-parser.h     |  29 +
>  ...aarch64-json-tunings-printer-generated.inc | 421 +++++++++++++
>  .../aarch64/aarch64-json-tunings-printer.cc   | 148 +++++
>  .../aarch64/aarch64-json-tunings-printer.h    |  28 +
>  gcc/config/aarch64/aarch64-protos.h           | 164 ++---
>  gcc/config/aarch64/aarch64.cc                 |  20 +
>  gcc/config/aarch64/aarch64.opt                |   8 +
>  gcc/config/aarch64/t-aarch64                  |  21 +
>  gcc/config/arm/aarch-common-protos.h          | 128 ++--
>  gcc/json.h                                    |  40 +-
>  gcc/selftest-run-tests.cc                     |   1 +
>  gcc/selftest.h                                |   1 +
>  .../aarch64-json-tunings.exp                  |  35 ++
>  .../aarch64/aarch64-json-tunings/boolean-1.c  |   6 +
>  .../aarch64-json-tunings/boolean-1.json       |   9 +
>  .../aarch64/aarch64-json-tunings/boolean-2.c  |   7 +
>  .../aarch64-json-tunings/boolean-2.json       |   9 +
>  .../aarch64-json-tunings/empty-brackets.c     |   6 +
>  .../aarch64-json-tunings/empty-brackets.json  |   1 +
>  .../aarch64/aarch64-json-tunings/empty.c      |   6 +
>  .../aarch64/aarch64-json-tunings/empty.json   |   0
>  .../aarch64/aarch64-json-tunings/enum-1.c     |   8 +
>  .../aarch64/aarch64-json-tunings/enum-1.json  |   7 +
>  .../aarch64/aarch64-json-tunings/enum-2.c     |   7 +
>  .../aarch64/aarch64-json-tunings/enum-2.json  |   7 +
>  .../aarch64/aarch64-json-tunings/integer-1.c  |   7 +
>  .../aarch64-json-tunings/integer-1.json       |   6 +
>  .../aarch64/aarch64-json-tunings/integer-2.c  |   7 +
>  .../aarch64-json-tunings/integer-2.json       |   6 +
>  .../aarch64/aarch64-json-tunings/integer-3.c  |   7 +
>  .../aarch64-json-tunings/integer-3.json       |   5 +
>  .../aarch64/aarch64-json-tunings/integer-4.c  |   6 +
>  .../aarch64-json-tunings/integer-4.json       |   5 +
>  .../aarch64/aarch64-json-tunings/string-1.c   |   8 +
>  .../aarch64-json-tunings/string-1.json        |   7 +
>  .../aarch64/aarch64-json-tunings/string-2.c   |   7 +
>  .../aarch64-json-tunings/string-2.json        |   5 +
>  .../aarch64/aarch64-json-tunings/test-all.c   |  58 ++
>  .../aarch64-json-tunings/test-all.json        |  39 ++
>  .../aarch64-json-tunings/unidentified-key.c   |   6 +
>  .../unidentified-key.json                     |   5 +
>  46 files changed, 2674 insertions(+), 156 deletions(-)
>  create mode 100644 
> gcc/config/aarch64/aarch64-generate-json-tuning-routines.py
>  create mode 100644 gcc/config/aarch64/aarch64-json-schema.h
>  create mode 100644 
> gcc/config/aarch64/aarch64-json-tunings-parser-generated.inc
>  create mode 100644 gcc/config/aarch64/aarch64-json-tunings-parser.cc
>  create mode 100644 gcc/config/aarch64/aarch64-json-tunings-parser.h
>  create mode 100644 
> gcc/config/aarch64/aarch64-json-tunings-printer-generated.inc
>  create mode 100644 gcc/config/aarch64/aarch64-json-tunings-printer.cc
>  create mode 100644 gcc/config/aarch64/aarch64-json-tunings-printer.h
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/aarch64-json-tunings.exp
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/boolean-1.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/boolean-1.json
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/boolean-2.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/boolean-2.json
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/empty-brackets.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/empty-brackets.json
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/empty.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/empty.json
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/enum-1.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/enum-1.json
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/enum-2.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/enum-2.json
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/integer-1.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/integer-1.json
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/integer-2.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/integer-2.json
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/integer-3.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/integer-3.json
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/integer-4.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/integer-4.json
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/string-1.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/string-1.json
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/string-2.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/string-2.json
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/test-all.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/test-all.json
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/unidentified-key.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/unidentified-key.json

Reply via email to