From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 127987 invoked by alias); 15 Jan 2016 19:56:05 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 127976 invoked by uid 89); 15 Jan 2016 19:56:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=blind, 3859, isl_ast_expr, 385,9 X-HELO: mail-ob0-f173.google.com Received: from mail-ob0-f173.google.com (HELO mail-ob0-f173.google.com) (209.85.214.173) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Fri, 15 Jan 2016 19:56:03 +0000 Received: by mail-ob0-f173.google.com with SMTP id vt7so119005722obb.1 for ; Fri, 15 Jan 2016 11:56:03 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=IImg4Q35BU09spv2mY934ftIO5350iyzD2df2pt4Qoc=; b=YC0OHmPADje9o5h5yz4U4lAhsk4Q6kbYZG01WIbUXYlR6nWTQ2S/hp/V1lnv0Aoz46 adgAQfG2jniaPETtdWNzSIPGrNCf3dpwWCoRl4ExpGTLEuMbtCqHP8yJwRdz9BQVtKM0 x2SLIsXsCExEiXYGG6YIbXkrdTQU9QhY22aKAkUptvNt5XzGli3+ocNAFBqJzvIDxhBz m/ED1aIqrbFnksVXTNnwfGZeFAS8IfkHgeZ+gf/QMCGfhzNlWU6bpX+qiEtCzowHPDcD EJfeQSSQZMtv5ZWCGwUXfJ3pTj/YrAWraBAFooRQOEou/1YOoCRExuNKvOd7WoqWzFgd ezwA== X-Gm-Message-State: ALoCoQl9jQtXgI+EngJoDF9AQEjsah5WIcgY+wclvPlMehi7Uwu6+42TSLmSTqWOHs57tKe/nkV24H6rqgrRcrZT44FAF9u1Lw== X-Received: by 10.182.24.197 with SMTP id w5mr9715319obf.31.1452887761511; Fri, 15 Jan 2016 11:56:01 -0800 (PST) Received: from bo.sarc.sas (65-36-6-125.static.grandenetworks.net. [65.36.6.125]) by smtp.gmail.com with ESMTPSA id s200sm6934408oie.2.2016.01.15.11.56.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 15 Jan 2016 11:56:00 -0800 (PST) From: Sebastian Pop X-Google-Original-From: Sebastian Pop To: gcc-patches@gcc.gnu.org Cc: hiraditya@msn.com, sebpop@gmail.com, richard.guenther@gmail.com, tom_devries@mentor.com Subject: [PATCH] [graphite] fix PR68976: only add loop close phi for names defined in loop Date: Fri, 15 Jan 2016 19:56:00 -0000 Message-Id: <1452887758-31036-1-git-send-email-sebpop@gmail.com> X-SW-Source: 2016-01/txt/msg01139.txt.bz2 * graphite-isl-ast-to-gimple.c: Fix comment. * graphite-scop-detection.c (defined_in_loop_p): New. (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA names defined in loop. gcc/testsuite * gcc.dg/graphite/pr68976.c: New test. --- gcc/graphite-isl-ast-to-gimple.c | 4 ++-- gcc/graphite-scop-detection.c | 13 ++++++++++++- gcc/testsuite/gcc.dg/graphite/pr68976.c | 11 +++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/graphite/pr68976.c diff --git a/gcc/graphite-isl-ast-to-gimple.c b/gcc/graphite-isl-ast-to-gimple.c index df52c49..9509af4 100644 --- a/gcc/graphite-isl-ast-to-gimple.c +++ b/gcc/graphite-isl-ast-to-gimple.c @@ -492,8 +492,8 @@ private: /* Return the tree variable that corresponds to the given isl ast identifier expression (an isl_ast_expr of type isl_ast_expr_id). - FIXME: We should replace blind conversation of id's type with derivation - of the optimal type when we get the corresponding isl support. Blindly + FIXME: We should replace blind conversion of id's type with derivation + of the optimal type when we get the corresponding isl support. Blindly converting type sizes may be problematic when we switch to smaller types. */ diff --git a/gcc/graphite-scop-detection.c b/gcc/graphite-scop-detection.c index 8dfb20a..6ddf7bb 100644 --- a/gcc/graphite-scop-detection.c +++ b/gcc/graphite-scop-detection.c @@ -336,6 +336,15 @@ make_close_phi_nodes_unique (basic_block bb) } } +/* Return true when NAME is defined in LOOP. */ + +static bool +defined_in_loop_p (tree name, loop_p loop) +{ + gcc_assert (TREE_CODE (name) == SSA_NAME); + return loop == loop_containing_stmt (SSA_NAME_DEF_STMT (name)); +} + /* Transforms LOOP to the canonical loop closed SSA form. */ static void @@ -376,7 +385,9 @@ canonicalize_loop_closed_ssa (loop_p loop) use_operand_p use_p; gphi *close_phi; - if (TREE_CODE (arg) != SSA_NAME) + /* Only add close phi nodes for SSA_NAMEs defined in LOOP. */ + if (TREE_CODE (arg) != SSA_NAME + || !defined_in_loop_p (arg, loop)) continue; close_phi = create_phi_node (NULL_TREE, close); diff --git a/gcc/testsuite/gcc.dg/graphite/pr68976.c b/gcc/testsuite/gcc.dg/graphite/pr68976.c new file mode 100644 index 0000000..ae9bf0f --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/pr68976.c @@ -0,0 +1,11 @@ +/* { dg-options "-O2 -floop-nest-optimize" } */ + +int kw = -1, hv = -1, ju; +int mc[1]; +void xx(void) +{ + for (; kw; ++kw) + for (; hv; ++hv) + for (ju = 0; ju < 2; ++ju) + mc[kw+1] = mc[0]; +} -- 2.5.0