qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 0a6a8b: tcg: Use tcg_out_dupi_vec from temp_l


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 0a6a8b: tcg: Use tcg_out_dupi_vec from temp_load
Date: Thu, 14 Jan 2021 05:13:32 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 0a6a8bc8ebfe5ae2a3f18ef48b92a74bc2df2f96
      
https://github.com/qemu/qemu/commit/0a6a8bc8ebfe5ae2a3f18ef48b92a74bc2df2f96
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M tcg/aarch64/tcg-target.c.inc
    M tcg/i386/tcg-target.c.inc
    M tcg/ppc/tcg-target.c.inc
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Use tcg_out_dupi_vec from temp_load

Having dupi pass though movi is confusing and arguably wrong.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 4e18617555955503628a004ed97e1fc2fa7818b9
      
https://github.com/qemu/qemu/commit/4e18617555955503628a004ed97e1fc2fa7818b9
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M tcg/aarch64/tcg-target.c.inc
    M tcg/i386/tcg-target.c.inc
    M tcg/ppc/tcg-target.c.inc
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Increase tcg_out_dupi_vec immediate to int64_t

While we don't store more than tcg_target_long in TCGTemp,
we shouldn't be limited to that for code generation.  We will
be able to use this for INDEX_op_dup2_vec with 2 constants.

Also pass along the minimal vece that may be said to apply
to the constant.  This allows some simplification in the
various backends.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: ee17db83d2dce35792e9bf03366af193e5e0e5c9
      
https://github.com/qemu/qemu/commit/ee17db83d2dce35792e9bf03366af193e5e0e5c9
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M include/tcg/tcg.h
    M tcg/optimize.c
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Consolidate 3 bits into enum TCGTempKind

The temp_fixed, temp_global, temp_local bits are all related.
Combine them into a single enumeration.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: e01fa97dea857a35be5bb8cce0d632a62e72c689
      
https://github.com/qemu/qemu/commit/e01fa97dea857a35be5bb8cce0d632a62e72c689
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M include/tcg/tcg.h
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Add temp_readonly

In most, but not all, places that we check for TEMP_FIXED,
we are really testing that we do not modify the temporary.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: bdb38b95f72ebbef2d24e057828dd18ba9c81f63
      
https://github.com/qemu/qemu/commit/bdb38b95f72ebbef2d24e057828dd18ba9c81f63
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M include/tcg/tcg.h
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Expand TCGTemp.val to 64-bits

This will reduce the differences between 32-bit and 64-bit hosts,
allowing full 64-bit constants to be created with the same interface.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 6fcb98eda16b27d1999737346cdd4d3c1eae6a57
      
https://github.com/qemu/qemu/commit/6fcb98eda16b27d1999737346cdd4d3c1eae6a57
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M tcg/optimize.c

  Log Message:
  -----------
  tcg: Rename struct tcg_temp_info to TempOptInfo

Fix this name vs our coding style.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 54795544e4cfb2fa198f7ca244b5ea9eaad322d4
      
https://github.com/qemu/qemu/commit/54795544e4cfb2fa198f7ca244b5ea9eaad322d4
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M tcg/optimize.c

  Log Message:
  -----------
  tcg: Expand TempOptInfo to 64-bits

This propagates the extended value of TCGTemp.val that we did before.
In addition, it will be required for vector constants.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: c0522136adf550c7a0ef7c0755c1f9d1560d2757
      
https://github.com/qemu/qemu/commit/c0522136adf550c7a0ef7c0755c1f9d1560d2757
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M include/tcg/tcg.h
    M tcg/optimize.c
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Introduce TYPE_CONST temporaries

These will hold a single constant for the duration of the TB.
They are hashed, so that each value has one temp across the TB.

Not used yet, this is all infrastructure.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 4c868ce6454872d395b29de8d82387b2ad14aeeb
      
https://github.com/qemu/qemu/commit/4c868ce6454872d395b29de8d82387b2ad14aeeb
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M tcg/optimize.c

  Log Message:
  -----------
  tcg/optimize: Improve find_better_copy

Prefer TEMP_CONST over anything else.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 8f17a975e60b773d7c366a81c0d9bbe304f30859
      
https://github.com/qemu/qemu/commit/8f17a975e60b773d7c366a81c0d9bbe304f30859
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M tcg/optimize.c

  Log Message:
  -----------
  tcg/optimize: Adjust TempOptInfo allocation

Do not allocate a large block for indexing.  Instead, allocate
for each temporary as they are seen.

In general, this will use less memory, if we consider that most
TBs do not touch every target register.  This also allows us to
allocate TempOptInfo for new temps created during optimization.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 8fe35e0444be88de4e3ab80a2a0e210a1f6d663d
      
https://github.com/qemu/qemu/commit/8fe35e0444be88de4e3ab80a2a0e210a1f6d663d
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M tcg/optimize.c

  Log Message:
  -----------
  tcg/optimize: Use tcg_constant_internal with constant folding

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 0b4286dd15e2bcaf2aa53dfac0fb3103690f5a34
      
