[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v6 22/25] target/aarch64: optimize indirect branches
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH v6 22/25] target/aarch64: optimize indirect branches |
Date: |
Tue, 2 May 2017 12:22:57 -0700 |
From: "Emilio G. Cota" <address@hidden>
Measurements:
[Baseline performance is that before applying this and the previous commit]
- NBench, aarch64-softmmu. Host: Intel
i7-4790K @ 4.00GHz
1.7x
+-+--------------------------------------------------------------------------------------------------------------+-+
|
|
| cross
|
1.6x
+cross+jr.................................................####...................................................+-+
| #++#
|
| # #
|
1.5x
+-+...................................................*****..#...................................................+-+
| *+++* #
|
| * * #
|
1.4x
+-+...................................................*...*..#...................................................+-+
| * * #
|
| ##### * * #
|
1.3x
+-+................................****+++#...........*...*..#...................................................+-+
| *++* # * * #
|
| * * # * * #
|
1.2x
+-+................................*..*...#...........*...*..#...................................................+-+
| * * # * * #
|
| #### * * # * * #
|
1.1x
+-+.......................+++#..#..*..*...#...........*...*..#...................................................+-+
| **** # * * # * * #
****#### |
| * * # * * # * * # ****###
+++#### ****### * * # |
1x
+-++-++++++-++++****###++-*++*++#++*++*+-+#++****+++++*+++*++#++*++*-+#++*****++#++****###-++*++*-+#++*+-*+++#+-++-+
| *****### * * # * * # * * # *++*### * * # * * #
* * # * *++# * * # * * # |
| * *++# * * # * * # * * # * * # * * # * * #
* * # * * # * * # * * # |
0.9x
+-+---*****###--****###---****###--****####--****###--*****###--****###--*****###--****###---****###--****####---+-+
ASSIGNMENT BITFIELD FOURFP EMULATION HUFFMAN LU DECOMPOSITIONNEURAL
NUMERIC SORSTRING SORT hmean
png: http://imgur.com/qO9ubtk
NB. cross here represents the previous commit.
- SPECint06 (test set), aarch64-linux-user. Host:
Intel i7-4790K @ 4.00GHz
1.5x
+-+--------------------------------------------------------------------------------------------------------------+-+
|
***** |
|
*+++* jr |
| *
* |
1.4x
+-+.....................................................................*...*.....................+++............+-+
| *
* | |
| ***** *
* | |
| * * *
* ***** |
1.3x
+-+....................................*...*............................*...*....................*.|.*...........+-+
| +++ * * *
* * | * |
| ***** * * *
* *+++* |
| * * * * *
* * * |
1.2x
+-+....................*...*...........*...*............................*...*...........*****....*...*...........+-+
| ***** * * * * *
* * * * * +++ |
| * * * * * * *
* * * * * ***** |
| * * * * ***** * * *
* * * * * * * |
1.1x
+-+...*...*............*...*...*...*...*...*............................*...*....+++....*...*....*...*...*...*...+-+
| * * * * * * * * *
* ***** * * * * * * |
| * * * * * * * * ***** *
* * * * * * * * * |
| * * ***** * * * * * * * * ****** *
* * * * * * * * * |
1x
+-++-+*+++*-++*+++*++++*+-+*+++*-++*+++*-++*+++*+++*++-*++++*-++*****+++*++-*+++*++-*+++*+-+*++++*+++*++-*+++*+-++-+
| * * * * * * * * * * * * * * *+++* *
* * * * * * * * * |
| * * * * * * * * * * * * * * * * *
* * * * * * * * * |
| * * * * * * * * * * * * * * * * *
* * * * * * * * * |
0.9x
+-+---*****---*****----*****---*****---*****---*****---******---*****---*****---*****---*****----*****---*****---+-+
astar bzip2 gcc gobmk h264ref hmmlibquantum mcf
omnetpperlbench sjengxalancbmk hmean
png: http://imgur.com/3Dp4vvq
- SPECint06 (train set), aarch64-linux-user. Host:
Intel i7-4790K @ 4.00GHz
1.7x
+-+--------------------------------------------------------------------------------------------------------------+-+
|
|
|
jr |
1.6x
+-+...............................................................................................+++............+-+
|
***** |
|
*+++* |
|
* * |
1.5x
+-+..............................................................................................*...*...........+-+
|
+++ * * |
|
***** * * |
1.4x
+-+.....................................................................*+++*....................*...*...........+-+
| *
* * * |
| ***** *
* * * |
| * * *
* ***** * * |
1.3x
+-+....................................*...*............................*...*...*...*............*...*...........+-+
| +++ * * *
* * * * * |
| ***** * * *
* * * ***** * * |
1.2x
+-+....................*...*...........*...*............................*...*...*...*...*+++*....*...*...*****...+-+
| * * * * *
* * * * * * * *+++* |
| ***** * * ***** * * *
* * * * * * * * * |
| * * * * *+++* * * *
* * * * * * * * * |
1.1x
+-+...*...*............*...*...*...*...*...*............................*...*...*...*...*...*....*...*...*...*...+-+
| * * ***** * * * * * * ***** *
* * * * * * * * * |
| * * * * * * * * * * +++ ****** *+++* *
* * * * * * * * * |
1x
+-+---*****---*****----*****---*****---*****---*****---******---*****---*****---*****---*****----*****---*****---+-+
astar bzip2 gcc gobmk h264ref hmmlibquantum mcf
omnetpperlbench sjengxalancbmk hmean
png: http://imgur.com/vRrdc9j
Signed-off-by: Emilio G. Cota <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
---
target/arm/translate-a64.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c
index 1e28094..e0e8b80 100644
--- a/target/arm/translate-a64.c
+++ b/target/arm/translate-a64.c
@@ -11361,8 +11361,7 @@ void gen_intermediate_code_a64(ARMCPU *cpu,
TranslationBlock *tb)
gen_a64_set_pc_im(dc->pc);
/* fall through */
case DISAS_JUMP:
- /* indicate that the hash table must be used to find the next TB */
- tcg_gen_exit_tb(0);
+ tcg_gen_lookup_and_goto_ptr(cpu_pc);
break;
case DISAS_TB_JUMP:
case DISAS_EXC:
--
2.9.3
- Re: [Qemu-devel] [PATCH v6 13/25] tcg/aarch64: Implement goto_ptr, (continued)
- [Qemu-devel] [PATCH v6 11/25] tb-hash: improve tb_jmp_cache hash function in user mode, Richard Henderson, 2017/05/02
- [Qemu-devel] [PATCH v6 17/25] tcg/arm: Implement goto_ptr, Richard Henderson, 2017/05/02
- [Qemu-devel] [PATCH v6 14/25] tcg/sparc: Implement goto_ptr, Richard Henderson, 2017/05/02
- [Qemu-devel] [PATCH v6 16/25] tcg/arm: Clarify tcg_out_bx for arm4 host, Richard Henderson, 2017/05/02
- [Qemu-devel] [PATCH v6 19/25] target/hppa: Use tcg_gen_lookup_and_goto_ptr, Richard Henderson, 2017/05/02
- [Qemu-devel] [PATCH v6 20/25] target/alpha: Use tcg_gen_lookup_and_goto_ptr, Richard Henderson, 2017/05/02
- [Qemu-devel] [PATCH v6 18/25] target/s390: Use tcg_gen_lookup_and_goto_ptr, Richard Henderson, 2017/05/02
- [Qemu-devel] [PATCH v6 21/25] target/aarch64: optimize cross-page direct jumps in softmmu, Richard Henderson, 2017/05/02
- [Qemu-devel] [PATCH v6 22/25] target/aarch64: optimize indirect branches,
Richard Henderson <=
- [Qemu-devel] [PATCH v6 23/25] tcg/mips: implement goto_ptr, Richard Henderson, 2017/05/02
- [Qemu-devel] [PATCH v6 24/25] target/mips: optimize cross-page direct jumps in softmmu, Richard Henderson, 2017/05/02
- [Qemu-devel] [PATCH v6 25/25] target/mips: optimize indirect branches, Richard Henderson, 2017/05/02
- Re: [Qemu-devel] [PATCH v6 00/25] tcg cross-tb optimizations, no-reply, 2017/05/02
- Re: [Qemu-devel] [PATCH v6 00/25] tcg cross-tb optimizations, Richard Henderson, 2017/05/02