qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 2b7ec6: tcg: Mask TCGMemOp appropriately for


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 2b7ec6: tcg: Mask TCGMemOp appropriately for indexing
Date: Tue, 09 Jun 2015 08:30:06 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 2b7ec66f025263a5331f37d5ad78a625496fd7bd
      
https://github.com/qemu/qemu/commit/2b7ec66f025263a5331f37d5ad78a625496fd7bd
  Author: Richard Henderson <address@hidden>
  Date:   2015-06-09 (Tue, 09 Jun 2015)

  Changed paths:
    M tcg/aarch64/tcg-target.c
    M tcg/arm/tcg-target.c
    M tcg/i386/tcg-target.c
    M tcg/mips/tcg-target.c
    M tcg/ppc/tcg-target.c
    M tcg/s390/tcg-target.c
    M tcg/sparc/tcg-target.c
    M tci.c

  Log Message:
  -----------
  tcg: Mask TCGMemOp appropriately for indexing

The addition of MO_AMASK means that places that used inverted masks
need to be changed to use positive masks, and places that failed to
mask the intended bits need updating.

Reviewed-by: Yongbok Kim <address@hidden>
Tested-by: Yongbok Kim <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 59c4b7e8dfab0cdc41434fedbf2686222f541e57
      
https://github.com/qemu/qemu/commit/59c4b7e8dfab0cdc41434fedbf2686222f541e57
  Author: Richard Henderson <address@hidden>
  Date:   2015-06-09 (Tue, 09 Jun 2015)

  Changed paths:
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Handle MO_AMASK in tcg_dump_ops

Reviewed-by: Yongbok Kim <address@hidden>
Tested-by: Yongbok Kim <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 7e1df267a7e8b39fc0cf1d84d2afc2e88ccbfeac
      
https://github.com/qemu/qemu/commit/7e1df267a7e8b39fc0cf1d84d2afc2e88ccbfeac
  Author: Aurelien Jarno <address@hidden>
  Date:   2015-06-09 (Tue, 09 Jun 2015)

  Changed paths:
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: fix register allocation with two aliased dead inputs

For TCG ops with two outputs registers (add2, sub2, div2, div2u), when
the same input temp is used for the two inputs aliased to the two
outputs, and when these inputs are both dead, the register allocation
code wrongly assigned the same register to the same output.

This happens for example with sub2 t1, t2, t3, t3, t4, t5, when t3 is
not used anymore after the TCG op.  In that case the same register is
used for t1, t2 and t3.

The fix is to look for already allocated aliased input when allocating
a dead aliased input and check that the register is not already
used.

Cc: Richard Henderson <address@hidden>
Signed-off-by: Aurelien Jarno <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: c19f47bf5e8fe3dbd10206a52d0e6e348f803933
      
https://github.com/qemu/qemu/commit/c19f47bf5e8fe3dbd10206a52d0e6e348f803933
  Author: Aurelien Jarno <address@hidden>
  Date:   2015-06-09 (Tue, 09 Jun 2015)

  Changed paths:
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: fix dead computation for repeated input arguments

When the same temp is used twice or more as an input argument to a TCG
instruction, the dead computation code doesn't recognize the second use
as a dead temp. This is because the temp is marked as live in the same
loop where dead inputs are checked.

The fix is to split the loop in two parts. This avoid emitting a move
and using a register for the movcond instruction when used as "move if
true" on x86-64. This might bring more improvements on RISC TCG targets
which don't have outputs aliased to inputs.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Aurelien Jarno <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: ebd27391b00cdafc81e0541a940686137b3b48df
      
https://github.com/qemu/qemu/commit/ebd27391b00cdafc81e0541a940686137b3b48df
  Author: Aurelien Jarno <address@hidden>
  Date:   2015-06-09 (Tue, 09 Jun 2015)

  Changed paths:
    M tcg/optimize.c

  Log Message:
  -----------
  tcg/optimize: remove opc argument from tcg_opt_gen_movi

We can get the opcode using the TCGOp pointer. It needs to be
dereferenced, but it's anyway done a few lines below to write
the new value.

Cc: Richard Henderson <address@hidden>
Signed-off-by: Aurelien Jarno <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 8d6a91602ea824ef4435ea38fd475387eecc098c
      
