* [Qemu-devel] [7003] tcg/x86_64: optimize register allocation order
@ 2009-04-05 20:08 Aurelien Jarno
0 siblings, 0 replies; only message in thread
From: Aurelien Jarno @ 2009-04-05 20:08 UTC (permalink / raw)
To: qemu-devel
Revision: 7003
http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=7003
Author: aurel32
Date: 2009-04-05 20:08:50 +0000 (Sun, 05 Apr 2009)
Log Message:
-----------
tcg/x86_64: optimize register allocation order
The beginning of the register allocation order list on the TCG x86_64
target matches the list of clobbered registers. This means that when an
helper is called, there is almost always clobbered registers that have
to be spilled.
The same way register %rsi and %rdi are at the top of the register
allocation order list, while they can't be used for load/store
operations. This means the data and/or address registers are very often
%rsi and %rdi, and their values have to be spilled, and then moved back
to another register.
This patches changes to the allocation order to avoid those effects.
It results in a 8% gain speed in qemu-x86_64 to compress a bzip2 file,
and a 6% gain in qemu-system-mips64 to compile a small application.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Modified Paths:
--------------
trunk/tcg/x86_64/tcg-target.c
Modified: trunk/tcg/x86_64/tcg-target.c
===================================================================
--- trunk/tcg/x86_64/tcg-target.c 2009-04-05 19:33:41 UTC (rev 7002)
+++ trunk/tcg/x86_64/tcg-target.c 2009-04-05 20:08:50 UTC (rev 7003)
@@ -44,22 +44,21 @@
#endif
static const int tcg_target_reg_alloc_order[] = {
- TCG_REG_RDI,
- TCG_REG_RSI,
- TCG_REG_RDX,
- TCG_REG_RCX,
- TCG_REG_R8,
- TCG_REG_R9,
- TCG_REG_RAX,
- TCG_REG_R10,
- TCG_REG_R11,
-
TCG_REG_RBP,
TCG_REG_RBX,
TCG_REG_R12,
TCG_REG_R13,
TCG_REG_R14,
TCG_REG_R15,
+ TCG_REG_R10,
+ TCG_REG_R11,
+ TCG_REG_R9,
+ TCG_REG_R8,
+ TCG_REG_RCX,
+ TCG_REG_RDX,
+ TCG_REG_RSI,
+ TCG_REG_RDI,
+ TCG_REG_RAX,
};
static const int tcg_target_call_iarg_regs[6] = {
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2009-04-05 20:08 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-05 20:08 [Qemu-devel] [7003] tcg/x86_64: optimize register allocation order Aurelien Jarno
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).