62 lines · plain
1; RUN: opt -S %loadNPMPolly -aa-pipeline=basic-aa -polly-dependences-analysis-type=value-based '-passes=polly-custom<ast>' -polly-print-ast -disable-output < %s | FileCheck %s2; RUN: opt -S %loadNPMPolly -aa-pipeline=basic-aa -polly-dependences-analysis-type=value-based '-passes=polly-custom<dce;ast>' -polly-print-ast -disable-output < %s | FileCheck %s -check-prefix=CHECK-DCE3target 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"4;5; for(i = 0; i < 200; i++ )6; A[i] = 2;7;8; for (i = 0; i < 200; i++ )9; A[i] = 5;10;11; for (i = 0; i < 200; i++ )12; A[i] = 5;13define void @main() nounwind uwtable {14entry:15 %A = alloca [200 x i32], align 1616 br label %for.body.117 18for.body.1:19 %indvar.1 = phi i64 [ 0, %entry ], [ %indvar.next.1, %for.body.1 ]20 %arrayidx.1 = getelementptr [200 x i32], ptr %A, i64 0, i64 %indvar.121 store i32 2, ptr %arrayidx.1, align 422 %indvar.next.1 = add i64 %indvar.1, 123 %exitcond.1 = icmp ne i64 %indvar.next.1, 20024 br i1 %exitcond.1, label %for.body.1, label %exit.125 26exit.1:27 br label %for.body.228 29for.body.2:30 %indvar.2 = phi i64 [ 0, %exit.1 ], [ %indvar.next.2, %for.body.2 ]31 %arrayidx.2 = getelementptr [200 x i32], ptr %A, i64 0, i64 %indvar.232 store i32 5, ptr %arrayidx.2, align 433 %indvar.next.2 = add i64 %indvar.2, 134 %exitcond.2 = icmp ne i64 %indvar.next.2, 20035 br i1 %exitcond.2, label %for.body.2, label %exit.236 37exit.2:38 br label %for.body.339 40for.body.3:41 %indvar.3 = phi i64 [ 0, %exit.2 ], [ %indvar.next.3, %for.body.3 ]42 %arrayidx.3 = getelementptr [200 x i32], ptr %A, i64 0, i64 %indvar.343 store i32 7, ptr %arrayidx.3, align 444 %indvar.next.3 = add i64 %indvar.3, 145 %exitcond.3 = icmp ne i64 %indvar.next.3, 20046 br i1 %exitcond.3, label %for.body.3 , label %exit.347 48exit.3:49 ret void50}51 52; CHECK: for (int c0 = 0; c0 <= 199; c0 += 1)53; CHECK: Stmt_for_body_1(c0);54; CHECK: for (int c0 = 0; c0 <= 199; c0 += 1)55; CHECK: Stmt_for_body_2(c0);56; CHECK: for (int c0 = 0; c0 <= 199; c0 += 1)57; CHECK: Stmt_for_body_3(c0);58 59; CHECK-DCE: for (int c0 = 0; c0 <= 199; c0 += 1)60; CHECK-DCE: Stmt_for_body_3(c0);61 62