]> git.ipfire.org Git - thirdparty/qemu.git/commit
tcg/optimize: optimize temps tracking
authorAurelien Jarno <aurelien@aurel32.net>
Mon, 27 Jul 2015 10:41:44 +0000 (12:41 +0200)
committerRichard Henderson <rth@twiddle.net>
Mon, 24 Aug 2015 18:10:30 +0000 (11:10 -0700)
commit1208d7dd5fddc1fbd98de800d17429b4e5578848
treeccfcb0cfb9dba19efbc8df465a229829471cb6ca
parent29f3ff8d6cbc28f79933aeaa25805408d0984a8f
tcg/optimize: optimize temps tracking

The tcg_temp_info structure uses 24 bytes per temp. Now that we emulate
vector registers on most guests, it's not uncommon to have more than 100
used temps. This means we have initialize more than 2kB at least twice
per TB, often more when there is a few goto_tb.

Instead used a TCGTempSet bit array to track which temps are in used in
the current basic block. This means there are only around 16 bytes to
initialize.

This improves the boot time of a MIPS guest on an x86-64 host by around
7% and moves out tcg_optimize from the the top of the profiler list.

[rth: Handle TCG_CALL_DUMMY_ARG]

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg/optimize.c