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