[polly] r211670 - Clean up XFAILed test cases

Tobias Grosser tobias at grosser.es
Tue Jun 24 23:31:20 PDT 2014


Author: grosser
Date: Wed Jun 25 01:31:19 2014
New Revision: 211670

URL: http://llvm.org/viewvc/llvm-project?rev=211670&view=rev
Log:
Clean up XFAILed test cases

We had a set of test cases that have been incomplete and XFAILED. This patch
completes a couple of the interesting ones and removes the ones which seem
redundant or not sufficiently reduced to be useful.

Removed:
    polly/trunk/test/ScopInfo/indvar_out_of_loop.ll
    polly/trunk/test/ScopInfo/indvar_out_of_loop_1.ll
    polly/trunk/test/ScopInfo/indvar_out_of_loop_2.ll
    polly/trunk/test/ScopInfo/loop_complex_parameter.ll
    polly/trunk/test/ScopInfo/loop_depth_0.ll
    polly/trunk/test/ScopInfo/loop_multi_exits.ll
    polly/trunk/test/ScopInfo/out_of_loop_0.ll
Modified:
    polly/trunk/test/ScopInfo/loop_affine_bound_0.ll
    polly/trunk/test/ScopInfo/loop_affine_bound_1.ll
    polly/trunk/test/ScopInfo/loop_affine_bound_2.ll
    polly/trunk/test/ScopInfo/simple_loop_1.ll