https://github.com/qemu/qemu/commit/0b4286dd15e2bcaf2aa53dfac0fb3103690f5a34
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M tcg/optimize.c
    M tcg/tcg-op-vec.c
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Convert tcg_gen_dupi_vec to TCG_CONST

Because we now store uint64_t in TCGTemp, we can now always
store the full 64-bit duplicate immediate.  So remove the
difference between 32- and 64-bit hosts.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 0e1ea43a9dc296c3ab2eab998e3e9c6c7ca488c5
      
https://github.com/qemu/qemu/commit/0e1ea43a9dc296c3ab2eab998e3e9c6c7ca488c5
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M include/exec/gen-icount.h

  Log Message:
  -----------
  tcg: Use tcg_constant_i32 with icount expander

We must do this before we adjust tcg_out_movi_i32, lest the
under-the-hood poking that we do for icount be broken.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 11d11d61bd9e82ac917c8159f6a2b736829231ae
      
https://github.com/qemu/qemu/commit/11d11d61bd9e82ac917c8159f6a2b736829231ae
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M include/tcg/tcg-op.h
    M tcg/tcg-op.c

  Log Message:
  -----------
  tcg: Use tcg_constant_{i32,i64} with tcg int expanders

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 80c44bba4235daa995af60a055e713d9f2e7b6de
      
https://github.com/qemu/qemu/commit/80c44bba4235daa995af60a055e713d9f2e7b6de
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M accel/tcg/plugin-gen.c

  Log Message:
  -----------
  tcg: Use tcg_constant_{i32,i64} with tcg plugins

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 88d4005b098427638d7551aa04ebde4fdd06835b
      
https://github.com/qemu/qemu/commit/88d4005b098427638d7551aa04ebde4fdd06835b
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M include/tcg/tcg.h
    M tcg/tcg-op-gvec.c
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Use tcg_constant_{i32,i64,vec} with gvec expanders

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 1bd1af98d7b166ced72e2fb8126b484c86d5357b
      
https://github.com/qemu/qemu/commit/1bd1af98d7b166ced72e2fb8126b484c86d5357b
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M include/tcg/tcg-opc.h
    M tcg/tci.c
    M tcg/tci/tcg-target.c.inc

  Log Message:
  -----------
  tcg/tci: Add special tci_movi_{i32,i64} opcodes

The normal movi opcodes are going away.  We need something
for TCI to use internally.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: c58f4c97b2ad9247c5ee85d625a934370862fba1
      
https://github.com/qemu/qemu/commit/c58f4c97b2ad9247c5ee85d625a934370862fba1
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M include/tcg/tcg-opc.h
    M tcg/aarch64/tcg-target.c.inc
    M tcg/arm/tcg-target.c.inc
    M tcg/i386/tcg-target.c.inc
    M tcg/mips/tcg-target.c.inc
    M tcg/optimize.c
    M tcg/ppc/tcg-target.c.inc
    M tcg/riscv/tcg-target.c.inc
    M tcg/s390/tcg-target.c.inc
    M tcg/sparc/tcg-target.c.inc
    M tcg/tcg-op-vec.c
    M tcg/tcg.c
    M tcg/tci/tcg-target.c.inc

  Log Message:
  -----------
  tcg: Remove movi and dupi opcodes

These are now completely covered by mov from a
TYPE_CONST temporary.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Aleksandar Markovic <aleksandar.qemu.devel@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: efe86b21ead9b5d256ce90c378e31681c5e243a5
      
https://github.com/qemu/qemu/commit/efe86b21ead9b5d256ce90c378e31681c5e243a5
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Add tcg_reg_alloc_dup2

There are several ways we can expand a vector dup of a 64-bit
element on a 32-bit host.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 9739a052ad313dbc9b1224f91f23f38e692d3f7e
      
https://github.com/qemu/qemu/commit/9739a052ad313dbc9b1224f91f23f38e692d3f7e
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M tcg/i386/tcg-target.c.inc

  Log Message:
  -----------
  tcg/i386: Use tcg_constant_vec with tcg vec expanders

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: be986adb35e3594b02ee0d7f1cbec96b08bb29b7
      
https://github.com/qemu/qemu/commit/be986adb35e3594b02ee0d7f1cbec96b08bb29b7
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M include/tcg/tcg-op.h
    M tcg/tcg-op-vec.c

  Log Message:
  -----------
  tcg: Remove tcg_gen_dup{8,16,32,64}i_vec

These interfaces have been replaced by tcg_gen_dupi_vec
and tcg_constant_vec.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 44aa59a0991de4f54b318787c6175b16337f8e77
      
https://github.com/qemu/qemu/commit/44aa59a0991de4f54b318787c6175b16337f8e77
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M tcg/ppc/tcg-target.c.inc

  Log Message:
  -----------
  tcg/ppc: Use tcg_constant_vec with tcg vec expanders

Improve expand_vec_shi to use sign-extraction for MO_32.
This allows a single VSPLTISB instruction to load all of
the valid shift constants.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 10061ffe56998ffe9ab6b83ee8338673fa280ca7
      
