From patchwork Wed Apr 12 19:33:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luc Van Oostenryck X-Patchwork-Id: 9678283 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id C7F1E601C3 for ; Wed, 12 Apr 2017 19:34:03 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B70F528635 for ; Wed, 12 Apr 2017 19:34:03 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id ABBE428658; Wed, 12 Apr 2017 19:34:03 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 29EE828635 for ; Wed, 12 Apr 2017 19:34:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755113AbdDLTeC (ORCPT ); Wed, 12 Apr 2017 15:34:02 -0400 Received: from mail-wr0-f194.google.com ([209.85.128.194]:36684 "EHLO mail-wr0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755129AbdDLTeA (ORCPT ); Wed, 12 Apr 2017 15:34:00 -0400 Received: by mail-wr0-f194.google.com with SMTP id o21so5715046wrb.3 for ; Wed, 12 Apr 2017 12:33:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=SzjZ9xxGfCzhhdkAimMnvY+OmZSvtsyTVgFXxrE3eFY=; b=kTe8JoOnT/4ZrPysWBJcjrr+6HrgElWpOpJhcirLBAuA5yNS5fCJ9o82Xo3aNujFNG O/AKha8asyiCKyUFV96wXtBVQ0yj2ezFO95NuRGgq3Zg2xBj4Hfb2bbZAAIUcJTC8R8T XW5xOyJiLV78SXYRDke1AXKB19XBDX0GZRgUGTwQFqMG7M2g3zGfWmpXOgQgdWjHhv7H AVXRcDrz7r/EGD3HRKwsRD6zozsZQH5LVVB9uZxqmY294u80OhS3nVAe77FgFz1H+UnJ BVzQfXAKWBcaFuAMmO14bWj20KZGJBPzE4tEay9t5I9KosYYOoadqAkwC3Xu7RE+miwk 91fQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=SzjZ9xxGfCzhhdkAimMnvY+OmZSvtsyTVgFXxrE3eFY=; b=Rs/eKUdq4BK47xaVBQ3N3qrFWldztVHsRQTW72YQcHrxIUzY8qNZt35Z92S6ltFiXp l/c2+iUVjGsaWYRrfmNXC8y7w1JNDTjtC13jRP7FiGOkN9GkJ5msAN1cLouFX4FXVtc/ XpRZEDWZ+EuYzWsH5BT7gU5O2pUtMPVTCefnutM4nafhy6XaeVk4DShoz9ApLtxEvzUD 72+NMQVnsOgogad9XQXN5Lrhp4ATMJdK2fYSOxOqQy3tYJnt+EXxrGoTttR3Djz3sVWx uxqpwct3Ze1T3zzFL678p7XUJ2xRL8pXwqnIqoTlCWz+CeFggJRfuqBnc4iJfi59KjhV mYcA== X-Gm-Message-State: AN3rC/7Gg5uz10EnVJkhBzZCiFqk5GwKEnLuBJwRnyOrGtuM0acnCnhc6Jb5xv90fY7kmQ== X-Received: by 10.223.176.11 with SMTP id f11mr4253118wra.158.1492025637851; Wed, 12 Apr 2017 12:33:57 -0700 (PDT) Received: from localhost.localdomain ([2a02:a03f:8b2:dc00:6c54:829e:388a:2472]) by smtp.gmail.com with ESMTPSA id h20sm7733401wmd.29.2017.04.12.12.33.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 12 Apr 2017 12:33:57 -0700 (PDT) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Christopher Li , Luc Van Oostenryck Subject: [PATCH 6/6] remove OP_{AND,OR}_BOOL instructions Date: Wed, 12 Apr 2017 21:33:44 +0200 Message-Id: <20170412193344.95935-7-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20170412193344.95935-1-luc.vanoostenryck@gmail.com> References: <20170412193344.95935-1-luc.vanoostenryck@gmail.com> Sender: linux-sparse-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sparse@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Now that OP_AND_BOOL and OP_OR_BOOL are not generated anymore we can remove all related code & defines. Signed-off-by: Luc Van Oostenryck --- cse.c | 4 +--- example.c | 3 --- linearize.c | 2 -- linearize.h | 4 +--- simplify.c | 24 ------------------------ 5 files changed, 2 insertions(+), 35 deletions(-) diff --git a/cse.c b/cse.c index cd1e8942c..0ea9b3241 100644 --- a/cse.c +++ b/cse.c @@ -61,8 +61,7 @@ static void clean_up_one_instruction(struct basic_block *bb, struct instruction case OP_AND: case OP_OR: /* Binary logical */ - case OP_XOR: case OP_AND_BOOL: - case OP_OR_BOOL: + case OP_XOR: /* Binary comparison */ case OP_SET_EQ: case OP_SET_NE: @@ -192,7 +191,6 @@ static int insn_compare(const void *_i1, const void *_i2) /* commutative binop */ case OP_ADD: case OP_MULU: case OP_MULS: - case OP_AND_BOOL: case OP_OR_BOOL: case OP_AND: case OP_OR: case OP_XOR: case OP_SET_EQ: case OP_SET_NE: diff --git a/example.c b/example.c index 69e00b325..ca1077876 100644 --- a/example.c +++ b/example.c @@ -46,8 +46,6 @@ static const char *opcodes[] = { [OP_AND] = "and", [OP_OR] = "or", [OP_XOR] = "xor", - [OP_AND_BOOL] = "and-bool", - [OP_OR_BOOL] = "or-bool", /* Binary comparison */ [OP_SET_EQ] = "seteq", @@ -1406,7 +1404,6 @@ static void generate_one_insn(struct instruction *insn, struct bb_state *state) case OP_ADD: case OP_MULU: case OP_MULS: case OP_AND: case OP_OR: case OP_XOR: - case OP_AND_BOOL: case OP_OR_BOOL: generate_commutative_binop(state, insn); break; diff --git a/linearize.c b/linearize.c index e6b77ec01..8e8c99e4a 100644 --- a/linearize.c +++ b/linearize.c @@ -199,8 +199,6 @@ static const char *opcodes[] = { [OP_AND] = "and", [OP_OR] = "or", [OP_XOR] = "xor", - [OP_AND_BOOL] = "and-bool", - [OP_OR_BOOL] = "or-bool", /* Binary comparison */ [OP_SET_EQ] = "seteq", diff --git a/linearize.h b/linearize.h index 24cbcf94d..12a8fe3a7 100644 --- a/linearize.h +++ b/linearize.h @@ -175,9 +175,7 @@ enum opcode { OP_AND, OP_OR, OP_XOR, - OP_AND_BOOL, - OP_OR_BOOL, - OP_BINARY_END = OP_OR_BOOL, + OP_BINARY_END = OP_XOR, /* floating-point comparison */ OP_FPCMP, diff --git a/simplify.c b/simplify.c index 30bbc9b99..f730dc8ce 100644 --- a/simplify.c +++ b/simplify.c @@ -475,11 +475,6 @@ static int simplify_constant_rightside(struct instruction *insn) long long bits = sbit | (sbit - 1); switch (insn->opcode) { - case OP_OR_BOOL: - if (value == 1) - return replace_with_pseudo(insn, insn->src2); - goto case_neutral_zero; - case OP_OR: if ((value & bits) == bits) return replace_with_pseudo(insn, insn->src2); @@ -518,10 +513,6 @@ static int simplify_constant_rightside(struct instruction *insn) case OP_MULU: case OP_MULS: return simplify_mul_div(insn, value); - case OP_AND_BOOL: - if (value == 1) - return replace_with_pseudo(insn, insn->src1); - /* Fall through */ case OP_AND: if ((value & bits) == bits) return replace_with_pseudo(insn, insn->src1); @@ -631,13 +622,6 @@ static int simplify_constant_binop(struct instruction *insn) case OP_XOR: res = left ^ right; break; - case OP_AND_BOOL: - res = left && right; - break; - case OP_OR_BOOL: - res = left || right; - break; - /* Binary comparison */ case OP_SET_EQ: res = left == right; @@ -701,13 +685,6 @@ static int simplify_binop_same_args(struct instruction *insn, pseudo_t arg) case OP_OR: return replace_with_pseudo(insn, arg); - case OP_AND_BOOL: - case OP_OR_BOOL: - remove_usage(arg, &insn->src2); - insn->src2 = value_pseudo(0); - insn->opcode = OP_SET_NE; - return REPEAT_CSE; - default: break; } @@ -1190,7 +1167,6 @@ int simplify_instruction(struct instruction *insn) switch (insn->opcode) { case OP_ADD: case OP_MULS: case OP_AND: case OP_OR: case OP_XOR: - case OP_AND_BOOL: case OP_OR_BOOL: canonicalize_commutative(insn); if (simplify_binop(insn)) return REPEAT_CSE;