From patchwork Thu Jul 28 14:44:45 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Sebastian Pop X-Patchwork-Id: 107386 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]) by ozlabs.org (Postfix) with SMTP id 527A4B6F6B for ; Fri, 29 Jul 2011 22:37:27 +1000 (EST) Received: (qmail 7011 invoked by alias); 29 Jul 2011 12:37:24 -0000 Received: (qmail 6905 invoked by uid 22791); 29 Jul 2011 12:37:23 -0000 X-SWARE-Spam-Status: No, hits=-2.2 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, TW_TM X-Spam-Check-By: sourceware.org Received: from mail-qw0-f47.google.com (HELO mail-qw0-f47.google.com) (209.85.216.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 29 Jul 2011 12:37:08 +0000 Received: by qwh5 with SMTP id 5so2097306qwh.20 for ; Fri, 29 Jul 2011 05:37:07 -0700 (PDT) Received: by 10.229.193.7 with SMTP id ds7mr51460qcb.279.1311864325090; Thu, 28 Jul 2011 07:45:25 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.187.79 with HTTP; Thu, 28 Jul 2011 07:44:45 -0700 (PDT) In-Reply-To: References: <1311792579-26332-1-git-send-email-sebpop@gmail.com> From: Sebastian Pop Date: Thu, 28 Jul 2011 09:44:45 -0500 Message-ID: Subject: Re: [PATCH] Fix PR49876: Continue code generation with integer_zero_node on gloog_error To: Richard Guenther Cc: gcc-patches@gcc.gnu.org, rguenther@suse.de X-IsSubscribed: yes 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 On Thu, Jul 28, 2011 at 02:58, Richard Guenther wrote: > On Wed, Jul 27, 2011 at 8:49 PM, Sebastian Pop wrote: >> When setting gloog_error, graphite should continue code generation >> without early returns, as otherwise the SSA representation would not >> be complete.  So set the new expression to integer_zero_node, that >> would not require more SSA updates, and continue code generation as >> nothing happened. > > I suppose you have to watch for correct types?  Or does the code get > discarded again before it eventually reaches the verifier?  Ok in that case. Attached is the amended patch using build_int_cst. Thanks for pointing this type problem. Regstrapping again. Sebastian From 1ce1367e3a0439b374025104eb2e7558c9b957fc Mon Sep 17 00:00:00 2001 From: Sebastian Pop Date: Wed, 27 Jul 2011 13:42:29 -0500 Subject: [PATCH] Fix PR49876: Continue code generation with integer_zero_node on gloog_error When setting gloog_error, graphite should continue code generation without early returns, as otherwise the SSA representation would not be complete. So set the new expression to integer_zero_node, that would not require more SSA updates, and continue code generation as nothing happened. Regstrapping on amd64-linux. 2011-07-27 Sebastian Pop PR tree-optimization/49876 * sese.c (rename_uses): Do not return false on gloog_error: set the new_expr to integer_zero_node and continue code generation. (graphite_copy_stmts_from_block): Remove early exit on gloog_error. --- gcc/ChangeLog | 7 +++++++ gcc/sese.c | 18 ++++++++---------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b07d494..a565c18 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2011-07-27 Sebastian Pop + PR tree-optimization/49876 + * sese.c (rename_uses): Do not return false on gloog_error: set + the new_expr to integer_zero_node and continue code generation. + (graphite_copy_stmts_from_block): Remove early exit on gloog_error. + +2011-07-27 Sebastian Pop + PR tree-optimization/49471 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned iv only when the largest type is unsigned. Do not call diff --git a/gcc/sese.c b/gcc/sese.c index ec96dfb..cd92527 100644 --- a/gcc/sese.c +++ b/gcc/sese.c @@ -527,10 +527,10 @@ rename_uses (gimple copy, htab_t rename_map, gimple_stmt_iterator *gsi_tgt, if (chrec_contains_undetermined (scev)) { *gloog_error = true; - return false; + new_expr = build_int_cst (TREE_TYPE (old_name), 0); } - - new_expr = chrec_apply_map (scev, iv_map); + else + new_expr = chrec_apply_map (scev, iv_map); /* The apply should produce an expression tree containing the uses of the new induction variables. We should be @@ -540,12 +540,13 @@ rename_uses (gimple copy, htab_t rename_map, gimple_stmt_iterator *gsi_tgt, || tree_contains_chrecs (new_expr, NULL)) { *gloog_error = true; - return false; + new_expr = build_int_cst (TREE_TYPE (old_name), 0); } + else + /* Replace the old_name with the new_expr. */ + new_expr = force_gimple_operand (unshare_expr (new_expr), &stmts, + true, NULL_TREE); - /* Replace the old_name with the new_expr. */ - new_expr = force_gimple_operand (unshare_expr (new_expr), &stmts, - true, NULL_TREE); gsi_insert_seq_before (gsi_tgt, stmts, GSI_SAME_STMT); replace_exp (use_p, new_expr); @@ -621,9 +622,6 @@ graphite_copy_stmts_from_block (basic_block bb, basic_block new_bb, gloog_error)) fold_stmt_inplace (copy); - if (*gloog_error) - break; - update_stmt (copy); } } -- 1.7.4.1