https://github.com/qemu/qemu/commit/10061ffe56998ffe9ab6b83ee8338673fa280ca7
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M tcg/aarch64/tcg-target.c.inc

  Log Message:
  -----------
  tcg/aarch64: Use tcg_constant_vec with tcg vec expanders

Improve rotrv_vec to reduce "t1 = -v2, t2 = t1 + c" to
"t1 = -v2, t2 = c - v2".  This avoids a serial dependency
between t1 and t2.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 4cacecaaa2bbf8af0967bd3eee43297fada475a9
      
https://github.com/qemu/qemu/commit/4cacecaaa2bbf8af0967bd3eee43297fada475a9
  Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M scripts/decodetree.py

  Log Message:
  -----------
  decodetree: Open files with encoding='utf-8'

When decodetree.py was added in commit 568ae7efae7, QEMU was
using Python 2 which happily reads UTF-8 files in text mode.
Python 3 requires either UTF-8 locale or an explicit encoding
passed to open(). Now that Python 3 is required, explicit
UTF-8 encoding for decodetree source files.

To avoid further problems with the user locale, also explicit
UTF-8 encoding for the generated C files.

Explicit both input/output are plain text by using the 't' mode.

This fixes:

  $ /usr/bin/python3 scripts/decodetree.py test.decode
  Traceback (most recent call last):
    File "scripts/decodetree.py", line 1397, in <module>
      main()
    File "scripts/decodetree.py", line 1308, in main
      parse_file(f, toppat)
    File "scripts/decodetree.py", line 994, in parse_file
      for line in f:
    File "/usr/lib/python3.6/encodings/ascii.py", line 26, in decode
      return codecs.ascii_decode(input, self.errors)[0]
  UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 80:
  ordinal not in range(128)

Reported-by: Peter Maydell <peter.maydell@linaro.org>
Suggested-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210110000240.761122-1-f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


  Commit: 7c79721606be11b5bc556449e5bcbc331ef6867d
      
https://github.com/qemu/qemu/commit/7c79721606be11b5bc556449e5bcbc331ef6867d
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2021-01-14 (Thu, 14 Jan 2021)

  Changed paths:
    M accel/tcg/plugin-gen.c
    M include/exec/gen-icount.h
    M include/tcg/tcg-op.h
    M include/tcg/tcg-opc.h
    M include/tcg/tcg.h
    M scripts/decodetree.py
    M tcg/aarch64/tcg-target.c.inc
    M tcg/arm/tcg-target.c.inc
    M tcg/i386/tcg-target.c.inc
    M tcg/mips/tcg-target.c.inc
    M tcg/optimize.c
    M tcg/ppc/tcg-target.c.inc
    M tcg/riscv/tcg-target.c.inc
    M tcg/s390/tcg-target.c.inc
    M tcg/sparc/tcg-target.c.inc
    M tcg/tcg-op-gvec.c
    M tcg/tcg-op-vec.c
    M tcg/tcg-op.c
    M tcg/tcg.c
    M tcg/tci.c
    M tcg/tci/tcg-target.c.inc

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/rth-gitlab/tags/pull-tcg-20210113' into 
staging

Improvements to tcg constant handling.
Force utf8 for decodetree.

# gpg: Signature made Thu 14 Jan 2021 02:15:42 GMT
# gpg:                using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F
# gpg:                issuer "richard.henderson@linaro.org"
# gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org>" 
[full]
# Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A  05C0 64DF 38E8 AF7E 215F

* remotes/rth-gitlab/tags/pull-tcg-20210113: (24 commits)
  decodetree: Open files with encoding='utf-8'
  tcg/aarch64: Use tcg_constant_vec with tcg vec expanders
  tcg/ppc: Use tcg_constant_vec with tcg vec expanders
  tcg: Remove tcg_gen_dup{8,16,32,64}i_vec
  tcg/i386: Use tcg_constant_vec with tcg vec expanders
  tcg: Add tcg_reg_alloc_dup2
  tcg: Remove movi and dupi opcodes
  tcg/tci: Add special tci_movi_{i32,i64} opcodes
  tcg: Use tcg_constant_{i32,i64,vec} with gvec expanders
  tcg: Use tcg_constant_{i32,i64} with tcg plugins
  tcg: Use tcg_constant_{i32,i64} with tcg int expanders
  tcg: Use tcg_constant_i32 with icount expander
  tcg: Convert tcg_gen_dupi_vec to TCG_CONST
  tcg/optimize: Use tcg_constant_internal with constant folding
  tcg/optimize: Adjust TempOptInfo allocation
  tcg/optimize: Improve find_better_copy
  tcg: Introduce TYPE_CONST temporaries
  tcg: Expand TempOptInfo to 64-bits
  tcg: Rename struct tcg_temp_info to TempOptInfo
  tcg: Expand TCGTemp.val to 64-bits
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/c0dd6654f207...7c79721606be



reply via email to

[Prev in Thread] Current Thread [Next in Thread]