[polly] r221479 - Explicitly annotate loops we want to run thread-parallel

Tobias Grosser tobias at grosser.es
Thu Nov 6 11:35:22 PST 2014


Author: grosser
Date: Thu Nov  6 13:35:21 2014
New Revision: 221479

URL: http://llvm.org/viewvc/llvm-project?rev=221479&view=rev
Log:
Explicitly annotate loops we want to run thread-parallel

We introduces a new flag -polly-parallel and use it to annotate the for-nodes in
the isl ast that we want to execute thread parallel (e.g., using OpenMP). We
previously already emmitted openmp annotations, but we did this for various
kinds of parallel loops, including some which we can not run in parallel.

With this patch we now have three annotations:

  1) #pragma known-parallel [reduction]
  2) #pragma omp for
  3) #pragma simd

meaning:

  1) loop has no loop carried dependences
  2) loop will be executed thread-parallel
  3) loop can possibly be vectorized

This patch introduces 1) and reduces the use of 2) to only the cases where we
will actually generate thread parallel code.

It is in preparation of openmp code generation in our isl backend.

Legacy:

- We also have a command line option -enable-polly-openmp. This option controls
  the OpenMP code generation in CLooG. It will become an alias of
  -polly-parallel after the CLooG code generation has been dropped.

http://reviews.llvm.org/D6142

Modified:
    polly/trunk/include/polly/CodeGen/IslAst.h
    polly/trunk/lib/CodeGen/IslAst.cpp
    polly/trunk/test/Isl/Ast/OpenMP/multiple_loops_outer_parallel.ll
    polly/trunk/test/Isl/Ast/OpenMP/nested_loop_both_parallel.ll
    polly/trunk/test/Isl/Ast/OpenMP/nested_loop_both_parallel_parametric.ll
    polly/trunk/test/Isl/Ast/OpenMP/nested_loop_inner_parallel.ll
    polly/trunk/test/Isl/Ast/OpenMP/nested_loop_outer_parallel.ll
    polly/trunk/test/Isl/Ast/OpenMP/single_loop_param_non_parallel.ll
    polly/trunk/test/Isl/Ast/OpenMP/single_loop_param_parallel.ll
    polly/trunk/test/Isl/Ast/OpenMP/single_loop_param_parallel_computeout.ll
    polly/trunk/test/Isl/Ast/reduction_clauses_multidimensional_access.ll
    polly/trunk/test/Isl/Ast/reduction_clauses_onedimensional_access.ll
    polly/trunk/test/Isl/Ast/reduction_different_reduction_clauses.ll
    polly/trunk/test/Isl/Ast/reduction_in_one_dimension.ll
    polly/trunk/test/Isl/Ast/reduction_modulo_and_loop_reversal_schedule_2.ll
    polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions.ll
    polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_2.ll
    polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_3.ll
    polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_4.ll
    polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_5.ll
    polly/trunk/test/Isl/Ast/reduction_multiple_dimensions.ll
    polly/trunk/test/Isl/Ast/reduction_multiple_dimensions_2.ll
    polly/trunk/test/Isl/Ast/reduction_multiple_dimensions_3.ll
    polly/trunk/test/Isl/Ast/reduction_multiple_dimensions_4.ll
    polly/trunk/test/Isl/Ast/single_loop_strip_mine.ll
    polly/trunk/test/ScheduleOptimizer/prevectorization.ll

Modified: polly/trunk/include/polly/CodeGen/IslAst.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/include/polly/CodeGen/IslAst.h?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/include/polly/CodeGen/IslAst.h (original)
+++ polly/trunk/include/polly/CodeGen/IslAst.h Thu Nov  6 13:35:21 2014
@@ -126,6 +126,9 @@ public:
   /// @brief Is this loop a reduction parallel loop?
   static bool isReductionParallel(__isl_keep isl_ast_node *Node);
 
+  /// @brief Will the loop be run as thread parallel?
+  static bool isExecutedInParallel(__isl_keep isl_ast_node *Node);
+
   /// @brief Get the nodes schedule or a nullptr if not available.
   static __isl_give isl_union_map *getSchedule(__isl_keep isl_ast_node *Node);
 

Modified: polly/trunk/lib/CodeGen/IslAst.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/CodeGen/IslAst.cpp?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/lib/CodeGen/IslAst.cpp (original)
+++ polly/trunk/lib/CodeGen/IslAst.cpp Thu Nov  6 13:35:21 2014
@@ -42,6 +42,11 @@ using namespace polly;
 
 using IslAstUserPayload = IslAstInfo::IslAstUserPayload;
 
