[PATCH 00/22] target/arm/tcg: Remove inclusions of 'exec/helper-[proto/gen].h'

Philippe Mathieu-Daudé posted 22 patches 11 months, 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230609104717.95555-1-philmd@linaro.org
Maintainers: Richard Henderson <richard.henderson@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org>, Alexandre Iooss <erdnaxe@crans.org>, Mahmoud Mandour <ma.mandourr@gmail.com>, Peter Maydell <peter.maydell@linaro.org>
There is a newer version of this series
target/arm/tcg/translate.h                    |   11 +-
.../tcg/{helper-a64.h => helper-a64.h.inc}    |    0
target/arm/tcg/helper-iwmmxt.h.inc            |  114 ++
.../tcg/{helper-mve.h => helper-mve.h.inc}    |    0
target/arm/tcg/helper-neon.h.inc              |  205 +++
.../tcg/{helper-sme.h => helper-sme.h.inc}    |    2 -
.../tcg/{helper-sve.h => helper-sve.h.inc}    |   46 +
target/arm/tcg/helper-vfp.h.inc               |  136 ++
target/arm/{helper.h => tcg/helper.h.inc}     |  488 +-----
accel/tcg/cpu-exec.c                          |    2 +-
plugins/core.c                                |    1 -
target/arm/debug_helper.c                     |    7 +-
target/arm/helper.c                           |    7 +-
target/arm/tcg/cpu32.c                        |    4 +-
target/arm/tcg/crypto_helper.c                |    6 +-
target/arm/tcg/helper-a64.c                   |   11 +-
target/arm/tcg/hflags.c                       |    6 +-
target/arm/tcg/iwmmxt_helper.c                |    6 +-
target/arm/tcg/m_helper.c                     |   12 +-
target/arm/tcg/mte_helper.c                   |    5 +-
target/arm/tcg/mve_helper.c                   |   16 +-
target/arm/tcg/neon_helper.c                  |   28 +-
target/arm/tcg/op_helper.c                    |   28 +-
target/arm/tcg/pauth_helper.c                 |    5 +-
target/arm/tcg/psci.c                         |    6 +-
target/arm/tcg/sme_helper.c                   |   11 +-
target/arm/tcg/sve_helper.c                   |   20 +-
target/arm/tcg/tlb_helper.c                   |    5 +-
target/arm/tcg/translate-a64.c                |   16 +
target/arm/tcg/translate-iwmmxt.c             | 1340 +++++++++++++++++
target/arm/tcg/translate-mve.c                |    6 +
target/arm/tcg/translate-neon.c               |   11 +
target/arm/tcg/translate-sme.c                |   16 +
target/arm/tcg/translate-sve.c                |    5 +
target/arm/tcg/translate-vfp.c                |    6 +
target/arm/tcg/translate.c                    | 1274 +---------------
target/arm/tcg/vec_helper.c                   |   26 +-
target/arm/vfp_helper.c                       |   11 +-
tests/tcg/aarch64/bti-1.c                     |    2 +-
tests/tcg/aarch64/bti-3.c                     |    2 +-
.../aarch64/{bti-crt.inc.c => bti-crt.c.inc}  |    0
target/arm/tcg/meson.build                    |    1 +
42 files changed, 2100 insertions(+), 1804 deletions(-)
rename target/arm/tcg/{helper-a64.h => helper-a64.h.inc} (100%)
create mode 100644 target/arm/tcg/helper-iwmmxt.h.inc
rename target/arm/tcg/{helper-mve.h => helper-mve.h.inc} (100%)
create mode 100644 target/arm/tcg/helper-neon.h.inc
rename target/arm/tcg/{helper-sme.h => helper-sme.h.inc} (99%)
rename target/arm/tcg/{helper-sve.h => helper-sve.h.inc} (98%)
create mode 100644 target/arm/tcg/helper-vfp.h.inc
rename target/arm/{helper.h => tcg/helper.h.inc} (56%)
create mode 100644 target/arm/tcg/translate-iwmmxt.c
rename tests/tcg/aarch64/{bti-crt.inc.c => bti-crt.c.inc} (100%)
[PATCH 00/22] target/arm/tcg: Remove inclusions of 'exec/helper-[proto/gen].h'
Posted by Philippe Mathieu-Daudé 11 months, 1 week ago
Hi,

