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