brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.7 KiB · 1ee8a90 Raw
100 lines · plain
1; RUN: opt %loadNPMPolly -S '-passes=polly-custom<optree;delicm;opt-isl>' -polly-schedule-computeout=10000 -debug-only=polly-opt-isl < %s 2>&1 | FileCheck %s2; REQUIRES: asserts3 4; Bailout if the computations of schedule compute exceeds the max scheduling quota.5; Max compute out is initialized to 300000, Here it is set to 10000 for test purpose.6 7target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"8target triple = "aarch64-unknown-linux-gnu"9 10@a = dso_local local_unnamed_addr global ptr null, align 811@b = dso_local local_unnamed_addr global ptr null, align 812@c = dso_local local_unnamed_addr global ptr null, align 813 14define dso_local void @foo(i32 noundef %I, i32 noundef %J, i32 noundef %K1, i32 noundef %K2, i32 noundef %L1, i32 noundef %L2) local_unnamed_addr {15entry:16  %j = alloca i32, align 417  store volatile i32 0, ptr %j, align 418  %j.0.j.0.j.0.54 = load volatile i32, ptr %j, align 419  %cmp55 = icmp slt i32 %j.0.j.0.j.0.54, %J20  br i1 %cmp55, label %for.body.lr.ph, label %for.cond.cleanup21 22for.body.lr.ph:                                   ; preds = %entry23  %0 = load ptr, ptr @a, align 824  %1 = load ptr, ptr @b, align 825  %2 = load ptr, ptr %1, align 826  %cmp352 = icmp slt i32 %L1, %L227  %cmp750 = icmp slt i32 %K1, %K228  %3 = sext i32 %K1 to i6429  %4 = sext i32 %L1 to i6430  br label %for.body31 32for.cond.cleanup:                                 ; preds = %for.cond.cleanup4, %entry33  ret void34 35for.body:                                         ; preds = %for.cond.cleanup4, %for.body.lr.ph36  br i1 %cmp352, label %for.cond6.preheader.preheader, label %for.cond.cleanup437 38for.cond6.preheader.preheader:                    ; preds = %for.body39  %wide.trip.count66 = sext i32 %L2 to i6440  br label %for.cond6.preheader41 42for.cond6.preheader:                              ; preds = %for.cond.cleanup8, %for.cond6.preheader.preheader43  %indvars.iv61 = phi i64 [ %4, %for.cond6.preheader.preheader ], [ %indvars.iv.next62, %for.cond.cleanup8 ]44  br i1 %cmp750, label %for.cond10.preheader.lr.ph, label %for.cond.cleanup845 46for.cond10.preheader.lr.ph:                       ; preds = %for.cond6.preheader47  %5 = mul nsw i64 %indvars.iv61, 51648  %6 = mul nsw i64 %indvars.iv61, 51649  %wide.trip.count = sext i32 %K2 to i6450  br label %for.cond10.preheader51 52for.cond.cleanup4:                                ; preds = %for.cond.cleanup8, %for.body53  %j.0.j.0.j.0.45 = load volatile i32, ptr %j, align 454  %inc34 = add nsw i32 %j.0.j.0.j.0.45, 155  store volatile i32 %inc34, ptr %j, align 456  %j.0.j.0.j.0. = load volatile i32, ptr %j, align 457  %cmp = icmp slt i32 %j.0.j.0.j.0., %J58  br i1 %cmp, label %for.body, label %for.cond.cleanup59 60for.cond10.preheader:                             ; preds = %for.cond.cleanup12, %for.cond10.preheader.lr.ph61  %indvars.iv = phi i64 [ %3, %for.cond10.preheader.lr.ph ], [ %indvars.iv.next, %for.cond.cleanup12 ]62  %7 = getelementptr float, ptr %0, i64 %indvars.iv63  %arrayidx18 = getelementptr float, ptr %7, i64 %564  %8 = load float, ptr %arrayidx18, align 465  br label %for.cond14.preheader66 67for.cond.cleanup8:                                ; preds = %for.cond.cleanup12, %for.cond6.preheader68  %indvars.iv.next62 = add nsw i64 %indvars.iv61, 169  %exitcond67.not = icmp eq i64 %indvars.iv.next62, %wide.trip.count6670  br i1 %exitcond67.not, label %for.cond.cleanup4, label %for.cond6.preheader71 72for.cond14.preheader:                             ; preds = %for.cond.cleanup16, %for.cond10.preheader73  %m.049 = phi i32 [ -2, %for.cond10.preheader ], [ %inc21, %for.cond.cleanup16 ]74  %sum.048 = phi float [ 0.000000e+00, %for.cond10.preheader ], [ %add19, %for.cond.cleanup16 ]75  br label %for.body1776 77for.cond.cleanup12:                               ; preds = %for.cond.cleanup1678  %9 = getelementptr float, ptr %2, i64 %indvars.iv79  %arrayidx26 = getelementptr float, ptr %9, i64 %680  store float %add19, ptr %arrayidx26, align 481  %indvars.iv.next = add nsw i64 %indvars.iv, 182  %exitcond60.not = icmp eq i64 %indvars.iv.next, %wide.trip.count83  br i1 %exitcond60.not, label %for.cond.cleanup8, label %for.cond10.preheader84 85for.cond.cleanup16:                               ; preds = %for.body1786  %inc21 = add nsw i32 %m.049, 187  %exitcond56.not = icmp eq i32 %inc21, 388  br i1 %exitcond56.not, label %for.cond.cleanup12, label %for.cond14.preheader89 90for.body17:                                       ; preds = %for.body17, %for.cond14.preheader91  %n.047 = phi i32 [ -2, %for.cond14.preheader ], [ %inc, %for.body17 ]92  %sum.146 = phi float [ %sum.048, %for.cond14.preheader ], [ %add19, %for.body17 ]93  %add19 = fadd float %sum.146, %894  %inc = add nsw i32 %n.047, 195  %exitcond.not = icmp eq i32 %inc, 396  br i1 %exitcond.not, label %for.cond.cleanup16, label %for.body1797}98 99; CHECK: Schedule optimizer calculation exceeds ISL quota100