1; RUN: opt %loadNPMPolly -polly-only-func=f,g '-passes=print<polly-function-scops>' -disable-output < %s 2>&1 | FileCheck %s 2; 3; Check that the flag `-polly-only-func` limits analysis to `f` and `g`. 4; 5; CHECK: Function: f 6; CHECK-NEXT: Region: %for.cond---%for.end 7; 8; CHECK: Function: g 9; CHECK-NEXT: Region: %for.cond---%for.end 10; 11; CHECK-NOT: Function: h 12; 13; void f(int* sum) { 14; for (int i = 0; i <= 100; i++) 15; sum += i * 3; 16; } 17; void g(int* sum) { 18; for (int i = 0; i <= 100; i++) 19; sum += i * 3; 20; } 21; void h(int* sum) { 22; for (int i = 0; i <= 100; i++) 23; sum += i * 3; 24; } 25target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64" 26 27define void @f(ptr %sum) { 28entry: 29 br label %entry.split1 30 31entry.split1: ; preds = %entry 32 br label %entry.split 33 34entry.split: ; preds = %entry.split1 35 br label %for.cond 36 37for.cond: ; preds = %for.cond, %entry.split 38 %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ] 39 %sum.reload = load i32, ptr %sum 40 %mul = mul nsw i32 %i1.0, 3 41 %add = add nsw i32 %sum.reload, %mul 42 %inc = add nsw i32 %i1.0, 1 43 store i32 %add, ptr %sum 44 %cmp = icmp slt i32 %i1.0, 100 45 br i1 %cmp, label %for.cond, label %for.end 46 47for.end: ; preds = %for.cond 48 ret void 49} 50 51 52define void @g(ptr %sum) { 53entry: 54 br label %entry.split1 55 56entry.split1: ; preds = %entry 57 br label %entry.split 58 59entry.split: ; preds = %entry.split1 60 br label %for.cond 61 62for.cond: ; preds = %for.cond, %entry.split 63 %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ] 64 %sum.reload = load i32, ptr %sum 65 %mul = mul nsw i32 %i1.0, 3 66 %add = add nsw i32 %sum.reload, %mul 67 %inc = add nsw i32 %i1.0, 1 68 store i32 %add, ptr %sum 69 %cmp = icmp slt i32 %i1.0, 100 70 br i1 %cmp, label %for.cond, label %for.end 71 72for.end: ; preds = %for.cond 73 ret void 74} 75 76 77define void @h(ptr %sum) { 78entry: 79 br label %entry.split1 80 81entry.split1: ; preds = %entry 82 br label %entry.split 83 84entry.split: ; preds = %entry.split1 85 br label %for.cond 86 87for.cond: ; preds = %for.cond, %entry.split 88 %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ] 89 %sum.reload = load i32, ptr %sum 90 %mul = mul nsw i32 %i1.0, 3 91 %add = add nsw i32 %sum.reload, %mul 92 %inc = add nsw i32 %i1.0, 1 93 store i32 %add, ptr %sum 94 %cmp = icmp slt i32 %i1.0, 100 95 br i1 %cmp, label %for.cond, label %for.end 96 97for.end: ; preds = %for.cond 98 ret void 99} 100 101