]> git.proxmox.com Git - mirror_qemu.git/commit - tcg/tcg.c
tcg: fix dead computation for repeated input arguments
authorAurelien Jarno <aurelien@aurel32.net>
Thu, 4 Jun 2015 19:47:08 +0000 (21:47 +0200)
committerRichard Henderson <rth@twiddle.net>
Tue, 9 Jun 2015 13:42:27 +0000 (06:42 -0700)
commitc19f47bf5e8fe3dbd10206a52d0e6e348f803933
treec443f4c78d7a792731603d1f1d8864b626501fe3
parent7e1df267a7e8b39fc0cf1d84d2afc2e88ccbfeac
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 <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Message-Id: <1433447228-29425-3-git-send-email-aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg/tcg.c