[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 | + |
---|