+static cl::opt<bool>
+    PollyParallel("polly-parallel",
+               cl::desc("Generate thread parallel code (isl codegen only)"),
+               cl::init(false), cl::ZeroOrMore, cl::cat(PollyCategory));
+
 static cl::opt<bool> UseContext("polly-ast-use-context",
                                 cl::desc("Use context"), cl::Hidden,
                                 cl::init(false), cl::ZeroOrMore,
@@ -148,6 +153,7 @@ static isl_printer *cbPrintFor(__isl_tak
 
   isl_pw_aff *DD = IslAstInfo::getMinimalDependenceDistance(Node);
   const std::string BrokenReductionsStr = getBrokenReductionsStr(Node);
+  const std::string KnownParallelStr = "#pragma known-parallel";
   const std::string DepDisPragmaStr = "#pragma minimal dependence distance: ";
   const std::string SimdPragmaStr = "#pragma simd";
   const std::string OmpPragmaStr = "#pragma omp parallel for";
@@ -158,8 +164,10 @@ static isl_printer *cbPrintFor(__isl_tak
   if (IslAstInfo::isInnermostParallel(Node))
     Printer = printLine(Printer, SimdPragmaStr + BrokenReductionsStr);
 
-  if (IslAstInfo::isOutermostParallel(Node))
-    Printer = printLine(Printer, OmpPragmaStr + BrokenReductionsStr);
+  if (IslAstInfo::isExecutedInParallel(Node))
+    Printer = printLine(Printer, OmpPragmaStr);
+  else if (IslAstInfo::isOutermostParallel(Node))
+    Printer = printLine(Printer, KnownParallelStr + BrokenReductionsStr);
 
   isl_pw_aff_free(DD);
   return isl_ast_node_for_print(Node, Printer, Options);
@@ -357,7 +365,8 @@ IslAst::IslAst(Scop *Scop, Dependences &
   isl_union_map *Schedule =
       isl_union_map_intersect_domain(S->getSchedule(), S->getDomains());
 
-  if (DetectParallel || PollyVectorizerChoice != VECTORIZER_NONE) {
+  if (PollyParallel || DetectParallel ||
+      PollyVectorizerChoice != VECTORIZER_NONE) {
     BuildInfo.Deps = &D;
     BuildInfo.InParallelFor = 0;
 
@@ -444,6 +453,10 @@ bool IslAstInfo::isReductionParallel(__i
   return Payload && Payload->IsReductionParallel;
 }
 
+bool IslAstInfo::isExecutedInParallel(__isl_keep isl_ast_node *Node) {
+  return PollyParallel && isOutermostParallel(Node) && !isReductionParallel(Node);
+}
+
 isl_union_map *IslAstInfo::getSchedule(__isl_keep isl_ast_node *Node) {
   IslAstUserPayload *Payload = getNodePayload(Node);
   return Payload ? isl_ast_build_get_schedule(Payload->Build) : nullptr;

Modified: polly/trunk/test/Isl/Ast/OpenMP/multiple_loops_outer_parallel.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/OpenMP/multiple_loops_outer_parallel.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/OpenMP/multiple_loops_outer_parallel.ll (original)
+++ polly/trunk/test/Isl/Ast/OpenMP/multiple_loops_outer_parallel.ll Thu Nov  6 13:35:21 2014
@@ -1,4 +1,4 @@
-; RUN: opt %loadPolly -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
+; RUN: opt %loadPolly -polly-ast -polly-parallel -analyze < %s | FileCheck %s
 ;
 ;       void jd(int *A) {
 ; CHECK:  #pragma omp parallel for

Modified: polly/trunk/test/Isl/Ast/OpenMP/nested_loop_both_parallel.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/OpenMP/nested_loop_both_parallel.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/OpenMP/nested_loop_both_parallel.ll (original)
+++ polly/trunk/test/Isl/Ast/OpenMP/nested_loop_both_parallel.ll Thu Nov  6 13:35:21 2014
@@ -1,4 +1,4 @@
-; RUN: opt %loadPolly -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
+; RUN: opt %loadPolly -polly-ast -polly-parallel -analyze < %s | FileCheck %s
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
 target triple = "x86_64-pc-linux-gnu"
 

Modified: polly/trunk/test/Isl/Ast/OpenMP/nested_loop_both_parallel_parametric.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/OpenMP/nested_loop_both_parallel_parametric.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/OpenMP/nested_loop_both_parallel_parametric.ll (original)
+++ polly/trunk/test/Isl/Ast/OpenMP/nested_loop_both_parallel_parametric.ll Thu Nov  6 13:35:21 2014
@@ -1,4 +1,4 @@
-; RUN: opt %loadPolly -polly-ast -polly-ast-detect-parallel -analyze -polly-delinearize < %s | FileCheck %s
+; RUN: opt %loadPolly -polly-ast -polly-parallel -analyze -polly-delinearize < %s | FileCheck %s
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
 target triple = "x86_64-pc-linux-gnu"
 ; int A[1024][1024];

Modified: polly/trunk/test/Isl/Ast/OpenMP/nested_loop_inner_parallel.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/OpenMP/nested_loop_inner_parallel.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/OpenMP/nested_loop_inner_parallel.ll (original)
+++ polly/trunk/test/Isl/Ast/OpenMP/nested_loop_inner_parallel.ll Thu Nov  6 13:35:21 2014
@@ -1,4 +1,4 @@
-; RUN: opt %loadPolly -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
+; RUN: opt %loadPolly -polly-ast -polly-parallel -analyze < %s | FileCheck %s
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
 target triple = "x86_64-pc-linux-gnu"
 

Modified: polly/trunk/test/Isl/Ast/OpenMP/nested_loop_outer_parallel.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/OpenMP/nested_loop_outer_parallel.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/OpenMP/nested_loop_outer_parallel.ll (original)
+++ polly/trunk/test/Isl/Ast/OpenMP/nested_loop_outer_parallel.ll Thu Nov  6 13:35:21 2014
@@ -1,4 +1,4 @@
-; RUN: opt %loadPolly -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
+; RUN: opt %loadPolly -polly-ast -polly-parallel -analyze < %s | FileCheck %s
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
 target triple = "x86_64-pc-linux-gnu"
 

Modified: polly/trunk/test/Isl/Ast/OpenMP/single_loop_param_non_parallel.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/OpenMP/single_loop_param_non_parallel.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/OpenMP/single_loop_param_non_parallel.ll (original)
+++ polly/trunk/test/Isl/Ast/OpenMP/single_loop_param_non_parallel.ll Thu Nov  6 13:35:21 2014
@@ -1,4 +1,4 @@
-; RUN: opt %loadPolly -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
+; RUN: opt %loadPolly -polly-ast -polly-parallel -analyze < %s | FileCheck %s
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
 target triple = "x86_64-pc-linux-gnu"
 

Modified: polly/trunk/test/Isl/Ast/OpenMP/single_loop_param_parallel.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/OpenMP/single_loop_param_parallel.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/OpenMP/single_loop_param_parallel.ll (original)
+++ polly/trunk/test/Isl/Ast/OpenMP/single_loop_param_parallel.ll Thu Nov  6 13:35:21 2014
@@ -1,4 +1,4 @@
-; RUN: opt %loadPolly -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
+; RUN: opt %loadPolly -polly-ast -polly-parallel -analyze < %s | FileCheck %s
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
 target triple = "x86_64-pc-linux-gnu"
 

Modified: polly/trunk/test/Isl/Ast/OpenMP/single_loop_param_parallel_computeout.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/OpenMP/single_loop_param_parallel_computeout.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/OpenMP/single_loop_param_parallel_computeout.ll (original)
+++ polly/trunk/test/Isl/Ast/OpenMP/single_loop_param_parallel_computeout.ll Thu Nov  6 13:35:21 2014
@@ -1,4 +1,4 @@
-; RUN: opt %loadPolly -polly-ast -polly-ast-detect-parallel -polly-dependences-computeout=1 -analyze < %s | FileCheck %s
+; RUN: opt %loadPolly -polly-ast -polly-parallel -polly-dependences-computeout=1 -analyze < %s | FileCheck %s
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
 target triple = "x86_64-pc-linux-gnu"
 

Modified: polly/trunk/test/Isl/Ast/reduction_clauses_multidimensional_access.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/reduction_clauses_multidimensional_access.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/reduction_clauses_multidimensional_access.ll (original)
+++ polly/trunk/test/Isl/Ast/reduction_clauses_multidimensional_access.ll Thu Nov  6 13:35:21 2014
@@ -1,6 +1,6 @@
 ; RUN: opt %loadPolly -polly-delinearize -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
 ;
-; CHECK: #pragma omp parallel for reduction (^ : sum)
+; CHECK: #pragma known-parallel reduction (^ : sum)
 ;        void f(int N, int M, int P, int sum[P][M]) {
 ;          for (int i = 0; i < N; i++)
 ;            for (int j = 0; j < P; j++)

Modified: polly/trunk/test/Isl/Ast/reduction_clauses_onedimensional_access.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/reduction_clauses_onedimensional_access.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/reduction_clauses_onedimensional_access.ll (original)
+++ polly/trunk/test/Isl/Ast/reduction_clauses_onedimensional_access.ll Thu Nov  6 13:35:21 2014
@@ -1,6 +1,6 @@
 ; RUN: opt %loadPolly -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
 ;
-; CHECK: #pragma omp parallel for reduction (^ : sum)
+; CHECK: #pragma known-parallel reduction (^ : sum)
 ;        void f(int N, int M, int *sum) {
 ;          for (int i = 0; i < N; i++)
 ; CHECK:    #pragma simd

Modified: polly/trunk/test/Isl/Ast/reduction_different_reduction_clauses.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/reduction_different_reduction_clauses.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/reduction_different_reduction_clauses.ll (original)
+++ polly/trunk/test/Isl/Ast/reduction_different_reduction_clauses.ll Thu Nov  6 13:35:21 2014
@@ -1,7 +1,7 @@
 ; RUN: opt %loadPolly -basicaa -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
 ;
 ; CHECK: #pragma simd reduction (+ : sum{{[1,2]}}, sum{{[1,2]}}) reduction (* : prod) reduction (| : or) reduction (& : and)
-; CHECK: #pragma omp parallel for reduction (+ : sum{{[1,2]}}, sum{{[1,2]}}) reduction (* : prod) reduction (| : or) reduction (& : and)
+; CHECK: #pragma known-parallel reduction (+ : sum{{[1,2]}}, sum{{[1,2]}}) reduction (* : prod) reduction (| : or) reduction (& : and)
 ; CHECK: for (int c1 = 0; c1 < N; c1 += 1)
 ; CHECK:   Stmt_for_body(c1);
 ;

Modified: polly/trunk/test/Isl/Ast/reduction_in_one_dimension.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/reduction_in_one_dimension.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/reduction_in_one_dimension.ll (original)
+++ polly/trunk/test/Isl/Ast/reduction_in_one_dimension.ll Thu Nov  6 13:35:21 2014
@@ -2,7 +2,7 @@
 ;
 ; Verify that we won't privatize anything in the outer dimension
 ;
-; CHECK:    #pragma omp parallel for
+; CHECK:    #pragma known-parallel
 ; CHECK:    for (int c1 = 0; c1 < 2 * n; c1 += 1)
 ; CHECK:      #pragma simd reduction
 ; CHECK:      for (int c3 = 0; c3 <= 1023; c3 += 1)

Modified: polly/trunk/test/Isl/Ast/reduction_modulo_and_loop_reversal_schedule_2.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/reduction_modulo_and_loop_reversal_schedule_2.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/reduction_modulo_and_loop_reversal_schedule_2.ll (original)
+++ polly/trunk/test/Isl/Ast/reduction_modulo_and_loop_reversal_schedule_2.ll Thu Nov  6 13:35:21 2014
@@ -1,6 +1,6 @@
 ; RUN: opt %loadPolly -polly-import-jscop-dir=%S -polly-import-jscop -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
 ;
-; CHECK:    #pragma omp parallel for reduction
+; CHECK:    #pragma known-parallel reduction
 ; CHECK:    for (int c0 = 0; c0 <= 2; c0 += 1) {
 ; CHECK:      if (c0 == 2) {
 ; CHECK:        #pragma simd reduction

Modified: polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions.ll (original)
+++ polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions.ll Thu Nov  6 13:35:21 2014
@@ -1,6 +1,6 @@
 ; RUN: opt %loadPolly -polly-import-jscop-dir=%S -polly-import-jscop -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
 ;
-; CHECK:    #pragma omp parallel for
+; CHECK:    #pragma known-parallel
 ; CHECK:    for (int c0 = 0; c0 <= 1; c0 += 1) {
 ; CHECK:      if (c0 == 1) {
 ; CHECK:        for (int c1 = 1; c1 < 2 * n; c1 += 2)

Modified: polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_2.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_2.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_2.ll (original)
+++ polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_2.ll Thu Nov  6 13:35:21 2014
@@ -2,8 +2,8 @@
 ;
 ; Verify that the outer dimension doesnt't carry reduction dependences
 ;
-; CHECK-NOT:#pragma omp parallel for reduction
-; CHECK:    #pragma omp parallel for
+; CHECK-NOT:#pragma known-parallel reduction
+; CHECK:    #pragma known-parallel
 ; CHECK:    for (int c1 = 0; c1 < 2 * n; c1 += 1) {
 ; CHECK:      if (c1 % 2 == 0) {
 ; CHECK:        #pragma simd reduction

Modified: polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_3.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_3.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_3.ll (original)
+++ polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_3.ll Thu Nov  6 13:35:21 2014
@@ -2,8 +2,8 @@
 ;
 ; Verify that the outer dimension doesnt't carry reduction dependences
 ;
-; CHECK-NOT:#pragma omp parallel for reduction
-; CHECK:    #pragma omp parallel for
+; CHECK-NOT:#pragma known-parallel reduction
+; CHECK:    #pragma known-parallel
 ; CHECK:    for (int c1 = 0; c1 < 2 * n; c1 += 1)
 ; CHECK:      #pragma simd reduction
 ; CHECK:      for (int c3 = 0; c3 <= 1023; c3 += 1) {

Modified: polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_4.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_4.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_4.ll (original)
+++ polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_4.ll Thu Nov  6 13:35:21 2014
@@ -2,8 +2,8 @@
 ;
 ; Verify that the outer dimension doesnt't carry reduction dependences
 ;
-; CHECK-NOT:#pragma omp parallel for reduction
-; CHECK:    #pragma omp parallel for
+; CHECK-NOT:#pragma known-parallel reduction
+; CHECK:    #pragma known-parallel
 ; CHECK:    for (int c1 = 0; c1 < 2 * n; c1 += 1)
 ; CHECK:      #pragma simd reduction
 ; CHECK:      for (int c3 = -1023; c3 <= 1023; c3 += 1) {

Modified: polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_5.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_5.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_5.ll (original)
+++ polly/trunk/test/Isl/Ast/reduction_modulo_schedule_multiple_dimensions_5.ll Thu Nov  6 13:35:21 2014
@@ -2,7 +2,7 @@
 ;
 ; Verify that only the outer dimension needs privatization
 ;
-; CHECK:    #pragma omp parallel for reduction
+; CHECK:    #pragma known-parallel reduction
 ; CHECK:    for (int c1 = 0; c1 <= 1023; c1 += 1) {
 ; CHECK:      if (c1 % 2 == 0) {
 ; CHECK-NOT:    #pragma simd reduction

Modified: polly/trunk/test/Isl/Ast/reduction_multiple_dimensions.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/reduction_multiple_dimensions.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/reduction_multiple_dimensions.ll (original)
+++ polly/trunk/test/Isl/Ast/reduction_multiple_dimensions.ll Thu Nov  6 13:35:21 2014
@@ -1,7 +1,7 @@
 ; RUN: opt %loadPolly -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
 ;
-; CHECK-NOT:#pragma omp parallel for reduction
-; CHECK:    #pragma omp parallel for
+; CHECK-NOT:#pragma known-parallel reduction
+; CHECK:    #pragma known-parallel
 ; CHECK:    for (int c1 = 0; c1 <= 2047; c1 += 1)
 ; CHECK:      for (int c3 = 0; c3 <= 1023; c3 += 1)
 ; CHECK:        #pragma simd reduction

Modified: polly/trunk/test/Isl/Ast/reduction_multiple_dimensions_2.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/reduction_multiple_dimensions_2.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/reduction_multiple_dimensions_2.ll (original)
+++ polly/trunk/test/Isl/Ast/reduction_multiple_dimensions_2.ll Thu Nov  6 13:35:21 2014
@@ -1,7 +1,7 @@
 ; RUN: opt %loadPolly -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
 ;
-; CHECK-NOT:#pragma omp parallel for reduction
-; CHECK:    #pragma omp parallel for
+; CHECK-NOT:#pragma known-parallel reduction
+; CHECK:    #pragma known-parallel
 ; CHECK:    for (int c1 = 0; c1 <= 2047; c1 += 1)
 ; CHECK:      for (int c3 = 0; c3 <= 1023; c3 += 1)
 ; CHECK:        #pragma simd reduction

Modified: polly/trunk/test/Isl/Ast/reduction_multiple_dimensions_3.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/reduction_multiple_dimensions_3.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/reduction_multiple_dimensions_3.ll (original)
+++ polly/trunk/test/Isl/Ast/reduction_multiple_dimensions_3.ll Thu Nov  6 13:35:21 2014
@@ -1,7 +1,7 @@
 ; RUN: opt %loadPolly -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
 ;
-; CHECK-NOT:#pragma omp parallel for reduction
-; CHECK:    #pragma omp parallel for
+; CHECK-NOT:#pragma known-parallel reduction
+; CHECK:    #pragma known-parallel
 ; CHECK:    for (int c1 = 0; c1 <= 2047; c1 += 1)
 ; CHECK:      for (int c3 = 0; c3 <= 1023; c3 += 1)
 ; CHECK:        #pragma simd reduction

Modified: polly/trunk/test/Isl/Ast/reduction_multiple_dimensions_4.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/reduction_multiple_dimensions_4.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/reduction_multiple_dimensions_4.ll (original)
+++ polly/trunk/test/Isl/Ast/reduction_multiple_dimensions_4.ll Thu Nov  6 13:35:21 2014
@@ -1,7 +1,7 @@
 ; RUN: opt %loadPolly -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
 ;
-; CHECK-NOT:#pragma omp parallel for reduction
-; CHECK:    #pragma omp parallel for
+; CHECK-NOT:#pragma known-parallel reduction
+; CHECK:    #pragma known-parallel
 ; CHECK:    for (int c1 = 0; c1 <= 2047; c1 += 1)
 ; CHECK:      for (int c3 = 0; c3 <= 1023; c3 += 1)
 ; CHECK:        #pragma simd reduction

Modified: polly/trunk/test/Isl/Ast/single_loop_strip_mine.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/Isl/Ast/single_loop_strip_mine.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/Isl/Ast/single_loop_strip_mine.ll (original)
+++ polly/trunk/test/Isl/Ast/single_loop_strip_mine.ll Thu Nov  6 13:35:21 2014
@@ -32,7 +32,7 @@ for.end:
 ; CHECK: for (int c1 = 0; c1 <= 1023; c1 += 1)
 ; CHECK:     Stmt_for_body(c1);
 
-; CHECK-VECTOR: #pragma omp parallel for
+; CHECK-VECTOR: #pragma known-parallel
 ; CHECK-VECTOR: for (int c0 = 0; c0 <= 1023; c0 += 4)
 ; CHECK-VECTOR:     #pragma simd
 ; CHECK-VECTOR:     for (int c1 = c0; c1 <= c0 + 3; c1 += 1)

Modified: polly/trunk/test/ScheduleOptimizer/prevectorization.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScheduleOptimizer/prevectorization.ll?rev=221479&r1=221478&r2=221479&view=diff
==============================================================================
--- polly/trunk/test/ScheduleOptimizer/prevectorization.ll (original)
+++ polly/trunk/test/ScheduleOptimizer/prevectorization.ll Thu Nov  6 13:35:21 2014
@@ -54,7 +54,7 @@ for.end30:
 
 attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
 
-; CHECK: #pragma omp parallel for
+; CHECK: #pragma known-parallel
 ; CHECK: for (int c1 = 0; c1 <= 1535; c1 += 32)
 ; CHECK:   for (int c2 = 0; c2 <= 1535; c2 += 32)
 ; CHECK:     for (int c3 = c1; c3 <= c1 + 31; c3 += 1)
@@ -62,7 +62,7 @@ attributes #0 = { nounwind uwtable "less
 ; CHECK:         #pragma simd
 ; CHECK:         for (int c5 = c4; c5 <= c4 + 3; c5 += 1)
 ; CHECK:           Stmt_for_body3(c3, c5);
-; CHECK: #pragma omp parallel for
+; CHECK: #pragma known-parallel
 ; CHECK: for (int c1 = 0; c1 <= 1535; c1 += 32)
 ; CHECK:   for (int c2 = 0; c2 <= 1535; c2 += 32)
 ; CHECK:     for (int c3 = 0; c3 <= 1535; c3 += 32)





More information about the llvm-commits mailing list