diff options
author | Aurelien Jarno <aurelien@aurel32.net> | 2015-07-27 12:41:44 +0200 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2015-08-24 11:10:30 -0700 |
commit | 1208d7dd5fddc1fbd98de800d17429b4e5578848 (patch) | |
tree | ccfcb0cfb9dba19efbc8df465a229829471cb6ca /trace | |
parent | 29f3ff8d6cbc28f79933aeaa25805408d0984a8f (diff) |
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>
Diffstat (limited to 'trace')
0 files changed, 0 insertions, 0 deletions