[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 1/4] tcg/optimize: fix know-zero bits optimization
From: |
Aurelien Jarno |
Subject: |
[Qemu-devel] [PATCH 1/4] tcg/optimize: fix know-zero bits optimization |
Date: |
Tue, 3 Sep 2013 08:27:57 +0200 |
Known-zero bits optimization is a great idea that helps to generate more
optimized code. However the current implementation is basically useless
as the computed mask is not saved.
Fix this to make it really working.
Cc: Richard Henderson <address@hidden>
Cc: Paolo Bonzini <address@hidden>
Signed-off-by: Aurelien Jarno <address@hidden>
---
tcg/optimize.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/tcg/optimize.c b/tcg/optimize.c
index b29bf25..41f2906 100644
--- a/tcg/optimize.c
+++ b/tcg/optimize.c
@@ -695,7 +695,8 @@ static TCGArg *tcg_constant_folding(TCGContext *s, uint16_t
*tcg_opc_ptr,
break;
}
- /* Simplify using known-zero bits */
+ /* Simplify using known-zero bits. Currently only ops with a single
+ output argument is supported. */
mask = -1;
affected = -1;
switch (op) {
@@ -1144,6 +1145,11 @@ static TCGArg *tcg_constant_folding(TCGContext *s,
uint16_t *tcg_opc_ptr,
} else {
for (i = 0; i < def->nb_oargs; i++) {
reset_temp(args[i]);
+ /* Save the corresponding known-zero bits mask for the
+ first output argument (only one supported so far). */
+ if (i == 0) {
+ temps[args[i]].mask = mask;
+ }
}
}
for (i = 0; i < def->nb_args; i++) {
--
1.7.10.4
- [Qemu-devel] [PATCH 0/4] tcg/optimize: fixes and improvements, Aurelien Jarno, 2013/09/03
- [Qemu-devel] [PATCH 2/4] tcg/optimize: fix known-zero bits for right shift ops, Aurelien Jarno, 2013/09/03
- [Qemu-devel] [PATCH 4/4] tcg/optimize: add known-zero bits compute for load ops, Aurelien Jarno, 2013/09/03
- [Qemu-devel] [PATCH 1/4] tcg/optimize: fix know-zero bits optimization,
Aurelien Jarno <=
- [Qemu-devel] [PATCH 3/4] tcg/optimize: improve known-zero bits for 32-bit ops, Aurelien Jarno, 2013/09/03
- Re: [Qemu-devel] [PATCH 0/4] tcg/optimize: fixes and improvements, Paolo Bonzini, 2013/09/03
- Re: [Qemu-devel] [PATCH 0/4] tcg/optimize: fixes and improvements, Richard Henderson, 2013/09/03