From patchwork Fri Jan 21 19:27:36 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Pop X-Patchwork-Id: 79899 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 B449DB711C for ; Sat, 22 Jan 2011 06:31:05 +1100 (EST) Received: (qmail 17564 invoked by alias); 21 Jan 2011 19:30:29 -0000 Received: (qmail 17319 invoked by uid 22791); 21 Jan 2011 19:30:24 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, TW_QP, TW_SV, T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-yw0-f47.google.com (HELO mail-yw0-f47.google.com) (209.85.213.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 21 Jan 2011 19:30:06 +0000 Received: by ywi6 with SMTP id 6so676506ywi.20 for ; Fri, 21 Jan 2011 11:30:04 -0800 (PST) Received: by 10.150.215.1 with SMTP id n1mr792933ybg.90.1295638204686; Fri, 21 Jan 2011 11:30:04 -0800 (PST) Received: from napoca (adsl-76-233-39-4.dsl.austtx.sbcglobal.net [76.233.39.4]) by mx.google.com with ESMTPS id x36sm11855310anx.34.2011.01.21.11.30.02 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 21 Jan 2011 11:30:03 -0800 (PST) Received: by napoca (sSMTP sendmail emulation); Fri, 21 Jan 2011 13:30:01 -0600 From: Sebastian Pop To: gcc-patches@gcc.gnu.org Cc: rguenther@suse.de Subject: [PATCH 17/28] Pass 0 as the number of parameters to PIP when testing for integer feasibility. Date: Fri, 21 Jan 2011 13:27:36 -0600 Message-Id: <1295638067-13460-18-git-send-email-sebpop@gmail.com> In-Reply-To: References: 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 From: spop 2011-01-17 Sebastian Pop * graphite-dependences.c (build_lexicographical_constraint): Remove the gdim parameter. (build_lexicographical_constraint): Adjust call to ppl_powerset_is_empty. (dependence_polyhedron): Same. (graphite_legal_transform_dr): Same. (graphite_carried_dependence_level_k): Same. * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params parameter. * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/graphite@168890 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 11 +++++++++++ gcc/ChangeLog.graphite | 11 +++++++++++ gcc/graphite-dependences.c | 19 ++++++++----------- gcc/graphite-ppl.c | 21 +++------------------ gcc/graphite-ppl.h | 2 +- 5 files changed, 34 insertions(+), 30 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fecd13f..2c22671 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,16 @@ 2011-01-21 Sebastian Pop + * graphite-dependences.c (build_lexicographical_constraint): Remove the + gdim parameter. + (build_lexicographical_constraint): Adjust call to ppl_powerset_is_empty. + (dependence_polyhedron): Same. + (graphite_legal_transform_dr): Same. + (graphite_carried_dependence_level_k): Same. + * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params parameter. + * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration. + +2011-01-21 Sebastian Pop + * graphite-sese-to-poly.c (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr. (close_phi_written_to_memory): New. diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index 3f6ef54..5a1ed00 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,3 +1,14 @@ +2011-01-17 Sebastian Pop + + * graphite-dependences.c (build_lexicographical_constraint): Remove the + gdim parameter. + (build_lexicographical_constraint): Adjust call to ppl_powerset_is_empty. + (dependence_polyhedron): Same. + (graphite_legal_transform_dr): Same. + (graphite_carried_dependence_level_k): Same. + * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params parameter. + * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration. + 2011-01-15 Sebastian Pop * graphite-sese-to-poly.c diff --git a/gcc/graphite-dependences.c b/gcc/graphite-dependences.c index 8184643..58549b7 100644 --- a/gcc/graphite-dependences.c +++ b/gcc/graphite-dependences.c @@ -360,14 +360,13 @@ build_pairwise_scheduling (graphite_dim_t dim, the BAG polyhedron: T1|I1|T2|I2|S1|S2|G. When DIRECTION is set to 1, compute the direct dependence from PDR1 to PDR2, and when DIRECTION is -1, compute the reversed dependence relation, from - PDR2 to PDR1. GDIM is the number of parameters in the scop. */ + PDR2 to PDR1. */ static ppl_Pointset_Powerset_C_Polyhedron_t build_lexicographical_constraint (ppl_Pointset_Powerset_C_Polyhedron_t bag, graphite_dim_t dim, graphite_dim_t tdim, graphite_dim_t offset, - graphite_dim_t gdim, int direction) { graphite_dim_t i; @@ -378,7 +377,7 @@ build_lexicographical_constraint (ppl_Pointset_Powerset_C_Polyhedron_t bag, lex = build_pairwise_scheduling (dim, 0, offset, direction); ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (lex, bag); - if (!ppl_powerset_is_empty (lex, gdim)) + if (!ppl_powerset_is_empty (lex)) ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign (res, lex); ppl_delete_Pointset_Powerset_C_Polyhedron (lex); @@ -391,13 +390,13 @@ build_lexicographical_constraint (ppl_Pointset_Powerset_C_Polyhedron_t bag, ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (bag, sceq); ppl_delete_Pointset_Powerset_C_Polyhedron (sceq); - if (ppl_powerset_is_empty (bag, gdim)) + if (ppl_powerset_is_empty (bag)) break; lex = build_pairwise_scheduling (dim, i + 1, offset, direction); ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (lex, bag); - if (!ppl_powerset_is_empty (lex, gdim)) + if (!ppl_powerset_is_empty (lex)) ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign (res, lex); ppl_delete_Pointset_Powerset_C_Polyhedron (lex); @@ -477,11 +476,11 @@ dependence_polyhedron (poly_dr_p pdr1, poly_dr_p pdr2, ppl_delete_Pointset_Powerset_C_Polyhedron (idr2); ppl_delete_Pointset_Powerset_C_Polyhedron (dreq); - if (ppl_powerset_is_empty (res, gdim)) + if (ppl_powerset_is_empty (res)) return NULL; lex = build_lexicographical_constraint (res, dim, MIN (tdim1, tdim2), - tdim1 + ddim1, gdim, direction); + tdim1 + ddim1, direction); ppl_delete_Pointset_Powerset_C_Polyhedron (res); return lex; @@ -671,8 +670,7 @@ graphite_legal_transform_dr (poly_dr_p pdr1, poly_dr_p pdr2) ppl_insert_dimensions_pointset (pt, otdim1 + ttdim1 + ddim1, otdim2); ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (po_temp, pt); - is_empty_p = ppl_powerset_is_empty (po_temp, - scop_nb_params (PBB_SCOP (pbb1))); + is_empty_p = ppl_powerset_is_empty (po_temp); ppl_delete_Pointset_Powerset_C_Polyhedron (po_temp); free_poly_ddr (tpddr); @@ -773,8 +771,7 @@ graphite_carried_dependence_level_k (poly_dr_p pdr1, poly_dr_p pdr2, eqpp = build_pairwise_scheduling (dim, level, tdim1 + ddim1, 1); ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (eqpp, po); - empty_p = ppl_powerset_is_empty - (eqpp, scop_nb_params (PBB_SCOP (PDR_PBB (pdr1)))); + empty_p = ppl_powerset_is_empty (eqpp); ppl_delete_Pointset_Powerset_C_Polyhedron (eqpp); free_poly_ddr (pddr); diff --git a/gcc/graphite-ppl.c b/gcc/graphite-ppl.c index 1a08362..9762ca4 100644 --- a/gcc/graphite-ppl.c +++ b/gcc/graphite-ppl.c @@ -516,35 +516,22 @@ debug_gmp_value (mpz_t val) } /* Checks for integer feasibility: returns true when the powerset - polyhedron PS has no integer solutions. NB_PARAMS is the number of - dimensions used as parameters in PS. If DIM is the dimension of - PS, the parameter dimensions are in between DIM - NB_PARAMS and - DIM. */ + polyhedron PS has no integer solutions. */ bool -ppl_powerset_is_empty (ppl_Pointset_Powerset_C_Polyhedron_t ps, - int nb_params ATTRIBUTE_UNUSED) +ppl_powerset_is_empty (ppl_Pointset_Powerset_C_Polyhedron_t ps) { ppl_PIP_Problem_t pip; ppl_dimension_type d; ppl_const_Constraint_System_t pcs; ppl_Constraint_System_const_iterator_t first, last; ppl_Pointset_Powerset_C_Polyhedron_iterator_t it, end; - int i; bool has_integer_solutions = false; - ppl_dimension_type *ds; - int dim_first_parameter; if (ppl_Pointset_Powerset_C_Polyhedron_is_empty (ps)) return true; ppl_Pointset_Powerset_C_Polyhedron_space_dimension (ps, &d); - dim_first_parameter = d - nb_params; - ds = (ppl_dimension_type *) XNEWVEC (ppl_dimension_type, nb_params); - - for (i = 0; i < nb_params; i++) - ds[i] = dim_first_parameter + i; - ppl_new_Constraint_System_const_iterator (&first); ppl_new_Constraint_System_const_iterator (&last); ppl_new_Pointset_Powerset_C_Polyhedron_iterator (&it); @@ -562,7 +549,7 @@ ppl_powerset_is_empty (ppl_Pointset_Powerset_C_Polyhedron_t ps, ppl_Constraint_System_begin (pcs, first); ppl_Constraint_System_end (pcs, last); - ppl_new_PIP_Problem_from_constraints (&pip, d, first, last, nb_params, ds); + ppl_new_PIP_Problem_from_constraints (&pip, d, first, last, 0, NULL); has_integer_solutions |= ppl_PIP_Problem_is_satisfiable (pip); ppl_delete_PIP_Problem (pip); @@ -572,8 +559,6 @@ ppl_powerset_is_empty (ppl_Pointset_Powerset_C_Polyhedron_t ps, ppl_delete_Constraint_System_const_iterator (last); ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (it); ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (end); - if (ds) - free (ds); return !has_integer_solutions; } diff --git a/gcc/graphite-ppl.h b/gcc/graphite-ppl.h index f6c3ad3..695d01f 100644 --- a/gcc/graphite-ppl.h +++ b/gcc/graphite-ppl.h @@ -47,7 +47,7 @@ void ppl_min_for_le_pointset (ppl_Pointset_Powerset_C_Polyhedron_t, ppl_Constraint_t ppl_build_relation (int, int, int, int, enum ppl_enum_Constraint_Type); void debug_gmp_value (mpz_t); -bool ppl_powerset_is_empty (ppl_Pointset_Powerset_C_Polyhedron_t, int); +bool ppl_powerset_is_empty (ppl_Pointset_Powerset_C_Polyhedron_t); /* Assigns to RES the value of the INTEGER_CST T. */