From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by sourceware.org (Postfix) with ESMTPS id 595543858D3C for ; Fri, 22 Dec 2023 10:56:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 595543858D3C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gnu.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gnu.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 595543858D3C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2001:470:142:3::10 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1703242579; cv=none; b=cEDUjgRp+jcYn8sG8PLllPYhx7GuhCxEFQPxGk5dTwXv8E0I/CyzP16WnMGC40YbfTpOnQx1cqsutEise88Gb48aLB7y02Q0impoBSsRo6TxHNyKSKz5d1suYZGan/9U0Iuee6KWIkg0J3WrRpC8VnO2BVxWGpqVDHzxBZ2EpXg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1703242579; c=relaxed/simple; bh=57yoP6eEassAFkTgtr9LGaySTscPWA0+iUe183Lm8Rs=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=tFFcCe5uOVJrNwWxvxWmSVKylOCYbqmQ7OhZlnTNFYcfy6VuewNQEaSqgMB+DN9rf7ppACUqvZEVjccKM+IVYSA8rQ2LSx/CjEVSTaOLj7TsfRDUKqoN54HqezG1B9eXIe7Ypf7VD1/k8LoN9vqJx3voAotlFqJDAXIh5lCU1to= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rGdCS-0000Qg-Fn; Fri, 22 Dec 2023 05:56:17 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=FAxH3M1IJO/MIjdCIwVjhz08rEHm8+xVlGO+MArMg9Q=; b=rKXLS8v7HA9U5ZnKDqiV +qf+ruXoYM/U11avmyjKBp8Whv0iixVSc+jS5ODydLDJtAc8YFFIGZlkbFaOXfv4Fm83ti2McoazG QF6ZWuFrudMYeccHlykCEcrCVP9NJmp1Jnbj8QTgHTsm6KRQdRnPouFb5G7wGNfRinQTpkvPsH9hy AEN94490Rq/ycLmWiefe3LQveJOkR1e2PYxIHGDhyswY1HxzvsS50b107ac4Cl5kFF4gZapW+D89w glbJzgQNj/+YnLZQKYbpQ5Ed1oATO3uOt6V0fIivVqLQocreOIWeehWxd8WdbNK3g+Z6YaDfC0f4w sFlyq8+m4mIG6Q==; From: "Jose E. Marchesi" To: Mike Frysinger via Cgen Cc: Mike Frysinger Subject: Re: [PATCH] sim: tighten up generated decode tables In-Reply-To: <20231222010028.17297-1-vapier@gentoo.org> (Mike Frysinger via Cgen's message of "Thu, 21 Dec 2023 20:00:28 -0500") References: <20231222010028.17297-1-vapier@gentoo.org> Date: Fri, 22 Dec 2023 11:55:56 +0100 Message-ID: <87sf3upkub.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-6.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: > The use of /* fall through */ with consective case statements doesn't > really add any value, and when generating large files, can take up a > lot of space. In the case of cris, it alone adds ~20k, or ~10%. I am a little concern this change may trigger implicit-fallthrough warnings when compiling the generated code. Not sure this is a problem in practice though, since nor binutils nor sim uses -Wimplicit-fallthrough for building as far as I can see. > Also trim the space before the : with case statements. > --- > utils-sim.scm | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/utils-sim.scm b/utils-sim.scm > index dca0f0705036..8011bb775933 100644 > --- a/utils-sim.scm > +++ b/utils-sim.scm > @@ -684,14 +684,14 @@ > (obj:name (dtable-entry-value (car rest))))) > (string-append indent " case " > (number->string (dtable-entry-index entry)) > - " : /* fall through */\n")) > + ":\n")) > > (else > (let ((consistent-base-insn? (and (equal? APPLICATION 'SID-SIMULATOR) > (> (state-base-insn-bitsize) > (insn-length insn))))) > (string-append indent " case " > - (number->string (dtable-entry-index entry)) " :" > + (number->string (dtable-entry-index entry)) ":" > ;; Compensate for base-insn-size > current-insn-size by > ;; adjusting entire_insn. > ;; Activate this logic only for sid simulators; they are > @@ -825,7 +825,7 @@ > (string-list > indent " case " > (number->string (dtable-entry-index entry)) > - " :\n" > + ":\n" > > (let ((iflds-tracking (/decode-expr-ifield-tracking expr-list)) > (indent (string-append indent " "))) > @@ -914,7 +914,7 @@ > (string-list > indent " case " > (number->string (dtable-entry-index table)) > - " :" > + ":" > ; If table is same as next, just emit a "fall through" to cut down on > ; generated code. > (if (and (not (null? rest)) > @@ -923,7 +923,7 @@ > ; Ensure same table. > (eqv? (subdtable-key (dtable-entry-value table)) > (subdtable-key (dtable-entry-value (car rest))))) > - " /* fall through */\n" > + "\n" > (string-list > "\n" > (/gen-decoder-switch switch-num > @@ -1075,7 +1075,7 @@ > result)))) > > ;; ??? Can delete if all cases are present. > - indent " default : " > + indent " default: " > (/gen-decode-default-entry invalid-insn fn?) "\n" > indent " }\n" > indent "}\n"