This series tries to do what Richard suggested in [*]:

  Targets that have a tcg/ subdir should have helper.h.inc
  moved into there.  At the end, include/exec/helper-gen.h
  and include/exec/helper-proto.h become unused and go away.

but only for the ARM target, to first see if this is heading
in the correct direction.

Instead of having TCG generated helpers included by all
translate/helper units, they are reduced to the few places
really needing them. I expect the build step to be slighly
improved, since the compiler doesn't have to compile and
track unused helpers definitions.

[*] https://lore.kernel.org/qemu-devel/cad000d7-f408-9337-9328-ccb262c5fcc7@linaro.org/

Philippe Mathieu-Daudé (22):
  plugins: Remove unused 'exec/helper-proto.h' header
  accel/tcg/cpu-exec: Use generic 'helper-proto-common.h' header
  target/arm/tcg: Remove CONFIG_TCG #ifdef'ry check
  target/arm/tcg: Rename helper template headers as '.h.inc'
  target/arm/tcg: Extract iwMMXt helpers from the generic 'helper.h'
  target/arm/tcg: Fix iwmmxt-related code style
  target/arm/tcg: Expose some iwmmxt methods in 'translate.h'
  target/arm/tcg: Extract iwmmxt code to translate-iwmmxt.c
  target/arm/tcg: Reduce 'helper-iwmmxt.h.inc' inclusion
  target/arm/tcg: Extract VFP definitions to 'helper-vfp.h.inc'
  target/arm/tcg: Reduce 'helper-vfp.h.inc' inclusion
  target/arm/tcg: Move neon_tbl() from op_helper.c to neon_helper.c
  target/arm/tcg: Extract NEON definitions to 'helper-neon.h.inc'
  target/arm/tcg: Reduce 'helper-neon.h.inc' inclusion
  target/arm/tcg: Extract SVE2 definitions to 'helper-sve.h.inc'
  target/arm/tcg: Reduce 'helper-sve.h.inc' inclusion
  target/arm/tcg: Reduce 'helper-mve.h.inc' inclusion
  target/arm/tcg: Define SME set_svcr() helper in common 'helper.h'
  target/arm/tcg: Reduce 'helper-sme.h.inc' inclusion
  target/arm/tcg: Reduce 'helper-a64.h.inc' inclusion
  target/arm/tcg: Remove inclusions of 'exec/helper-[proto/gen].h'
  tests/tcg/aarch64: Rename bti-crt.inc.c -> bti-crt.c.inc

 target/arm/tcg/translate.h                    |   11 +-
 .../tcg/{helper-a64.h => helper-a64.h.inc}    |    0
 target/arm/tcg/helper-iwmmxt.h.inc            |  114 ++
 .../tcg/{helper-mve.h => helper-mve.h.inc}    |    0
 target/arm/tcg/helper-neon.h.inc              |  205 +++
 .../tcg/{helper-sme.h => helper-sme.h.inc}    |    2 -
 .../tcg/{helper-sve.h => helper-sve.h.inc}    |   46 +
 target/arm/tcg/helper-vfp.h.inc               |  136 ++
 target/arm/{helper.h => tcg/helper.h.inc}     |  488 +-----
 accel/tcg/cpu-exec.c                          |    2 +-
 plugins/core.c                                |    1 -
 target/arm/debug_helper.c                     |    7 +-
 target/arm/helper.c                           |    7 +-
 target/arm/tcg/cpu32.c                        |    4 +-
 target/arm/tcg/crypto_helper.c                |    6 +-
 target/arm/tcg/helper-a64.c                   |   11 +-
 target/arm/tcg/hflags.c                       |    6 +-
 target/arm/tcg/iwmmxt_helper.c                |    6 +-
 target/arm/tcg/m_helper.c                     |   12 +-
 target/arm/tcg/mte_helper.c                   |    5 +-
 target/arm/tcg/mve_helper.c                   |   16 +-
 target/arm/tcg/neon_helper.c                  |   28 +-
 target/arm/tcg/op_helper.c                    |   28 +-
 target/arm/tcg/pauth_helper.c                 |    5 +-
 target/arm/tcg/psci.c                         |    6 +-
 target/arm/tcg/sme_helper.c                   |   11 +-
 target/arm/tcg/sve_helper.c                   |   20 +-
 target/arm/tcg/tlb_helper.c                   |    5 +-
 target/arm/tcg/translate-a64.c                |   16 +
 target/arm/tcg/translate-iwmmxt.c             | 1340 +++++++++++++++++
 target/arm/tcg/translate-mve.c                |    6 +
 target/arm/tcg/translate-neon.c               |   11 +
 target/arm/tcg/translate-sme.c                |   16 +
 target/arm/tcg/translate-sve.c                |    5 +
 target/arm/tcg/translate-vfp.c                |    6 +
 target/arm/tcg/translate.c                    | 1274 +---------------
 target/arm/tcg/vec_helper.c                   |   26 +-
 target/arm/vfp_helper.c                       |   11 +-
 tests/tcg/aarch64/bti-1.c                     |    2 +-
 tests/tcg/aarch64/bti-3.c                     |    2 +-
 .../aarch64/{bti-crt.inc.c => bti-crt.c.inc}  |    0
 target/arm/tcg/meson.build                    |    1 +
 42 files changed, 2100 insertions(+), 1804 deletions(-)
 rename target/arm/tcg/{helper-a64.h => helper-a64.h.inc} (100%)
 create mode 100644 target/arm/tcg/helper-iwmmxt.h.inc
 rename target/arm/tcg/{helper-mve.h => helper-mve.h.inc} (100%)
 create mode 100644 target/arm/tcg/helper-neon.h.inc
 rename target/arm/tcg/{helper-sme.h => helper-sme.h.inc} (99%)
 rename target/arm/tcg/{helper-sve.h => helper-sve.h.inc} (98%)
 create mode 100644 target/arm/tcg/helper-vfp.h.inc
 rename target/arm/{helper.h => tcg/helper.h.inc} (56%)
 create mode 100644 target/arm/tcg/translate-iwmmxt.c
 rename tests/tcg/aarch64/{bti-crt.inc.c => bti-crt.c.inc} (100%)

