From f1906138b4cb4562b5489623f52f49dc6bef28e7 Mon Sep 17 00:00:00 2001 From: Johannes Doerfert Date: Fri, 20 Jun 2014 16:37:11 +0000 Subject: Model statement wise reduction dependences + Collect reduction dependences + Introduced TYPE_RED in Dependences.h which can be used to obtain the reduction dependences + Used TYPE_RED to prevent parallelization while we do not have a privatizing code generation + Relax the dependences for non-parallel code generation + Add privatization dependences to ensure correctness + 12 Test cases to check for reduction and privatization dependences llvm-svn: 211369 --- polly/lib/CodeGen/IslAst.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'polly/lib/CodeGen/IslAst.cpp') diff --git a/polly/lib/CodeGen/IslAst.cpp b/polly/lib/CodeGen/IslAst.cpp index 0e2ddcc72b6..57814e4464a 100644 --- a/polly/lib/CodeGen/IslAst.cpp +++ b/polly/lib/CodeGen/IslAst.cpp @@ -166,7 +166,9 @@ static bool astScheduleDimIsParallel(__isl_keep isl_ast_build *Build, Dimension = isl_space_dim(ScheduleSpace, isl_dim_out) - 1; - Deps = D->getDependences(Dependences::TYPE_ALL); + // FIXME: We can remove ignore reduction dependences in case we privatize the + // memory locations the reduction statements reduce into. + Deps = D->getDependences(Dependences::TYPE_ALL | Dependences::TYPE_RED); Deps = isl_union_map_apply_range(Deps, isl_union_map_copy(Schedule)); Deps = isl_union_map_apply_domain(Deps, Schedule); -- cgit v1.2.3