[PATCH v2 0/6] tcg: Restrict tcg_out_op() to arrays of TCG_MAX_OP_ARGS elements

Philippe Mathieu-Daudé posted 6 patches 2 weeks ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210113172459.2481060-1-f4bug@amsat.org
Maintainers: Thomas Huth <thuth@redhat.com>, Cornelia Huck <cohuck@redhat.com>
tcg/tcg.c                    |  19 +--
tcg/aarch64/tcg-target.c.inc |   3 +-
tcg/arm/tcg-target.c.inc     | 196 +++++++++++++++----------------
tcg/i386/tcg-target.c.inc    |   6 +-
tcg/mips/tcg-target.c.inc    |   3 +-
tcg/ppc/tcg-target.c.inc     | 191 ++++++++++++++----------------
tcg/riscv/tcg-target.c.inc   |   3 +-
tcg/s390/tcg-target.c.inc    | 222 +++++++++++++++++------------------
tcg/tci/tcg-target.c.inc     |   5 +-
9 files changed, 311 insertions(+), 337 deletions(-)

[PATCH v2 0/6] tcg: Restrict tcg_out_op() to arrays of TCG_MAX_OP_ARGS elements

Posted by Philippe Mathieu-Daudé 2 weeks ago
Since v1:
- Redo the whole change, only hoisting when variable is used 10+ times
- Remove goto statement/label
- Take care of the following pattern:

    case INDEX_op_bswap64_i64:
        a2 =3D TCG_REG_R0;
        if (a0 =3D=3D a1) {
            a0 =3D TCG_REG_R0;
            a2 =3D a1;
        }
        ...
        if (a0 =3D=3D 0) {
            tcg_out_mov(s, TCG_TYPE_REG, args[0], a0);
                                         ^^^^ take original a[0]
        }

Attempt to fix the warning reported by Miroslav using GCC 10:
https://www.mail-archive.com/qemu-devel@nongnu.org/msg771520.html

Diff with v1:

Key:
[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respective=
ly

001/6:[0063] [FC] 'tcg/arm: Hoist common argument loads in tcg_out_op()'
002/6:[down] 'tcg/arm: Replace goto statement by fall through comment'
003/6:[0190] [FC] 'tcg/ppc: Hoist common argument loads in tcg_out_op()'
004/6:[0136] [FC] 'tcg/s390: Hoist common argument loads in tcg_out_op()'
005/6:[----] [--] 'tcg: Restrict tcg_out_op() to arrays of TCG_MAX_OP_ARGS el=
ements'
006/6:[----] [--] 'tcg: Restrict tcg_out_vec_op() to arrays of TCG_MAX_OP_ARG=
S elements'

Philippe Mathieu-Daud=C3=A9 (6):
  tcg/arm: Hoist common argument loads in tcg_out_op()
  tcg/arm: Replace goto statement by fall through comment
  tcg/ppc: Hoist common argument loads in tcg_out_op()
  tcg/s390: Hoist common argument loads in tcg_out_op()
  tcg: Restrict tcg_out_op() to arrays of TCG_MAX_OP_ARGS elements
  tcg: Restrict tcg_out_vec_op() to arrays of TCG_MAX_OP_ARGS elements

 tcg/tcg.c                    |  19 +--
 tcg/aarch64/tcg-target.c.inc |   3 +-
 tcg/arm/tcg-target.c.inc     | 196 +++++++++++++++----------------
 tcg/i386/tcg-target.c.inc    |   6 +-
 tcg/mips/tcg-target.c.inc    |   3 +-
 tcg/ppc/tcg-target.c.inc     | 191 ++++++++++++++----------------
 tcg/riscv/tcg-target.c.inc   |   3 +-
 tcg/s390/tcg-target.c.inc    | 222 +++++++++++++++++------------------
 tcg/tci/tcg-target.c.inc     |   5 +-
 9 files changed, 311 insertions(+), 337 deletions(-)

--=20
2.26.2