From nobody Mon Feb 9 06:49:14 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 149801382100530.55759503592128; Tue, 20 Jun 2017 19:57:01 -0700 (PDT) Received: from localhost ([::1]:51565 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNVpD-0004c8-OF for importer@patchew.org; Tue, 20 Jun 2017 22:56:59 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33933) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNVhL-0006We-8p for qemu-devel@nongnu.org; Tue, 20 Jun 2017 22:48:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNVhK-0002P4-D4 for qemu-devel@nongnu.org; Tue, 20 Jun 2017 22:48:51 -0400 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:34443) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dNVhK-0002Ox-9S for qemu-devel@nongnu.org; Tue, 20 Jun 2017 22:48:50 -0400 Received: by mail-qt0-x244.google.com with SMTP id o21so25678309qtb.1 for ; Tue, 20 Jun 2017 19:48:50 -0700 (PDT) Received: from bigtime.twiddle.net.com (97-113-165-157.tukw.qwest.net. [97.113.165.157]) by smtp.gmail.com with ESMTPSA id l53sm2478939qta.56.2017.06.20.19.48.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Jun 2017 19:48:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=kzkHWUmkStrVqxM+9nWD+5txIc0RvI6rS3q3AGYPZkk=; b=YOXvD8cZ5PY+J3nnmebfqSgkPHDKkC/hX43QK38Uq7JCN/U2bbH9ObX+18IbAexSNh zjv+Evd0zOM2iQm7zoqATaapKH+M6doyE0hW61ggdRW622TsSS4dhuidWefaRyxsfShD PnvZ3Ukx6rUHNCroXIbqLUOlAK/rfid3prvQGf28vsZRDy20sqbLxYqUkWLw3coftC6A 7ZkkCtKLjXAbNMnRSSrl2PXVtfTpADYQB689BxQYwn1hMKf4PHPkCMGbY9wUsvm6BR84 z5ng58/rQCKMB/ryqYWiDk4aEHgtRDPuyAdSv1m5oQFENWDqMPQkGGXIbybFJ1+ncZiU MA4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=kzkHWUmkStrVqxM+9nWD+5txIc0RvI6rS3q3AGYPZkk=; b=r/DNY4Y1+537c2wjrPHkYZ9phGJj1cl5G4jQwsHhNWrF0LW/enw+s8Fa+ylD1jkRqW KMXUVExAxjCE51RD/Q79+Yvgfilv0fTQYHq0t7syTcH8ZAGhFNPePeCxZDOLwlEOYJsG DuJAW6Q31fN03zAPE8b8vlQ8ywBGSaW1xg8zQqpidiFMQ1WP5/kbv/NG3DU0D4wXM0W8 rCMDldIS8Zxvef7cF8dmCB7nGoneps2FX9KOKND3Q6Lg5jSKsuACSkPpn0gVIr97+nkT ZBjjWU3qTezCxOJJcBcVX4/Ceyjru0vnRftZfVnTj8GfJhwkyterB6VbKTwVK3U8/ktQ uBIw== X-Gm-Message-State: AKS2vOx/fuBWyKHmLgS6XVpT3pAK9y3JXpH0CxvHOtcAYQUHd0+gt+py Ssf7JtBUllj1+KHCWi0= X-Received: by 10.237.61.47 with SMTP id g44mr2685871qtf.60.1498013329567; Tue, 20 Jun 2017 19:48:49 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 19:48:25 -0700 Message-Id: <20170621024831.26019-11-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170621024831.26019-1-rth@twiddle.net> References: <20170621024831.26019-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::244 Subject: [Qemu-devel] [PATCH 10/16] tcg: Avoid loops against variable bounds X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Copy s->nb_globals or s->nb_temps to a local variable for the purposes of iteration. This should allow the compiler to use low-overhead looping constructs on some hosts. Signed-off-by: Richard Henderson Reviewed-by: Alex Benn=C3=A9e --- tcg/tcg.c | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/tcg/tcg.c b/tcg/tcg.c index e78140b..c228f1e 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -943,23 +943,16 @@ void tcg_gen_callN(TCGContext *s, void *func, TCGArg = ret, =20 static void tcg_reg_alloc_start(TCGContext *s) { - int i; + int i, n; TCGTemp *ts; - for(i =3D 0; i < s->nb_globals; i++) { + + for (i =3D 0, n =3D s->nb_globals; i < n; i++) { ts =3D &s->temps[i]; - if (ts->fixed_reg) { - ts->val_type =3D TEMP_VAL_REG; - } else { - ts->val_type =3D TEMP_VAL_MEM; - } + ts->val_type =3D (ts->fixed_reg ? TEMP_VAL_REG : TEMP_VAL_MEM); } - for(i =3D s->nb_globals; i < s->nb_temps; i++) { + for (n =3D s->nb_temps; i < n; i++) { ts =3D &s->temps[i]; - if (ts->temp_local) { - ts->val_type =3D TEMP_VAL_MEM; - } else { - ts->val_type =3D TEMP_VAL_DEAD; - } + ts->val_type =3D (ts->temp_local ? TEMP_VAL_MEM : TEMP_VAL_DEAD); ts->mem_allocated =3D 0; ts->fixed_reg =3D 0; } @@ -2050,9 +2043,9 @@ static void temp_save(TCGContext *s, TCGTemp *ts, TCG= RegSet allocated_regs) temporary registers needs to be allocated to store a constant. */ static void save_globals(TCGContext *s, TCGRegSet allocated_regs) { - int i; + int i, n; =20 - for (i =3D 0; i < s->nb_globals; i++) { + for (i =3D 0, n =3D s->nb_globals; i < n; i++) { temp_save(s, &s->temps[i], allocated_regs); } } @@ -2062,9 +2055,9 @@ static void save_globals(TCGContext *s, TCGRegSet all= ocated_regs) temporary registers needs to be allocated to store a constant. */ static void sync_globals(TCGContext *s, TCGRegSet allocated_regs) { - int i; + int i, n; =20 - for (i =3D 0; i < s->nb_globals; i++) { + for (i =3D 0, n =3D s->nb_globals; i < n; i++) { TCGTemp *ts =3D &s->temps[i]; tcg_debug_assert(ts->val_type !=3D TEMP_VAL_REG || ts->fixed_reg --=20 2.9.4