mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-18 07:20:25 +08:00
graphite-dependences.c (subtract_commutative_associative_deps): Add NULL checking of the following variables...
gcc/ * graphite-dependences.c (subtract_commutative_associative_deps): Add NULL checking of the following variables: must_raw_no_source, may_raw_no_source, must_war_no_source, may_war_no_source, must_waw_no_source, may_waw_no_source, must_raw, may_raw, must_war, may_war, must_waw, may_waw gcc/testsuite/gfortran.dg/graphite/pr59586.f: New testcase. From-SVN: r212122
This commit is contained in:
parent
db72d60618
commit
516a84f7c0
gcc
@ -1,3 +1,13 @@
|
||||
2014-06-29 Roman Gareev <gareevroman@gmail.com>
|
||||
|
||||
* graphite-dependences.c (subtract_commutative_associative_deps):
|
||||
Add NULL checking of the following variables: must_raw_no_source,
|
||||
may_raw_no_source, must_war_no_source, may_war_no_source,
|
||||
must_waw_no_source, may_waw_no_source, must_raw, may_raw,
|
||||
must_war, may_war, must_waw, may_waw
|
||||
|
||||
testsuite/gfortran.dg/graphite/pr59586.f: New testcase.
|
||||
|
||||
2014-06-29 Roman Gareev <gareevroman@gmail.com>
|
||||
|
||||
* graphite-clast-to-gimple.c:
|
||||
|
@ -424,24 +424,71 @@ subtract_commutative_associative_deps (scop_p scop,
|
||||
&x_may_waw_no_source);
|
||||
gcc_assert (res == 0);
|
||||
|
||||
*must_raw = isl_union_map_subtract (*must_raw, x_must_raw);
|
||||
*may_raw = isl_union_map_subtract (*may_raw, x_may_raw);
|
||||
*must_raw_no_source = isl_union_map_subtract (*must_raw_no_source,
|
||||
x_must_raw_no_source);
|
||||
*may_raw_no_source = isl_union_map_subtract (*may_raw_no_source,
|
||||
x_may_raw_no_source);
|
||||
*must_war = isl_union_map_subtract (*must_war, x_must_war);
|
||||
*may_war = isl_union_map_subtract (*may_war, x_may_war);
|
||||
*must_war_no_source = isl_union_map_subtract (*must_war_no_source,
|
||||
x_must_war_no_source);
|
||||
*may_war_no_source = isl_union_map_subtract (*may_war_no_source,
|
||||
x_may_war_no_source);
|
||||
*must_waw = isl_union_map_subtract (*must_waw, x_must_waw);
|
||||
*may_waw = isl_union_map_subtract (*may_waw, x_may_waw);
|
||||
*must_waw_no_source = isl_union_map_subtract (*must_waw_no_source,
|
||||
x_must_waw_no_source);
|
||||
*may_waw_no_source = isl_union_map_subtract (*may_waw_no_source,
|
||||
x_may_waw_no_source);
|
||||
if (must_raw)
|
||||
*must_raw = isl_union_map_subtract (*must_raw, x_must_raw);
|
||||
else
|
||||
isl_union_map_free (x_must_raw);
|
||||
|
||||
if (may_raw)
|
||||
*may_raw = isl_union_map_subtract (*may_raw, x_may_raw);
|
||||
else
|
||||
isl_union_map_free (x_may_raw);
|
||||
|
||||
if (must_raw_no_source)
|
||||
*must_raw_no_source = isl_union_map_subtract (*must_raw_no_source,
|
||||
x_must_raw_no_source);
|
||||
else
|
||||
isl_union_map_free (x_must_raw_no_source);
|
||||
|
||||
if (may_raw_no_source)
|
||||
*may_raw_no_source = isl_union_map_subtract (*may_raw_no_source,
|
||||
x_may_raw_no_source);
|
||||
else
|
||||
isl_union_map_free (x_may_raw_no_source);
|
||||
|
||||
if (must_war)
|
||||
*must_war = isl_union_map_subtract (*must_war, x_must_war);
|
||||
else
|
||||
isl_union_map_free (x_must_war);
|
||||
|
||||
if (may_war)
|
||||
*may_war = isl_union_map_subtract (*may_war, x_may_war);
|
||||
else
|
||||
isl_union_map_free (x_may_war);
|
||||
|
||||
if (must_war_no_source)
|
||||
*must_war_no_source = isl_union_map_subtract (*must_war_no_source,
|
||||
x_must_war_no_source);
|
||||
else
|
||||
isl_union_map_free (x_must_war_no_source);
|
||||
|
||||
if (may_war_no_source)
|
||||
*may_war_no_source = isl_union_map_subtract (*may_war_no_source,
|
||||
x_may_war_no_source);
|
||||
else
|
||||
isl_union_map_free (x_may_war_no_source);
|
||||
|
||||
if (must_waw)
|
||||
*must_waw = isl_union_map_subtract (*must_waw, x_must_waw);
|
||||
else
|
||||
isl_union_map_free (x_must_waw);
|
||||
|
||||
if (may_waw)
|
||||
*may_waw = isl_union_map_subtract (*may_waw, x_may_waw);
|
||||
else
|
||||
isl_union_map_free (x_may_waw);
|
||||
|
||||
if (must_waw_no_source)
|
||||
*must_waw_no_source = isl_union_map_subtract (*must_waw_no_source,
|
||||
x_must_waw_no_source);
|
||||
else
|
||||
isl_union_map_free (x_must_waw_no_source);
|
||||
|
||||
if (may_waw_no_source)
|
||||
*may_waw_no_source = isl_union_map_subtract (*may_waw_no_source,
|
||||
x_may_waw_no_source);
|
||||
else
|
||||
isl_union_map_free (x_may_waw_no_source);
|
||||
}
|
||||
|
||||
isl_union_map_free (original);
|
||||
|
11
gcc/testsuite/gfortran.dg/graphite/pr59586.f
Normal file
11
gcc/testsuite/gfortran.dg/graphite/pr59586.f
Normal file
@ -0,0 +1,11 @@
|
||||
! { dg-additional-options "-Ofast -floop-parallelize-all" }
|
||||
|
||||
subroutine subsm ( n, x, xp, xx)
|
||||
integer n, m, x(n),xp(n), xx(n), gg(n), dd_p
|
||||
do 55 i=1, n
|
||||
dd_p = dd_p + (x(i) - xx(i))*gg(i)
|
||||
55 continue
|
||||
if ( dd_p .gt. 0 ) then
|
||||
call dcopy( n, xp, 1, x, 1 )
|
||||
endif
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user