96 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<deps>' -polly-print-deps -debug-only=polly-dependence -disable-output < %s 2>&1 | FileCheck %s2;3; REQUIRES: asserts4;5; CHECK: Read: { [Stmt_for_cond[i0] -> MemRef_sum[0{{\]\]}} -> MemRef_sum[0] : 0 <= i0 <= 100 }6; CHECK-NEXT: Write: { [Stmt_for_cond[i0] -> MemRef_sum[0{{\]\]}} -> MemRef_sum[0] : 0 <= i0 <= 100 }7; CHECK-NEXT: MayWrite: { }8;9; CHECK: Wrapped Dependences:10; CHECK-NEXT: RAW dependences:11; CHECK-NEXT: { [Stmt_for_cond[i0] -> MemRef_sum[0{{\]\]}} -> [Stmt_for_cond[1 + i0] -> MemRef_sum[0{{\]\]}} : 0 <= i0 <= 99 }12; CHECK-NEXT: WAR dependences:13; CHECK-NEXT: { [Stmt_for_cond[i0] -> MemRef_sum[0{{\]\]}} -> [Stmt_for_cond[1 + i0] -> MemRef_sum[0{{\]\]}} : 0 <= i0 <= 99 }14; CHECK-NEXT: WAW dependences:15; CHECK-NEXT: { [Stmt_for_cond[i0] -> MemRef_sum[0{{\]\]}} -> [Stmt_for_cond[1 + i0] -> MemRef_sum[0{{\]\]}} : 0 <= i0 <= 99 }16; CHECK-NEXT: Reduction dependences:17; CHECK-NEXT: n/a18;19; CHECK: Final Wrapped Dependences:20; CHECK-NEXT: RAW dependences:21; CHECK-NEXT: { }22; CHECK-NEXT: WAR dependences:23; CHECK-NEXT: { }24; CHECK-NEXT: WAW dependences:25; CHECK-NEXT: { }26; CHECK-NEXT: Reduction dependences:27; CHECK-NEXT: { [Stmt_for_cond[i0] -> MemRef_sum[0{{\]\]}} -> [Stmt_for_cond[1 + i0] -> MemRef_sum[0{{\]\]}} : 0 <= i0 <= 99 }28;29; CHECK: Zipped Dependences:30; CHECK-NEXT: RAW dependences:31; CHECK-NEXT: { }32; CHECK-NEXT: WAR dependences:33; CHECK-NEXT: { }34; CHECK-NEXT: WAW dependences:35; CHECK-NEXT: { }36; CHECK-NEXT: Reduction dependences:37; CHECK-NEXT: { [Stmt_for_cond[i0] -> Stmt_for_cond[1 + i0{{\]\]}} -> [MemRef_sum[0] -> MemRef_sum[0{{\]\]}} : 0 <= i0 <= 99 }38;39; CHECK: Unwrapped Dependences:40; CHECK-NEXT: RAW dependences:41; CHECK-NEXT: { }42; CHECK-NEXT: WAR dependences:43; CHECK-NEXT: { }44; CHECK-NEXT: WAW dependences:45; CHECK-NEXT: { }46; CHECK-NEXT: Reduction dependences:47; CHECK-NEXT: { Stmt_for_cond[i0] -> Stmt_for_cond[1 + i0] : 0 <= i0 <= 99 }48;49; CHECK: RAW dependences:50; CHECK-NEXT: { }51; CHECK-NEXT: WAR dependences:52; CHECK-NEXT: { }53; CHECK-NEXT: WAW dependences:54; CHECK-NEXT: { }55; CHECK-NEXT: Reduction dependences:56; CHECK-NEXT: { Stmt_for_cond[i0] -> Stmt_for_cond[1 + i0] : 0 <= i0 <= 99 }57;58; CHECK: RAW dependences:59; CHECK-NEXT: { }60; CHECK-NEXT: WAR dependences:61; CHECK-NEXT: { }62; CHECK-NEXT: WAW dependences:63; CHECK-NEXT: { }64; CHECK-NEXT: Reduction dependences:65; CHECK-NEXT: { Stmt_for_cond[i0] -> Stmt_for_cond[1 + i0] : 0 <= i0 <= 99 }66;67; void f(int* sum) {68; for (int i = 0; i <= 100; i++)69; sum += i * 3;70; }71target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"72 73define void @f(ptr %sum) {74entry:75 br label %entry.split176 77entry.split1: ; preds = %entry78 br label %entry.split79 80entry.split: ; preds = %entry.split181 br label %for.cond82 83for.cond: ; preds = %for.cond, %entry.split84 %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]85 %sum.reload = load i32, ptr %sum86 %mul = mul nsw i32 %i1.0, 387 %add = add nsw i32 %sum.reload, %mul88 %inc = add nsw i32 %i1.0, 189 store i32 %add, ptr %sum90 %cmp = icmp slt i32 %i1.0, 10091 br i1 %cmp, label %for.cond, label %for.end92 93for.end: ; preds = %for.cond94 ret void95}96