https://github.com/qemu/qemu/commit/8d6a91602ea824ef4435ea38fd475387eecc098c
  Author: Aurelien Jarno <address@hidden>
  Date:   2015-06-09 (Tue, 09 Jun 2015)

  Changed paths:
    M tcg/optimize.c

  Log Message:
  -----------
  tcg/optimize: remove opc argument from tcg_opt_gen_mov

We can get the opcode using the TCGOp pointer. It needs to be
dereferenced, but it's anyway done a few lines below to write
the new value.

Cc: Richard Henderson <address@hidden>
Signed-off-by: Aurelien Jarno <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 5365718a9afeeabde3784d82a542f8ad909b18cf
      
https://github.com/qemu/qemu/commit/5365718a9afeeabde3784d82a542f8ad909b18cf
  Author: Aurelien Jarno <address@hidden>
  Date:   2015-06-09 (Tue, 09 Jun 2015)

  Changed paths:
    M tcg/optimize.c

  Log Message:
  -----------
  tcg/optimize: fold temp copies test in tcg_opt_gen_mov

Each call to tcg_opt_gen_mov is preceeded by a test to check if the
source and destination temps are copies. Fold that into the
tcg_opt_gen_mov function.

Cc: Richard Henderson <address@hidden>
Signed-off-by: Aurelien Jarno <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 97a79eb70dd35a24fda87d86196afba5e6f21c5d
      
https://github.com/qemu/qemu/commit/97a79eb70dd35a24fda87d86196afba5e6f21c5d
  Author: Aurelien Jarno <address@hidden>
  Date:   2015-06-09 (Tue, 09 Jun 2015)

  Changed paths:
    M tcg/optimize.c

  Log Message:
  -----------
  tcg/optimize: fold constant test in tcg_opt_gen_mov

Most of the calls to tcg_opt_gen_mov are preceeded by a test to check if
the source temp is a constant. Fold that into the tcg_opt_gen_mov
function.

Cc: Richard Henderson <address@hidden>
Signed-off-by: Aurelien Jarno <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 36e60ef6ac5d8a262d0fbeedfdb2b588514cb1ea
      
https://github.com/qemu/qemu/commit/36e60ef6ac5d8a262d0fbeedfdb2b588514cb1ea
  Author: Aurelien Jarno <address@hidden>
  Date:   2015-06-09 (Tue, 09 Jun 2015)

  Changed paths:
    M tcg/optimize.c

  Log Message:
  -----------
  tcg/optimize: rename tcg_constant_folding

The tcg_constant_folding folding ends up doing all the optimizations
(which is a good thing to avoid looping on all ops multiple time), so
make it clear and just rename it tcg_optimize.

Cc: Richard Henderson <address@hidden>
Signed-off-by: Aurelien Jarno <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: b0411142f482df92717f8b4a3b746081a62b724f
      
https://github.com/qemu/qemu/commit/b0411142f482df92717f8b4a3b746081a62b724f
  Author: Peter Maydell <address@hidden>
  Date:   2015-06-09 (Tue, 09 Jun 2015)

  Changed paths:
    M tcg/aarch64/tcg-target.c
    M tcg/arm/tcg-target.c
    M tcg/i386/tcg-target.c
    M tcg/mips/tcg-target.c
    M tcg/optimize.c
    M tcg/ppc/tcg-target.c
    M tcg/s390/tcg-target.c
    M tcg/sparc/tcg-target.c
    M tcg/tcg.c
    M tci.c

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

Collected TCG patches

# gpg: Signature made Tue Jun  9 15:06:18 2015 BST using RSA key ID 4DD0279B
# gpg: Good signature from "Richard Henderson <address@hidden>"
# gpg:                 aka "Richard Henderson <address@hidden>"
# gpg:                 aka "Richard Henderson <address@hidden>"

* remotes/rth/tags/pull-tcg-20150609:
  tcg/optimize: rename tcg_constant_folding
  tcg/optimize: fold constant test in tcg_opt_gen_mov
  tcg/optimize: fold temp copies test in tcg_opt_gen_mov
  tcg/optimize: remove opc argument from tcg_opt_gen_mov
  tcg/optimize: remove opc argument from tcg_opt_gen_movi
  tcg: fix dead computation for repeated input arguments
  tcg: fix register allocation with two aliased dead inputs
  tcg: Handle MO_AMASK in tcg_dump_ops
  tcg: Mask TCGMemOp appropriately for indexing

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/44ee94e48626...b0411142f482

reply via email to

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