This set of patches moves rest global variables to tcg_ctx.
Also second patch introduces new TBContext for translation blocks
ans moves translation block globals there. We place tb_ctx inside
tcg_ctx and get noticable speed-up.
After this patchset was aplied,
I noticed ~4-5% speed-up of code generation.
Here is the test procedure:
1. Boot Linux Kernel 5 times.
2. For each iteration wait while "JIT cycles" is stable for ~10 seconds
3. Write down the "cycles/op"
Here are the results (tested on gcc-4.6):
Before clean-up:
min: 662.4
max: 696
avg: 672.28
standard deviation: ~17 ~= 3.5%
Average cycles/op = 672 +- 17
After clean-up:
min: 635
max: 650.5
avg: 640.14
standard deviation: ~8 ~= 1.6%
Average cycles/op = 640 +- 8
Evgeny Voevodin (2):
TCG: Final globals clean-up
TCG: Move translation block variables to new context inside tcg_ctx:
tb_ctx
cpu-exec.c | 18 +++--
include/exec/exec-all.h | 27 +++++---
linux-user/main.c | 6 +-
tcg/tcg.c | 2 +-
tcg/tcg.h | 16 ++++-
translate-all.c | 173 +++++++++++++++++++++++------------------------
6 files changed, 130 insertions(+), 112 deletions(-)
--
1.7.9.5