From patchwork Tue Nov 8 02:32:36 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kugan Vivekanandarajah X-Patchwork-Id: 692132 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3tCYW02c9Zz9tkk for ; Tue, 8 Nov 2016 13:42:18 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="pnNQ348j"; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:message-id:date:mime-version:content-type; q=dns; s= default; b=EKfTNVNHrkpt139ITZtT6vFWOTz3FuH4RtaD+O87lD6RZhaqYtTO8 XRB7eSufeHBI3BZ4xcqfojb3YNYiNq9DWxGiPkTqZSvPBxf4ZkHew047nCGUjI50 D94T2IAAt+9kRhZVu3JvJg892yRQZXOZj1DdIT6HzL0Q0Z0vEwoiik= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:message-id:date:mime-version:content-type; s= default; bh=Z5dyJH8wv++xvu4ZsldibBdth5Y=; b=pnNQ348j2qzHcehC7Kz6 vxnfZ/IY1aWre6i9a+tk7Xmz12qPgCh0QW1mr+JSPLluU/W7OY7C4lM2SQH+xX98 zx5aDY+qk++AJdCOYgZ3DVhkuUQfp4CLm8F/zfF5e5zFMFUWHMbq3Mva31NCOOyD yQRK24mkSeg2cOvpmVYabMk= Received: (qmail 96841 invoked by alias); 8 Nov 2016 02:42:06 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 96733 invoked by uid 89); 8 Nov 2016 02:41:53 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.5 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 spammy=2016-11-08, Normal, H*r:10.1.1, LIVE X-HELO: mail-pf0-f175.google.com Received: from mail-pf0-f175.google.com (HELO mail-pf0-f175.google.com) (209.85.192.175) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 08 Nov 2016 02:41:43 +0000 Received: by mail-pf0-f175.google.com with SMTP id d2so99612861pfd.0 for ; Mon, 07 Nov 2016 18:41:41 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:message-id:date:user-agent :mime-version; bh=Zna4i9TVGfflbH3g9FRc2pUso97FrnnHM5npApWhJCs=; b=hG5wIHUekYe6bkDFqoomVDrCqo4Cp2YT1I6LaRKonR5B9p5YMJYZ2V++3wC/qbHHhv N/ZXnVx56hdZ8ZLbYf1Ut1/KQHyAXo2R+yBCTgxdHaokeEvFP1FUND93r/mPbXlmXwC7 59LF6L+HsR/v6ld9clz7YiTr6t3EP3zpzYlM3rWl/l2yXyuwkQqhxZBQ9OJFcmXj/fRQ psiT/df8bzdc/OPFk4vrXgpjlTUx1ErbPO7Zo/PyAsFGIDonGnBNCyXMaljDIEzcHwqC umSXrU6csawbCTRgs4jPQoGcOolJ6M817oOX19TK3iCORHco9thLzpYtdMH1iIxI1I1+ 6M5A== X-Gm-Message-State: ABUngvdAy6LWCg6GP8DlP4ocBkoFea5ldh0iw8CQAuJgbMI3PwoXm4jYpwkZMWvo12uKHDF6 X-Received: by 10.98.163.71 with SMTP id s68mr18959527pfe.60.1478572360089; Mon, 07 Nov 2016 18:32:40 -0800 (PST) Received: from [10.1.1.7] (58-6-183-210.dyn.iinet.net.au. [58.6.183.210]) by smtp.gmail.com with ESMTPSA id z189sm43576316pfb.2.2016.11.07.18.32.38 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 07 Nov 2016 18:32:39 -0800 (PST) From: kugan To: "gcc-patches@gcc.gnu.org" Subject: [ssa-coalesce] Rename register_ssa_partition Message-ID: Date: Tue, 8 Nov 2016 13:32:36 +1100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 X-IsSubscribed: yes Hi, In tree-ssa-coalesce, register_ssa_partition ) and register_ssa_partition_check have lost their meaning over various commits and now just verifies that ssa_var is indeed a SSA_NAME and not a virtual_operand_p. It is confusing when one look at if for the fist time and would expect more while reading the register_ssa_partition. Attached patch just changes it to verify_ssa_for_coalesce to better reflect what it is doing now. Bootstrap and regression testing is ongoing. Is this OK for trunk if no regressions? Thanks, Kugan gcc/ChangeLog: 2016-11-08 Kugan Vivekanandarajah * tree-ssa-coalesce.c (register_default_def): Remove usage of arg map which is not used at all. (create_outofssa_var_map): Use renamed verify_ssa_for_coalesce from register_ssa_partition. * tree-ssa-live.c (verify_ssa_for_coalesce): Renamed register_ssa_partition. (register_ssa_partition_check): Remove. * tree-ssa-live.h (register_ssa_partition): Renamed to verify_ssa_for_coalesce diff --git a/gcc/tree-ssa-coalesce.c b/gcc/tree-ssa-coalesce.c index 6423cdd..8adbd62 100644 --- a/gcc/tree-ssa-coalesce.c +++ b/gcc/tree-ssa-coalesce.c @@ -1040,17 +1040,15 @@ create_default_def (tree var, void *arg ATTRIBUTE_UNUSED) /* Register VAR's default def in MAP. */ static void -register_default_def (tree var, void *map_) +register_default_def (tree var, void *arg ATTRIBUTE_UNUSED) { - var_map map = (var_map)map_; - if (!is_gimple_reg (var)) return; tree ssa = ssa_default_def (cfun, var); gcc_assert (ssa); - register_ssa_partition (map, ssa); + verify_ssa_for_coalesce (ssa); } /* If VAR is an SSA_NAME associated with a PARM_DECL or a RESULT_DECL, @@ -1096,7 +1094,7 @@ create_outofssa_var_map (coalesce_list *cl, bitmap used_in_copy) map = init_var_map (num_ssa_names); - for_all_parms (register_default_def, map); + for_all_parms (register_default_def, NULL); FOR_EACH_BB_FN (bb, cfun) { @@ -1114,7 +1112,7 @@ create_outofssa_var_map (coalesce_list *cl, bitmap used_in_copy) res = gimple_phi_result (phi); ver = SSA_NAME_VERSION (res); - register_ssa_partition (map, res); + verify_ssa_for_coalesce (res); /* Register ssa_names and coalesces between the args and the result of all PHI. */ @@ -1125,7 +1123,7 @@ create_outofssa_var_map (coalesce_list *cl, bitmap used_in_copy) if (TREE_CODE (arg) != SSA_NAME) continue; - register_ssa_partition (map, arg); + verify_ssa_for_coalesce (arg); if (gimple_can_coalesce_p (arg, res) || (e->flags & EDGE_ABNORMAL)) { @@ -1154,7 +1152,7 @@ create_outofssa_var_map (coalesce_list *cl, bitmap used_in_copy) /* Register USE and DEF operands in each statement. */ FOR_EACH_SSA_TREE_OPERAND (var, stmt, iter, (SSA_OP_DEF|SSA_OP_USE)) - register_ssa_partition (map, var); + verify_ssa_for_coalesce (var); /* Check for copy coalesces. */ switch (gimple_code (stmt)) diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c index b9eef20..1fadf86 100644 --- a/gcc/tree-ssa-live.c +++ b/gcc/tree-ssa-live.c @@ -102,6 +102,26 @@ delete_var_map (var_map map) } +/* Verify that SSA_VAR is a non-virtual SSA_NAME when + flag_checking is enabled. */ + +void +verify_ssa_for_coalesce (tree ssa_var) +{ + if (flag_checking) + { + gcc_assert (TREE_CODE (ssa_var) == SSA_NAME); + if (virtual_operand_p (ssa_var)) + { + fprintf (stderr, "Illegally registering a virtual SSA name :"); + print_generic_expr (stderr, ssa_var, TDF_SLIM); + fprintf (stderr, " in the SSA->Normal phase.\n"); + internal_error ("SSA corruption"); + } + } +} + + /* This function will combine the partitions in MAP for VAR1 and VAR2. It Returns the partition which represents the new partition. If the two partitions cannot be combined, NO_PARTITION is returned. */ @@ -1276,22 +1296,6 @@ debug (tree_live_info_d *ptr) } -/* Verify that SSA_VAR is a non-virtual SSA_NAME. */ - -void -register_ssa_partition_check (tree ssa_var) -{ - gcc_assert (TREE_CODE (ssa_var) == SSA_NAME); - if (virtual_operand_p (ssa_var)) - { - fprintf (stderr, "Illegally registering a virtual SSA name :"); - print_generic_expr (stderr, ssa_var, TDF_SLIM); - fprintf (stderr, " in the SSA->Normal phase.\n"); - internal_error ("SSA corruption"); - } -} - - /* Verify that the info in LIVE matches the current cfg. */ static void diff --git a/gcc/tree-ssa-live.h b/gcc/tree-ssa-live.h index 6df102a..6fc0895 100644 --- a/gcc/tree-ssa-live.h +++ b/gcc/tree-ssa-live.h @@ -80,7 +80,7 @@ extern void remove_unused_locals (void); extern void dump_var_map (FILE *, var_map); extern void debug (_var_map &ref); extern void debug (_var_map *ptr); -extern void register_ssa_partition_check (tree ssa_var); +extern void verify_ssa_for_coalesce (tree ssa_var); /* Return number of partitions in MAP. */ @@ -175,17 +175,6 @@ num_basevars (var_map map) -/* This routine registers a partition for SSA_VAR with MAP. Any unregistered - partitions may be filtered out by a view later. */ - -static inline void -register_ssa_partition (var_map map ATTRIBUTE_UNUSED, tree ssa_var) -{ - if (flag_checking) - register_ssa_partition_check (ssa_var); -} - - /* ---------------- live on entry/exit info ------------------------------ This structure is used to represent live range information on SSA based