Removed: polly/trunk/test/ScopInfo/indvar_out_of_loop.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/indvar_out_of_loop.ll?rev=211669&view=auto
==============================================================================
--- polly/trunk/test/ScopInfo/indvar_out_of_loop.ll (original)
+++ polly/trunk/test/ScopInfo/indvar_out_of_loop.ll (removed)
@@ -1,41 +0,0 @@
-; RUN: opt %loadPolly %defaultOpts  -polly-analyze-ir  -analyze < %s | FileCheck %s
-; RUN: opt %loadPolly %defaultOpts -polly-analyze-ir  -analyze < %s | FileCheck %s
-; XFAIL: *
-
-;void f(long a[], long N) {
-;  long i;
-;  for (i = 0; i < N; ++i)
-;    a[i] = i;
-
-;  a[2 *i + 5 ] = 0;
-;}
-
-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"
-target triple = "x86_64-unknown-linux-gnu"
-
-define void @f(i64* nocapture %a, i64 %N) nounwind {
-entry:
-  %0 = icmp sgt i64 %N, 0                         ; <i1> [#uses=1]
-  br i1 %0, label %bb, label %bb2
-
-bb:                                               ; preds = %bb, %entry
-  %1 = phi i64 [ 0, %entry ], [ %2, %bb ]         ; <i64> [#uses=3]
-  %scevgep = getelementptr i64* %a, i64 %1        ; <i64*> [#uses=1]
-  store i64 %1, i64* %scevgep, align 8
-  %2 = add nsw i64 %1, 1                          ; <i64> [#uses=2]
-  %exitcond = icmp eq i64 %2, %N                  ; <i1> [#uses=1]
-  br i1 %exitcond, label %bb1.bb2_crit_edge, label %bb
-
-bb1.bb2_crit_edge:                                ; preds = %bb
-  %phitmp = shl i64 %N, 1                         ; <i64> [#uses=1]
-  %phitmp5 = add i64 %phitmp, 5                   ; <i64> [#uses=1]
-  br label %bb2
-
-bb2:                                              ; preds = %bb1.bb2_crit_edge, %entry
-  %i.0.lcssa = phi i64 [ %phitmp5, %bb1.bb2_crit_edge ], [ 5, %entry ] ; <i64> [#uses=1]
-  %3 = getelementptr inbounds i64* %a, i64 %i.0.lcssa ; <i64*> [#uses=1]
-  store i64 0, i64* %3, align 8
-  ret void
-}
-
-; CHECK: Scop: entry => <Function Return>        Parameters: (%N, )

Removed: polly/trunk/test/ScopInfo/indvar_out_of_loop_1.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/indvar_out_of_loop_1.ll?rev=211669&view=auto
==============================================================================
--- polly/trunk/test/ScopInfo/indvar_out_of_loop_1.ll (original)
+++ polly/trunk/test/ScopInfo/indvar_out_of_loop_1.ll (removed)
@@ -1,47 +0,0 @@
-; RUN: opt %loadPolly %defaultOpts  -polly-analyze-ir  -analyze < %s | FileCheck %s
-; RUN: opt %loadPolly %defaultOpts -polly-analyze-ir  -analyze < %s | FileCheck %s
-; XFAIL: *
-;void f(long a[], long N) {
-;  long i;
-;  for (i = 0; i < N; ++i)
-;    a[i] = i;
-
-;  if (N > 0)
-;    a[2 * N +  5 ] = 0;
-;  else
-;    a[5] = 0;
-;}
-
-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"
-target triple = "x86_64-unknown-linux-gnu"
-
-define void @f(i64* nocapture %a, i64 %N) nounwind {
-entry:
-  %0 = icmp sgt i64 %N, 0                         ; <i1> [#uses=2]
-  br i1 %0, label %bb, label %bb4
-
-bb:                                               ; preds = %bb, %entry
-  %1 = phi i64 [ 0, %entry ], [ %2, %bb ]         ; <i64> [#uses=3]
-  %scevgep = getelementptr i64* %a, i64 %1        ; <i64*> [#uses=1]
-  store i64 %1, i64* %scevgep, align 8
-  %2 = add nsw i64 %1, 1                          ; <i64> [#uses=2]
-  %exitcond = icmp eq i64 %2, %N                  ; <i1> [#uses=1]
-  br i1 %exitcond, label %bb2, label %bb
-
-bb2:                                              ; preds = %bb
-  br i1 %0, label %bb3, label %bb4
-
-bb3:                                              ; preds = %bb2
-  %3 = shl i64 %N, 1                              ; <i64> [#uses=1]
-  %4 = add nsw i64 %3, 5                          ; <i64> [#uses=1]
-  %5 = getelementptr inbounds i64* %a, i64 %4     ; <i64*> [#uses=1]
-  store i64 0, i64* %5, align 8
-  ret void
-
-bb4:                                              ; preds = %bb2, %entry
-  %6 = getelementptr inbounds i64* %a, i64 5      ; <i64*> [#uses=1]
-  store i64 0, i64* %6, align 8
-  ret void
-}
-
-; CHECK: Scop: entry => <Function Return>        Parameters: (%N, )

Removed: polly/trunk/test/ScopInfo/indvar_out_of_loop_2.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/indvar_out_of_loop_2.ll?rev=211669&view=auto
==============================================================================
--- polly/trunk/test/ScopInfo/indvar_out_of_loop_2.ll (original)
+++ polly/trunk/test/ScopInfo/indvar_out_of_loop_2.ll (removed)
@@ -1,45 +0,0 @@
-; RUN: opt %loadPolly %defaultOpts  -polly-analyze-ir  -analyze < %s | FileCheck %s
-; RUN: opt %loadPolly %defaultOpts -polly-analyze-ir  -analyze < %s | FileCheck %s
-; XFAIL: *
-
-;void f(long a[], long N, long M) {
-;  long i;
-
-;  if (N > M)
-;    for (i = 0; i < N; ++i)
-;     a[i] = i;
-;  else
-;    i = M + 3;
-
-;  a[2 *i + 5 ] = 0;
-;}
-
-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"
-target triple = "x86_64-unknown-linux-gnu"
-
-define void @f(i64* nocapture %a, i64 %N) nounwind {
-entry:
-  %0 = icmp sgt i64 %N, 0                         ; <i1> [#uses=1]
-  br i1 %0, label %bb, label %bb2
-
-bb:                                               ; preds = %bb, %entry
-  %1 = phi i64 [ 0, %entry ], [ %2, %bb ]         ; <i64> [#uses=3]
-  %scevgep = getelementptr i64* %a, i64 %1        ; <i64*> [#uses=1]
-  store i64 %1, i64* %scevgep, align 8
-  %2 = add nsw i64 %1, 1                          ; <i64> [#uses=2]
-  %exitcond = icmp eq i64 %2, %N                  ; <i1> [#uses=1]
-  br i1 %exitcond, label %bb1.bb2_crit_edge, label %bb
-
-bb1.bb2_crit_edge:                                ; preds = %bb
-  %phitmp = shl i64 %N, 1                         ; <i64> [#uses=1]
-  %phitmp5 = add i64 %phitmp, 5                   ; <i64> [#uses=1]
-  br label %bb2
-
-bb2:                                              ; preds = %bb1.bb2_crit_edge, %entry
-  %i.0.lcssa = phi i64 [ %phitmp5, %bb1.bb2_crit_edge ], [ 5, %entry ] ; <i64> [#uses=1]
-  %3 = getelementptr inbounds i64* %a, i64 %i.0.lcssa ; <i64*> [#uses=1]
-  store i64 0, i64* %3, align 8
-  ret void
-}
-
-; CHECK: Scop: entry => <Function Return>        Parameters: (%N, %M )

Modified: polly/trunk/test/ScopInfo/loop_affine_bound_0.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/loop_affine_bound_0.ll?rev=211670&r1=211669&r2=211670&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/loop_affine_bound_0.ll (original)
+++ polly/trunk/test/ScopInfo/loop_affine_bound_0.ll Wed Jun 25 01:31:19 2014
@@ -1,13 +1,11 @@
-; RUN: opt %loadPolly %defaultOpts  -polly-analyze-ir  -analyze < %s | FileCheck %s
-; RUN: opt %loadPolly %defaultOpts -polly-analyze-ir  -analyze < %s | FileCheck %s
-; XFAIL: *
-
-;void f(long a[][128], long N, long M) {
-;  long i, j;
-;  for (j = 0; j < (4*N + 7*M +3); ++j)
-;    for (i = 0; i < (5*N + 2); ++i)
-;        ...
-;}
+; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
+
+; void f(long a[][128], long N, long M) {
+;   long i, j;
+;   for (j = 0; j < (4*N + 7*M +3); ++j)
+;     for (i = 0; i < (5*N + 2); ++i)
+;       a[j][i] = 0
+;   }
 
 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"
 target triple = "x86_64-unknown-linux-gnu"
@@ -53,4 +51,15 @@ return:
   ret void
 }
 
-; CHECK: entry => <Function Return>        Parameters: (%N, %M, )
+; CHECK:  p0: %N
+; CHECK:  p1: %M
+; CHECK:  Statements {
+; CHECK:    Stmt_bb1
+; CHECK:          Domain :=
+; CHECK:              [N, M] -> { Stmt_bb1[i0, i1] : i0 >= 0 and i0 <= 2 + 4N + 7M and i1 >= 0 and i1 <= 1 + 5N and N >= 0 };
+; CHECK:          Scattering :=
+; CHECK:              [N, M] -> { Stmt_bb1[i0, i1] -> scattering[0, i0, 0, i1, 0] };
+; CHECK:      Reduction like: 0
+; CHECK:          MustWriteAccess :=
+; CHECK:              [N, M] -> { Stmt_bb1[i0, i1] -> MemRef_a[i0 + 128i1] };
+; CHECK:  }

Modified: polly/trunk/test/ScopInfo/loop_affine_bound_1.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/loop_affine_bound_1.ll?rev=211670&r1=211669&r2=211670&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/loop_affine_bound_1.ll (original)
+++ polly/trunk/test/ScopInfo/loop_affine_bound_1.ll Wed Jun 25 01:31:19 2014
@@ -1,6 +1,5 @@
-; RUN: opt %loadPolly %defaultOpts  -polly-analyze-ir  -analyze < %s | FileCheck %s
-; RUN: opt %loadPolly %defaultOpts -polly-analyze-ir  -analyze < %s | FileCheck %s
-; XFAIL: *
+; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
+
 ;void f(long a[][128], long N, long M) {
 ;  long i, j;
 ;  for (j = 0; j < (4*N + 7*M +3); ++j)
@@ -51,4 +50,15 @@ return:
   ret void
 }
 
-; CHECK: entry => <Function Return>        Parameters: (%N, %M, )
+; CHECK: p0: %N
+; CHECK: p1: %M
+; CHECK: Statements {
+; CHECK:   Stmt_bb1
+; CHECK:         Domain :=
+; CHECK:             [N, M] -> { Stmt_bb1[i0, i1] : i0 >= 0 and i0 <= 2 + 4N + 7M and i1 >= 0 and i1 <= 1 + 5N - i0 and i0 <= 1 + 5N };
+; CHECK:         Scattering :=
+; CHECK:             [N, M] -> { Stmt_bb1[i0, i1] -> scattering[0, i0, 0, i1, 0] };
+; CHECK:     Reduction like: 0
+; CHECK:         MustWriteAccess :=
+; CHECK:             [N, M] -> { Stmt_bb1[i0, i1] -> MemRef_a[129i0 + 128i1] };
+; CHECK: }

Modified: polly/trunk/test/ScopInfo/loop_affine_bound_2.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/loop_affine_bound_2.ll?rev=211670&r1=211669&r2=211670&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/loop_affine_bound_2.ll (original)
+++ polly/trunk/test/ScopInfo/loop_affine_bound_2.ll Wed Jun 25 01:31:19 2014
@@ -1,65 +1,75 @@
-; RUN: opt %loadPolly %defaultOpts  -polly-analyze-ir  -analyze < %s | FileCheck %s
-; RUN: opt %loadPolly %defaultOpts -polly-analyze-ir  -analyze < %s | FileCheck %s
-; XFAIL: *
-;void f(long a[][128], long N, long M) {
-;  long i, j;
-;  for (j = 0; j < (4*N + 7*M +3); ++j)
-;    for (i = (7*j + 6*M -9); i < (3*j + 5*N + 2) ; ++i)
-;        a[i][j] = 0;
-;}
+; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
+
+; void f(long a[][128], long N, long M) {
+;   long i, j;
+;   for (j = 0; j < (4*N + 7*M +3); ++j)
+;     for (i = (7*j + 6*M -9); i < (3*j + 5*N + 2) ; ++i)
+;         a[i][j] = 0;
+; }
 
 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"
 target triple = "x86_64-unknown-linux-gnu"
 
 define void @f([128 x i64]* nocapture %a, i64 %N, i64 %M) nounwind {
 entry:
-  %0 = shl i64 %N, 2                              ; <i64> [#uses=2]
-  %1 = mul i64 %M, 7                              ; <i64> [#uses=2]
-  %2 = or i64 %0, 3                               ; <i64> [#uses=1]
-  %3 = add nsw i64 %2, %1                         ; <i64> [#uses=1]
-  %4 = icmp sgt i64 %3, 0                         ; <i1> [#uses=1]
+  %0 = shl i64 %N, 2
+  %1 = mul i64 %M, 7
+  %2 = or i64 %0, 3
+  %3 = add nsw i64 %2, %1
+  %4 = icmp sgt i64 %3, 0
   br i1 %4, label %bb.nph8, label %return
 
 bb.nph8:                                          ; preds = %entry
-  %tmp14 = mul i64 %M, 6                          ; <i64> [#uses=1]
-  %tmp15 = add i64 %tmp14, -9                     ; <i64> [#uses=2]
-  %tmp20 = add i64 %1, %0                         ; <i64> [#uses=1]
-  %tmp21 = add i64 %tmp20, 3                      ; <i64> [#uses=1]
-  %tmp25 = mul i64 %M, -6                         ; <i64> [#uses=1]
-  %tmp26 = mul i64 %N, 5                          ; <i64> [#uses=2]
-  %tmp27 = add i64 %tmp25, %tmp26                 ; <i64> [#uses=1]
-  %tmp28 = add i64 %tmp27, 11                     ; <i64> [#uses=1]
-  %tmp35 = add i64 %tmp26, 2                      ; <i64> [#uses=1]
+  %tmp14 = mul i64 %M, 6
+  %tmp15 = add i64 %tmp14, -9
+  %tmp20 = add i64 %1, %0
+  %tmp21 = add i64 %tmp20, 3
+  %tmp25 = mul i64 %M, -6
+  %tmp26 = mul i64 %N, 5
+  %tmp27 = add i64 %tmp25, %tmp26
+  %tmp28 = add i64 %tmp27, 11
+  %tmp35 = add i64 %tmp26, 2
   br label %bb
 
 bb:                                               ; preds = %bb3, %bb.nph8
-  %j.07 = phi i64 [ 0, %bb.nph8 ], [ %6, %bb3 ]   ; <i64> [#uses=5]
-  %tmp17 = mul i64 %j.07, 897                     ; <i64> [#uses=1]
-  %tmp24 = mul i64 %j.07, -4                      ; <i64> [#uses=1]
-  %tmp13 = add i64 %tmp24, %tmp28                 ; <i64> [#uses=1]
-  %tmp30 = mul i64 %j.07, 7                       ; <i64> [#uses=1]
-  %tmp33 = add i64 %tmp30, %tmp15                 ; <i64> [#uses=1]
-  %tmp34 = mul i64 %j.07, 3                       ; <i64> [#uses=1]
-  %tmp36 = add i64 %tmp34, %tmp35                 ; <i64> [#uses=1]
-  %5 = icmp sgt i64 %tmp36, %tmp33                ; <i1> [#uses=1]
+  %j.07 = phi i64 [ 0, %bb.nph8 ], [ %6, %bb3 ]
+  %tmp17 = mul i64 %j.07, 897
+  %tmp24 = mul i64 %j.07, -4
+  %tmp13 = add i64 %tmp24, %tmp28
+  %tmp30 = mul i64 %j.07, 7
+  %tmp33 = add i64 %tmp30, %tmp15
+  %tmp34 = mul i64 %j.07, 3
+  %tmp36 = add i64 %tmp34, %tmp35
+  %5 = icmp sgt i64 %tmp36, %tmp33
   br i1 %5, label %bb1, label %bb3
 
 bb1:                                              ; preds = %bb1, %bb
-  %indvar = phi i64 [ 0, %bb ], [ %indvar.next, %bb1 ] ; <i64> [#uses=2]
-  %tmp16 = add i64 %indvar, %tmp15                ; <i64> [#uses=1]
-  %scevgep = getelementptr [128 x i64]* %a, i64 %tmp16, i64 %tmp17 ; <i64*> [#uses=1]
-  store i64 0, i64* %scevgep, align 8
-  %indvar.next = add i64 %indvar, 1               ; <i64> [#uses=2]
-  %exitcond = icmp eq i64 %indvar.next, %tmp13    ; <i1> [#uses=1]
+  %indvar = phi i64 [ 0, %bb ], [ %indvar.next, %bb1 ]
+  %tmp16 = add i64 %indvar, %tmp15
+  %scevgep = getelementptr [128 x i64]* %a, i64 %tmp16, i64 %tmp17
+  store i64 0, i64* %scevgep
+  %indvar.next = add i64 %indvar, 1
+  %exitcond = icmp eq i64 %indvar.next, %tmp13
   br i1 %exitcond, label %bb3, label %bb1
 
 bb3:                                              ; preds = %bb1, %bb
-  %6 = add nsw i64 %j.07, 1                       ; <i64> [#uses=2]
-  %exitcond22 = icmp eq i64 %6, %tmp21            ; <i1> [#uses=1]
+  %6 = add nsw i64 %j.07, 1
+  %exitcond22 = icmp eq i64 %6, %tmp21
   br i1 %exitcond22, label %return, label %bb
 
 return:                                           ; preds = %bb3, %entry
   ret void
 }
 
-; CHECK: Scop: entry => <Function Return>        Parameters: (%M, %N, ), Max Loop Depth: 2
+; CHECK: p0: %N
+; CHECK: p1: %M
+; CHECK: Statements {
+; CHECK:   Stmt_bb1
+; CHECK:         Domain :=
+; CHECK:             [N, M] -> { Stmt_bb1[i0, i1] : i0 >= 0 and i0 <= 2 + 4N + 7M and i1 >= 0 and i1 <= 10 + 5N - 6M - 4i0 and 4i0 <= 10 + 5N - 6M };
+; CHECK:         Scattering :=
+; CHECK:             [N, M] -> { Stmt_bb1[i0, i1] -> scattering[0, i0, 0, i1, 0] };
+; CHECK:     Reduction like: 0
+; CHECK:         MustWriteAccess :=
+; CHECK:             [N, M] -> { Stmt_bb1[i0, i1] -> MemRef_a[-1152 + 768M + 897i0 + 128i1] };
+; CHECK: }

Removed: polly/trunk/test/ScopInfo/loop_complex_parameter.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/loop_complex_parameter.ll?rev=211669&view=auto
==============================================================================
--- polly/trunk/test/ScopInfo/loop_complex_parameter.ll (original)
+++ polly/trunk/test/ScopInfo/loop_complex_parameter.ll (removed)
@@ -1,57 +0,0 @@
-; RUN: opt %loadPolly %defaultOpts  -polly-analyze-ir  -analyze < %s | FileCheck %s
-; RUN: opt %loadPolly %defaultOpts -polly-analyze-ir  -analyze < %s | FileCheck %s
-; XFAIL: *
-
-;void f(long a[][128], long N, long M) {
-;  long i, j;
-;  for (j = 0; j < (4*N + 7*M +3); ++j)
-;    for (i = 0; i < (5*N*M + 2); ++i)
-;        ...
-;}
-
-define void @f([128 x i64]* nocapture %a, i64 %N, i64 %M) nounwind {
-entry:
-  %0 = shl i64 %N, 2                              ; <i64> [#uses=2]
-  %1 = mul i64 %M, 7                              ; <i64> [#uses=2]
-  %2 = or i64 %0, 3                               ; <i64> [#uses=1]
-  %3 = add nsw i64 %2, %1                         ; <i64> [#uses=1]
-  %4 = icmp sgt i64 %3, 0                         ; <i1> [#uses=1]
-  br i1 %4, label %bb.nph8, label %return
-
-bb1:                                              ; preds = %bb2.preheader, %bb1
-  %i.06 = phi i64 [ 0, %bb2.preheader ], [ %5, %bb1 ] ; <i64> [#uses=2]
-  %scevgep = getelementptr [128 x i64]* %a, i64 %i.06, i64 %11 ; <i64*> [#uses=1]
-  store i64 0, i64* %scevgep, align 8
-  %5 = add nsw i64 %i.06, 1                       ; <i64> [#uses=2]
-  %exitcond = icmp eq i64 %5, %tmp10              ; <i1> [#uses=1]
-  br i1 %exitcond, label %bb3, label %bb1
-
-bb3:                                              ; preds = %bb1
-  %6 = add i64 %11, 1                             ; <i64> [#uses=2]
-  %exitcond15 = icmp eq i64 %6, %tmp14            ; <i1> [#uses=1]
-  br i1 %exitcond15, label %return, label %bb2.preheader
-
-bb.nph8:                                          ; preds = %entry
-  %7 = mul i64 %N, 5                              ; <i64> [#uses=1]
-  %8 = mul i64 %7, %M                             ; <i64> [#uses=1]
-  %9 = add nsw i64 %8, 2                          ; <i64> [#uses=1]
-  %10 = icmp sgt i64 %9, 0                        ; <i1> [#uses=1]
-  br i1 %10, label %bb.nph8.split, label %return
-
-bb.nph8.split:                                    ; preds = %bb.nph8
-  %tmp = mul i64 %M, %N                           ; <i64> [#uses=1]
-  %tmp9 = mul i64 %tmp, 5                         ; <i64> [#uses=1]
-  %tmp10 = add i64 %tmp9, 2                       ; <i64> [#uses=1]
-  %tmp13 = add i64 %1, %0                         ; <i64> [#uses=1]
-  %tmp14 = add i64 %tmp13, 3                      ; <i64> [#uses=1]
-  br label %bb2.preheader
-
-bb2.preheader:                                    ; preds = %bb.nph8.split, %bb3
-  %11 = phi i64 [ 0, %bb.nph8.split ], [ %6, %bb3 ] ; <i64> [#uses=2]
-  br label %bb1
-
-return:                                           ; preds = %bb.nph8, %bb3, %entry
-  ret void
-}
-
-; CHECK: TO BE WRITTEN

Removed: polly/trunk/test/ScopInfo/loop_depth_0.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/loop_depth_0.ll?rev=211669&view=auto
==============================================================================
--- polly/trunk/test/ScopInfo/loop_depth_0.ll (original)
+++ polly/trunk/test/ScopInfo/loop_depth_0.ll (removed)
@@ -1,56 +0,0 @@
-; RUN: opt %loadPolly %defaultOpts  -polly-analyze-ir  -analyze < %s | FileCheck %s
-; XFAIL: *
-;void f(long a[][128], long N, long M) {
-;  long i, j, k;
-;  for (j = 0; j < M; ++j)
-;    for (i = 0; i < N; ++i)
-;      a[i][j] = 4*i+5;
-
-;  for (k = 0; k < 64; ++k)
-;      a[4][k] = a[k][4];
-;}
-
-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"
-target triple = "x86_64-unknown-linux-gnu"
-
-define void @f([128 x i64]* nocapture %a, i64 %N, i64 %M) nounwind {
-entry:
-  %0 = icmp sgt i64 %M, 0                         ; <i1> [#uses=1]
-  %1 = icmp sgt i64 %N, 0                         ; <i1> [#uses=1]
-  %or.cond = and i1 %0, %1                        ; <i1> [#uses=1]
-  br i1 %or.cond, label %bb2.preheader, label %bb6
-
-bb1:                                              ; preds = %bb2.preheader, %bb1
-  %i.010 = phi i64 [ 0, %bb2.preheader ], [ %2, %bb1 ] ; <i64> [#uses=3]
-  %tmp = shl i64 %i.010, 2                        ; <i64> [#uses=1]
-  %tmp16 = add i64 %tmp, 5                        ; <i64> [#uses=1]
-  %scevgep17 = getelementptr [128 x i64]* %a, i64 %i.010, i64 %4 ; <i64*> [#uses=1]
-  store i64 %tmp16, i64* %scevgep17, align 8
-  %2 = add nsw i64 %i.010, 1                      ; <i64> [#uses=2]
-  %exitcond15 = icmp eq i64 %2, %N                ; <i1> [#uses=1]
-  br i1 %exitcond15, label %bb3, label %bb1
-
-bb3:                                              ; preds = %bb1
-  %3 = add i64 %4, 1                              ; <i64> [#uses=2]
-  %exitcond18 = icmp eq i64 %3, %M                ; <i1> [#uses=1]
-  br i1 %exitcond18, label %bb6, label %bb2.preheader
-
-bb2.preheader:                                    ; preds = %bb3, %entry
-  %4 = phi i64 [ %3, %bb3 ], [ 0, %entry ]        ; <i64> [#uses=2]
-  br label %bb1
-
-bb6:                                              ; preds = %bb6, %bb3, %entry
-  %k.09 = phi i64 [ %6, %bb6 ], [ 0, %bb3 ], [ 0, %entry ] ; <i64> [#uses=3]
-  %scevgep = getelementptr [128 x i64]* %a, i64 4, i64 %k.09 ; <i64*> [#uses=1]
-  %scevgep14 = getelementptr [128 x i64]* %a, i64 %k.09, i64 4 ; <i64*> [#uses=1]
-  %5 = load i64* %scevgep14, align 8              ; <i64> [#uses=1]
-  store i64 %5, i64* %scevgep, align 8
-  %6 = add nsw i64 %k.09, 1                       ; <i64> [#uses=2]
-  %exitcond = icmp eq i64 %6, 64                  ; <i1> [#uses=1]
-  br i1 %exitcond, label %return, label %bb6
-
-return:                                           ; preds = %bb6
-  ret void
-}
-
-; CHECK: Scop: entry => <Function Return> Parameters: (%N, %M, ), Max Loop Depth: 2

Removed: polly/trunk/test/ScopInfo/loop_multi_exits.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/loop_multi_exits.ll?rev=211669&view=auto
==============================================================================
--- polly/trunk/test/ScopInfo/loop_multi_exits.ll (original)
+++ polly/trunk/test/ScopInfo/loop_multi_exits.ll (removed)
@@ -1,101 +0,0 @@
-; RUN: opt %loadPolly %defaultOpts  -polly-analyze-ir  -analyze < %s | FileCheck %s  -check-prefix=INDVAR
-; RUN: opt %loadPolly %defaultOpts -polly-analyze-ir  -analyze < %s | FileCheck %s
-; XFAIL: *
-;From pollybench.
-;void f(long A[][128], long n) {
-; long k, i, j;
-; for (k = 0; k < n; k++) {
-;   for (j = k + 1; j < n; j++)
-;     A[k][j] = A[k][j] / A[k][k];
-;   for(i = k + 1; i < n; i++)
-;     for (j = k + 1; j < n; j++)
-;       A[i][j] = A[i][j] - A[i][k] * A[k][j];
-; }
-;}
-
-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-linux-gnu"
-
-define void @f([128 x i64]* nocapture %A, i64 %n) nounwind {
-entry:
-  %0 = icmp sgt i64 %n, 0                         ; <i1> [#uses=1]
-  br i1 %0, label %bb.nph30, label %return
-
-bb.nph:                                           ; preds = %bb2.preheader
-  %1 = getelementptr inbounds [128 x i64]* %A, i64 %k.023, i64 %k.023 ; <i64*> [#uses=1]
-  %tmp31 = sub i64 %tmp, %k.023                   ; <i64> [#uses=1]
-  %tmp32 = mul i64 %k.023, 129                    ; <i64> [#uses=1]
-  %tmp33 = add i64 %tmp32, 1                      ; <i64> [#uses=1]
-  br label %bb1
-
-bb1:                                              ; preds = %bb1, %bb.nph
-  %indvar = phi i64 [ 0, %bb.nph ], [ %indvar.next, %bb1 ] ; <i64> [#uses=2]
-  %tmp34 = add i64 %tmp33, %indvar                ; <i64> [#uses=1]
-  %scevgep = getelementptr [128 x i64]* %A, i64 0, i64 %tmp34 ; <i64*> [#uses=2]
-  %2 = load i64* %scevgep, align 8                ; <i64> [#uses=1]
-  %3 = load i64* %1, align 8                      ; <i64> [#uses=1]
-  %4 = sdiv i64 %2, %3                            ; <i64> [#uses=1]
-  store i64 %4, i64* %scevgep, align 8
-  %indvar.next = add i64 %indvar, 1               ; <i64> [#uses=2]
-  %exitcond = icmp eq i64 %indvar.next, %tmp31    ; <i1> [#uses=1]
-  br i1 %exitcond, label %bb8.loopexit, label %bb1
-
-bb.nph16:                                         ; preds = %bb.nph22, %bb8.loopexit12
-  %indvar39 = phi i64 [ 0, %bb.nph22 ], [ %tmp51, %bb8.loopexit12 ] ; <i64> [#uses=2]
-  %tmp48 = add i64 %j.013, %indvar39              ; <i64> [#uses=1]
-  %tmp51 = add i64 %indvar39, 1                   ; <i64> [#uses=3]
-  %scevgep53 = getelementptr [128 x i64]* %A, i64 %tmp51, i64 %tmp52 ; <i64*> [#uses=1]
-  %tmp37 = sub i64 %n, %j.013                     ; <i64> [#uses=1]
-  br label %bb5
-
-bb5:                                              ; preds = %bb5, %bb.nph16
-  %indvar35 = phi i64 [ 0, %bb.nph16 ], [ %indvar.next36, %bb5 ] ; <i64> [#uses=2]
-  %tmp49 = add i64 %j.013, %indvar35              ; <i64> [#uses=2]
-  %scevgep43 = getelementptr [128 x i64]* %A, i64 %tmp48, i64 %tmp49 ; <i64*> [#uses=2]
-  %scevgep44 = getelementptr [128 x i64]* %A, i64 %k.023, i64 %tmp49 ; <i64*> [#uses=1]
-  %5 = load i64* %scevgep43, align 8              ; <i64> [#uses=1]
-  %6 = load i64* %scevgep53, align 8              ; <i64> [#uses=1]
-  %7 = load i64* %scevgep44, align 8              ; <i64> [#uses=1]
-  %8 = mul nsw i64 %7, %6                         ; <i64> [#uses=1]
-  %9 = sub nsw i64 %5, %8                         ; <i64> [#uses=1]
-  store i64 %9, i64* %scevgep43, align 8
-  %indvar.next36 = add i64 %indvar35, 1           ; <i64> [#uses=2]
-  %exitcond38 = icmp eq i64 %indvar.next36, %tmp37 ; <i1> [#uses=1]
-  br i1 %exitcond38, label %bb8.loopexit12, label %bb5
-
-bb8.loopexit:                                     ; preds = %bb1
-  br i1 %10, label %bb.nph22, label %return
-
-bb8.loopexit12:                                   ; preds = %bb5
-  %exitcond47 = icmp eq i64 %tmp51, %tmp46        ; <i1> [#uses=1]
-  br i1 %exitcond47, label %bb10.loopexit, label %bb.nph16
-
-bb.nph22:                                         ; preds = %bb8.loopexit
-  %tmp46 = sub i64 %tmp, %k.023                   ; <i64> [#uses=1]
-  %tmp52 = mul i64 %k.023, 129                    ; <i64> [#uses=1]
-  br label %bb.nph16
-
-bb10.loopexit:                                    ; preds = %bb8.loopexit12
-  br i1 %10, label %bb2.preheader, label %return
-
-bb.nph30:                                         ; preds = %entry
-  %tmp = add i64 %n, -1                           ; <i64> [#uses=2]
-  br label %bb2.preheader
-
-bb2.preheader:                                    ; preds = %bb.nph30, %bb10.loopexit
-  %k.023 = phi i64 [ 0, %bb.nph30 ], [ %j.013, %bb10.loopexit ] ; <i64> [#uses=8]
-  %j.013 = add i64 %k.023, 1                      ; <i64> [#uses=5]
-  %10 = icmp slt i64 %j.013, %n                   ; <i1> [#uses=3]
-  br i1 %10, label %bb.nph, label %return
-
-return:                                           ; preds = %bb2.preheader, %bb10.loopexit, %bb8.loopexit, %entry
-  ret void
-}
-
-; CHECK: Scop: bb5 => bb8.loopexit12     Parameters: ({0,+,1}<%bb2.preheader>, %n, {0,+,1}<%bb.nph16>, ), Max Loop Depth: 1
-; CHECK: Scop: bb.nph16 => bb10.loopexit Parameters: ({0,+,1}<%bb2.preheader>, %n, ), Max Loop Depth: 2
-; CHECK: Scop: bb1 => bb8.loopexit       Parameters: ({0,+,1}<%bb2.preheader>, %n, ), Max Loop Depth: 1
-
-; INDVAR: Scop: bb1 => bb8.loopexit       Parameters: ({0,+,1}<%bb2.preheader>, %n, ), Max Loop Depth: 1
-; INDVAR: Scop: bb.nph16 => bb10.loopexit Parameters: ({0,+,1}<%bb2.preheader>, %n, ), Max Loop Depth: 2
-; INDVAR: Scop: bb5 => bb8.loopexit12     Parameters: ({0,+,1}<%bb2.preheader>, %n, {0,+,1}<%bb.nph16>, ), Max Loop Depth: 1

Removed: polly/trunk/test/ScopInfo/out_of_loop_0.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/out_of_loop_0.ll?rev=211669&view=auto
==============================================================================
--- polly/trunk/test/ScopInfo/out_of_loop_0.ll (original)
+++ polly/trunk/test/ScopInfo/out_of_loop_0.ll (removed)
@@ -1,35 +0,0 @@
-; RUN: opt %loadPolly %defaultOpts  -polly-analyze-ir  -analyze < %s | FileCheck %s
-; RUN: opt %loadPolly %defaultOpts -polly-analyze-ir  -analyze < %s | FileCheck %s
-; XFAIL: *
-;void f(long a[], long N, long M) {
-;  long i;
-
-;  for (i = 0; i < N; ++i)
-;   a[i] = i;
-
-;  a[M] = 0;
-;}
-
-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"
-target triple = "x86_64-unknown-linux-gnu"
-
-define void @f(i64* nocapture %a, i64 %N, i64 %M) nounwind {
-entry:
-  %0 = icmp sgt i64 %N, 0                         ; <i1> [#uses=1]
-  br i1 %0, label %bb, label %bb2
-
-bb:                                               ; preds = %bb, %entry
-  %1 = phi i64 [ 0, %entry ], [ %2, %bb ]         ; <i64> [#uses=3]
-  %scevgep = getelementptr i64* %a, i64 %1        ; <i64*> [#uses=1]
-  store i64 %1, i64* %scevgep, align 8
-  %2 = add nsw i64 %1, 1                          ; <i64> [#uses=2]
-  %exitcond = icmp eq i64 %2, %N                  ; <i1> [#uses=1]
-  br i1 %exitcond, label %bb2, label %bb
-
-bb2:                                              ; preds = %bb, %entry
-  %3 = getelementptr inbounds i64* %a, i64 %M     ; <i64*> [#uses=1]
-  store i64 0, i64* %3, align 8
-  ret void
-}
-
-; CHECK: Scop: entry => <Function Return>        Parameters: (%N, %M, )

Modified: polly/trunk/test/ScopInfo/simple_loop_1.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/simple_loop_1.ll?rev=211670&r1=211669&r2=211670&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/simple_loop_1.ll (original)
+++ polly/trunk/test/ScopInfo/simple_loop_1.ll Wed Jun 25 01:31:19 2014
@@ -1,30 +1,35 @@
-; RUN: opt %loadPolly %defaultOpts  -polly-analyze-ir  -analyze < %s | FileCheck %s
-; RUN: opt %loadPolly %defaultOpts -polly-analyze-ir  -analyze < %s | FileCheck %s
-; XFAIL: *
-;void f(int a[], int N) {
-;  int i;
-;  for (i = 0; i < N; ++i)
-;    ...
-;}
+; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
+
+; void f(int a[], int N) {
+;   int i;
+;   for (i = 0; i < N; ++i)
+;     a[i] = i;
+; }
 
 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"
 target triple = "x86_64-unknown-linux-gnu"
 
 define void @f(i64* nocapture %a, i64 %N) nounwind {
 entry:
-  %0 = icmp sgt i64 %N, 0                         ; <i1> [#uses=1]
-  br i1 %0, label %bb, label %return
+  br label %bb
 
 bb:                                               ; preds = %bb, %entry
-  %1 = phi i64 [ 0, %entry ], [ %2, %bb ]         ; <i64> [#uses=3]
-  %scevgep = getelementptr i64* %a, i64 %1        ; <i64*> [#uses=1]
-  store i64 %1, i64* %scevgep, align 8
-  %2 = add nsw i64 %1, 1                          ; <i64> [#uses=2]
-  %exitcond = icmp eq i64 %2, %N                  ; <i1> [#uses=1]
+  %i = phi i64 [ 0, %entry ], [ %i.inc, %bb ]
+  %scevgep = getelementptr i64* %a, i64 %i
+  store i64 %i, i64* %scevgep
+  %i.inc = add nsw i64 %i, 1
+  %exitcond = icmp eq i64 %i.inc, %N
   br i1 %exitcond, label %return, label %bb
 
 return:                                           ; preds = %bb, %entry
   ret void
 }
 
-; CHECK: Scop: entry => <Function Return>        Parameters: (%N, )
+; CHECK:  Stmt_bb
+; CHECK:        Domain :=
+; CHECK:            [N] -> { Stmt_bb[i0] : i0 >= 0 and i0 <= -1 + N };
+; CHECK:        Scattering :=
+; CHECK:            [N] -> { Stmt_bb[i0] -> scattering[0, i0, 0] };
+; CHECK:    Reduction like: 0
+; CHECK:        MustWriteAccess :=
+; CHECK:            [N] -> { Stmt_bb[i0] -> MemRef_a[i0] };





More information about the llvm-commits mailing list