-- 
2.38.1


Re: [PATCH 00/22] target/arm/tcg: Remove inclusions of 'exec/helper-[proto/gen].h'
Posted by Philippe Mathieu-Daudé 11 months, 1 week ago
On 9/6/23 12:46, Philippe Mathieu-Daudé wrote:
> Hi,
> 
> This series tries to do what Richard suggested in [*]:
> 
>    Targets that have a tcg/ subdir should have helper.h.inc
>    moved into there.  At the end, include/exec/helper-gen.h
>    and include/exec/helper-proto.h become unused and go away.
> 
> but only for the ARM target, to first see if this is heading
> in the correct direction.
> 
> Instead of having TCG generated helpers included by all
> translate/helper units, they are reduced to the few places
> really needing them. I expect the build step to be slighly
> improved, since the compiler doesn't have to compile and
> track unused helpers definitions.


>   42 files changed, 2100 insertions(+), 1804 deletions(-)
>   create mode 100644 target/arm/tcg/helper-iwmmxt.h.inc
>   create mode 100644 target/arm/tcg/helper-neon.h.inc
>   create mode 100644 target/arm/tcg/helper-vfp.h.inc
>   create mode 100644 target/arm/tcg/translate-iwmmxt.c

Note to myself, these new files miss a license.

Perhaps we could have a check for SPDX in checkpatch.pl, along with
"added, moved or deleted file(s), does MAINTAINERS need updating?".