[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL v2] Queued TCG improvements
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PULL v2] Queued TCG improvements |
Date: |
Thu, 10 Sep 2015 21:31:31 +0200 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On 2015-08-19 08:49, Richard Henderson wrote:
> On 08/18/2015 04:23 PM, Peter Maydell wrote:
> > Hi. I'm afraid this fails 'make check' on 32-bit ARM for me:
>
> Found it. The problem is in the temps tracking patch, where we weren't
> ignoring TCG_CALL_DUMMY_ARG (-1). This isn't used on x86 of course, which is
> why we didn't see this failure there.
>
> The following fixes the problem. I chose to split the initialization so that
> non-call opcodes don't need to check for <dummy>.
>
> Can I get an RB for squashing this into the original patch?
Sorry for answering so late while it's already merged. This is indeed
correct. Thanks for fixing that.
> diff --git a/tcg/optimize.c b/tcg/optimize.c
> index 2693168..10795ec 100644
> --- a/tcg/optimize.c
> +++ b/tcg/optimize.c
> @@ -597,17 +597,24 @@ void tcg_optimize(TCGContext *s)
> const TCGOpDef *def = &tcg_op_defs[opc];
>
> oi_next = op->next;
> +
> + /* Count the arguments, and initialize the temps that are
> + going to be used */
> if (opc == INDEX_op_call) {
> nb_oargs = op->callo;
> nb_iargs = op->calli;
> + for (i = 0; i < nb_oargs + nb_iargs; i++) {
> + tmp = args[i];
> + if (tmp != TCG_CALL_DUMMY_ARG) {
> + init_temp_info(tmp);
> + }
> + }
> } else {
> nb_oargs = def->nb_oargs;
> nb_iargs = def->nb_iargs;
> - }
> -
> - /* Initialize the temps that are going to be used */
> - for (i = 0; i < nb_oargs + nb_iargs; i++) {
> - init_temp_info(args[i]);
> + for (i = 0; i < nb_oargs + nb_iargs; i++) {
> + init_temp_info(args[i]);
> + }
> }
>
> /* Do copy propagation */
>
>
--
Aurelien Jarno GPG: 4096R/1DDD8C9B
address@hidden http://www.aurel32.net
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PULL v2] Queued TCG improvements,
Aurelien Jarno <=