[390c3ab] | 1 | Submitted By: William Harrington (kb0iic at cross-lfs dot org)
|
---|
| 2 | Date: 05-31-2014
|
---|
| 3 | Initial Package Version: 4.8.3
|
---|
| 4 | Origin: Upstream
|
---|
| 5 | Upstream Status: Not applied
|
---|
| 6 | Description: Do not depend on 2D + 1 form in parallelism check.
|
---|
| 7 | http://gcc.gnu.org/ml/gcc-patches/2013-07/msg00524.html
|
---|
| 8 |
|
---|
| 9 | Includes PR tree-optimization/54094
|
---|
| 10 |
|
---|
| 11 | diff -Naur gcc-4.8.3.orig/gcc/ChangeLog gcc-4.8.3/gcc/ChangeLog
|
---|
| 12 | --- gcc-4.8.3.orig/gcc/ChangeLog 2014-05-22 09:09:59.000000000 +0000
|
---|
| 13 | +++ gcc-4.8.3/gcc/ChangeLog 2014-06-01 05:18:00.010857918 +0000
|
---|
| 14 | @@ -729,6 +729,15 @@
|
---|
| 15 | * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
|
---|
| 16 | * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
|
---|
| 17 |
|
---|
| 18 | + 2013-07-13 Tobias Grosser <tobias@grosser.es>
|
---|
| 19 | +
|
---|
| 20 | + PR tree-optimization/54094
|
---|
| 21 | + * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
|
---|
| 22 | + scheduling dimension for the parallelism check from the polyhedral
|
---|
| 23 | + information in the AST.
|
---|
| 24 | + * graphite-dependences.c (carries_deps): Do not assume the schedule is
|
---|
| 25 | + in 2D + 1 form.
|
---|
| 26 | +
|
---|
| 27 | 2013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
|
---|
| 28 |
|
---|
| 29 | * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
|
---|
| 30 | diff -Naur gcc-4.8.3.orig/gcc/graphite-clast-to-gimple.c gcc-4.8.3/gcc/graphite-clast-to-gimple.c
|
---|
| 31 | --- gcc-4.8.3.orig/gcc/graphite-clast-to-gimple.c 2013-01-10 20:38:27.000000000 +0000
|
---|
| 32 | +++ gcc-4.8.3/gcc/graphite-clast-to-gimple.c 2014-06-01 05:16:25.485054767 +0000
|
---|
| 33 | @@ -1170,8 +1170,11 @@
|
---|
| 34 | redirect_edge_succ_nodup (next_e, after);
|
---|
| 35 | set_immediate_dominator (CDI_DOMINATORS, next_e->dest, next_e->src);
|
---|
| 36 |
|
---|
| 37 | + isl_set *domain = isl_set_from_cloog_domain (stmt->domain);
|
---|
| 38 | + int scheduling_dim = isl_set_n_dim (domain);
|
---|
| 39 | +
|
---|
| 40 | if (flag_loop_parallelize_all
|
---|
| 41 | - && loop_is_parallel_p (loop, bb_pbb_mapping, level))
|
---|
| 42 | + && loop_is_parallel_p (loop, bb_pbb_mapping, scheduling_dim))
|
---|
| 43 | loop->can_be_parallel = true;
|
---|
| 44 |
|
---|
| 45 | return last_e;
|
---|
| 46 | diff -Naur gcc-4.8.3.orig/gcc/graphite-dependences.c gcc-4.8.3/gcc/graphite-dependences.c
|
---|
| 47 | --- gcc-4.8.3.orig/gcc/graphite-dependences.c 2013-01-10 20:38:27.000000000 +0000
|
---|
| 48 | +++ gcc-4.8.3/gcc/graphite-dependences.c 2014-06-01 05:16:25.485054767 +0000
|
---|
| 49 | @@ -297,7 +297,7 @@
|
---|
| 50 | int depth)
|
---|
| 51 | {
|
---|
| 52 | bool res;
|
---|
| 53 | - int idx, i;
|
---|
| 54 | + int i;
|
---|
| 55 | isl_space *space;
|
---|
| 56 | isl_map *lex, *x;
|
---|
| 57 | isl_constraint *ineq;
|
---|
| 58 | @@ -312,13 +312,12 @@
|
---|
| 59 | space = isl_map_get_space (x);
|
---|
| 60 | ineq = isl_inequality_alloc (isl_local_space_from_space (space));
|
---|
| 61 |
|
---|
| 62 | - idx = 2 * depth + 1;
|
---|
| 63 | - for (i = 0; i < idx; i++)
|
---|
| 64 | + for (i = 0; i < depth - 1; i++)
|
---|
| 65 | lex = isl_map_equate (lex, isl_dim_in, i, isl_dim_out, i);
|
---|
| 66 |
|
---|
| 67 | /* in + 1 <= out */
|
---|
| 68 | - ineq = isl_constraint_set_coefficient_si (ineq, isl_dim_out, idx, 1);
|
---|
| 69 | - ineq = isl_constraint_set_coefficient_si (ineq, isl_dim_in, idx, -1);
|
---|
| 70 | + ineq = isl_constraint_set_coefficient_si (ineq, isl_dim_out, depth - 1, 1);
|
---|
| 71 | + ineq = isl_constraint_set_coefficient_si (ineq, isl_dim_in, depth - 1, -1);
|
---|
| 72 | ineq = isl_constraint_set_constant_si (ineq, -1);
|
---|
| 73 | lex = isl_map_add_constraint (lex, ineq);
|
---|
| 74 | x = isl_map_intersect (x, lex);
|
---|
| 75 | diff -Naur gcc-4.8.3.orig/gcc/testsuite/gcc.dg/graphite/pr54094.c gcc-4.8.3/gcc/testsuite/gcc.dg/graphite/pr54094.c
|
---|
| 76 | --- gcc-4.8.3.orig/gcc/testsuite/gcc.dg/graphite/pr54094.c 1970-01-01 00:00:00.000000000 +0000
|
---|
| 77 | +++ gcc-4.8.3/gcc/testsuite/gcc.dg/graphite/pr54094.c 2014-06-01 05:16:25.485054767 +0000
|
---|
| 78 | @@ -0,0 +1,10 @@
|
---|
| 79 | +/* { dg-options "-O2 -floop-parallelize-all -floop-nest-optimize" } */
|
---|
| 80 | +void dwt_deinterleave_h(int *a, int *b, int dn, int sn, int cas)
|
---|
| 81 | +{
|
---|
| 82 | + int i;
|
---|
| 83 | + for (i=0; i<sn; i++)
|
---|
| 84 | + b[i]=a[2*i+cas];
|
---|
| 85 | + for (i=0; i<dn; i++)
|
---|
| 86 | + b[sn+i]=a[(2*i+1-cas)];
|
---|
| 87 | +}
|
---|
| 88 | +
|
---|