diff options
author | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-09-30 21:18:09 +0000 |
---|---|---|
committer | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-09-30 21:18:09 +0000 |
commit | e313585005607d7ad7202f9d5b639ec86c968f1f (patch) | |
tree | 6f9f9a1bc759a501b652720c541fa2bed5b5400c /gcc/graphite-scop-detection.c | |
parent | a4a4b66a929c3d836b0e7b6dbb0a6eb69767d0c5 (diff) | |
download | gcc-e313585005607d7ad7202f9d5b639ec86c968f1f.tar.gz |
Remove outermost loop parameter.
2010-08-18 Vladimir Kargov <kargov@gmail.com>
* graphite-scop-detection.c (graphite_can_represent_scev,
graphite_can_represent_expr, stmt_has_simple_data_refs_p,
graphite_can_represent_loop): Remove outermost_loop.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164786 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/graphite-scop-detection.c')
-rw-r--r-- | gcc/graphite-scop-detection.c | 38 |
1 files changed, 16 insertions, 22 deletions
diff --git a/gcc/graphite-scop-detection.c b/gcc/graphite-scop-detection.c index ce941db4a64..5647d2e0b39 100644 --- a/gcc/graphite-scop-detection.c +++ b/gcc/graphite-scop-detection.c @@ -202,12 +202,10 @@ graphite_can_represent_init (tree e) 1 i + 20 j + (-2) m + 25 - Something like "i * n" or "n * m" is not allowed. - - OUTERMOST_LOOP defines the outermost loop that can variate. */ + Something like "i * n" or "n * m" is not allowed. */ static bool -graphite_can_represent_scev (tree scev, int outermost_loop) +graphite_can_represent_scev (tree scev) { if (chrec_contains_undetermined (scev)) return false; @@ -216,8 +214,8 @@ graphite_can_represent_scev (tree scev, int outermost_loop) { case PLUS_EXPR: case MINUS_EXPR: - return graphite_can_represent_scev (TREE_OPERAND (scev, 0), outermost_loop) - && graphite_can_represent_scev (TREE_OPERAND (scev, 1), outermost_loop); + return graphite_can_represent_scev (TREE_OPERAND (scev, 0)) + && graphite_can_represent_scev (TREE_OPERAND (scev, 1)); case MULT_EXPR: return !CONVERT_EXPR_CODE_P (TREE_CODE (TREE_OPERAND (scev, 0))) @@ -225,8 +223,8 @@ graphite_can_represent_scev (tree scev, int outermost_loop) && !(chrec_contains_symbols (TREE_OPERAND (scev, 0)) && chrec_contains_symbols (TREE_OPERAND (scev, 1))) && graphite_can_represent_init (scev) - && graphite_can_represent_scev (TREE_OPERAND (scev, 0), outermost_loop) - && graphite_can_represent_scev (TREE_OPERAND (scev, 1), outermost_loop); + && graphite_can_represent_scev (TREE_OPERAND (scev, 0)) + && graphite_can_represent_scev (TREE_OPERAND (scev, 1)); case POLYNOMIAL_CHREC: /* Check for constant strides. With a non constant stride of @@ -253,19 +251,18 @@ graphite_can_represent_scev (tree scev, int outermost_loop) This means an expression can be represented, if it is linear with respect to the loops and the strides are non parametric. - LOOP is the place where the expr will be evaluated and OUTERMOST_LOOP - defindes the outermost loop that can variate. SCOP_ENTRY defines the + LOOP is the place where the expr will be evaluated. SCOP_ENTRY defines the entry of the region we analyse. */ static bool graphite_can_represent_expr (basic_block scop_entry, loop_p loop, - loop_p outermost_loop, tree expr) + tree expr) { tree scev = analyze_scalar_evolution (loop, expr); scev = instantiate_scev (scop_entry, loop, scev); - return graphite_can_represent_scev (scev, outermost_loop->num); + return graphite_can_represent_scev (scev); } /* Return true if the data references of STMT can be represented by @@ -278,14 +275,13 @@ stmt_has_simple_data_refs_p (loop_p outermost_loop, gimple stmt) unsigned i; int j; bool res = true; - int loop = outermost_loop->num; VEC (data_reference_p, heap) *drs = VEC_alloc (data_reference_p, heap, 5); graphite_find_data_references_in_stmt (outermost_loop, stmt, &drs); FOR_EACH_VEC_ELT (data_reference_p, drs, j, dr) for (i = 0; i < DR_NUM_DIMENSIONS (dr); i++) - if (!graphite_can_represent_scev (DR_ACCESS_FN (dr, i), loop)) + if (!graphite_can_represent_scev (DR_ACCESS_FN (dr, i))) { res = false; goto done; @@ -349,8 +345,7 @@ stmt_simple_for_scop_p (basic_block scop_entry, loop_p outermost_loop, return false; FOR_EACH_SSA_TREE_OPERAND (op, stmt, op_iter, SSA_OP_ALL_USES) - if (!graphite_can_represent_expr (scop_entry, loop, outermost_loop, - op) + if (!graphite_can_represent_expr (scop_entry, loop, op) /* We can not handle REAL_TYPE. Failed for pr39260. */ || TREE_CODE (TREE_TYPE (op)) == REAL_TYPE) return false; @@ -389,12 +384,11 @@ harmful_stmt_in_bb (basic_block scop_entry, loop_p outer_loop, basic_block bb) } /* Return true when it is not possible to represent LOOP in the - polyhedral representation. This is evaluated taking SCOP_ENTRY and - OUTERMOST_LOOP in mind. */ + polyhedral representation. This is evaluated taking SCOP_ENTRY + in mind. */ static bool -graphite_can_represent_loop (basic_block scop_entry, loop_p outermost_loop, - loop_p loop) +graphite_can_represent_loop (basic_block scop_entry, loop_p loop) { tree niter = number_of_latch_executions (loop); @@ -403,7 +397,7 @@ graphite_can_represent_loop (basic_block scop_entry, loop_p outermost_loop, return false; /* Number of iterations not affine. */ - if (!graphite_can_represent_expr (scop_entry, loop, outermost_loop, niter)) + if (!graphite_can_represent_expr (scop_entry, loop, niter)) return false; return true; @@ -476,7 +470,7 @@ scopdet_basic_block_info (basic_block bb, loop_p outermost_loop, sinfo = build_scops_1 (bb, outermost_loop, ®ions, loop); - if (!graphite_can_represent_loop (entry_block, outermost_loop, loop)) + if (!graphite_can_represent_loop (entry_block, loop)) result.difficult = true; result.difficult |= sinfo.difficult; |