brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.1 KiB · aec6ea0 Raw
91 lines · plain
1; RUN: opt %loadNPMPolly -polly-analysis-computeout=0 '-passes=polly-custom<scops>' -polly-print-scops -polly-rtc-max-parameters=8 -disable-output < %s | FileCheck %s --check-prefix=MAX82; RUN: opt %loadNPMPolly -polly-analysis-computeout=0 '-passes=polly-custom<scops>' -polly-print-scops -polly-rtc-max-parameters=7 -disable-output < %s | FileCheck %s --check-prefix=MAX73;4; Check that we allow this SCoP even though it has 10 parameters involved in possibly aliasing accesses.5; However, only 7 are involved in accesses through B, 8 through C and none in accesses through A.6;7; MAX8-LABEL:  Function: jd8; MAX8-NEXT: Region: %for.cond---%for.end9 10; MAX7:  Invalid Scop!11;12;    void jd(int *A, int *B, int *C, long p1, long p2, long p3, long p4, long p5,13;            long p6, long p7, long p8, long p9, long p10) {14;      for (int i = 0; i < 1024; i++)15;        A[i] = B[p1] - B[p2] + B[-p3] - B[p4] + B[p5] - B[-p6] + B[p7] - C[p3] +16;               C[-p4] - C[p5] + C[p6] - C[-p7] + C[p8] - C[p9] + C[-p10];17;    }18;19target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"20 21define void @jd(ptr %A, ptr %B, ptr %C, i64 %p1, i64 %p2, i64 %p3, i64 %p4, i64 %p5, i64 %p6, i64 %p7, i64 %p8, i64 %p9, i64 %p10) {22entry:23  br label %for.cond24 25for.cond:                                         ; preds = %for.inc, %entry26  %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc ], [ 0, %entry ]27  %exitcond = icmp ne i64 %indvars.iv, 102428  br i1 %exitcond, label %for.body, label %for.end29 30for.body:                                         ; preds = %for.cond31  %arrayidx = getelementptr inbounds i32, ptr %B, i64 %p132  %tmp = load i32, ptr %arrayidx, align 433  %arrayidx1 = getelementptr inbounds i32, ptr %B, i64 %p234  %tmp1 = load i32, ptr %arrayidx1, align 435  %sub = sub nsw i32 %tmp, %tmp136  %sub2 = sub nsw i64 0, %p337  %arrayidx3 = getelementptr inbounds i32, ptr %B, i64 %sub238  %tmp2 = load i32, ptr %arrayidx3, align 439  %add = add nsw i32 %sub, %tmp240  %arrayidx4 = getelementptr inbounds i32, ptr %B, i64 %p441  %tmp3 = load i32, ptr %arrayidx4, align 442  %sub5 = sub nsw i32 %add, %tmp343  %arrayidx6 = getelementptr inbounds i32, ptr %B, i64 %p544  %tmp4 = load i32, ptr %arrayidx6, align 445  %add7 = add nsw i32 %sub5, %tmp446  %sub8 = sub nsw i64 0, %p647  %arrayidx9 = getelementptr inbounds i32, ptr %B, i64 %sub848  %tmp5 = load i32, ptr %arrayidx9, align 449  %sub10 = sub nsw i32 %add7, %tmp550  %arrayidx11 = getelementptr inbounds i32, ptr %B, i64 %p751  %tmp6 = load i32, ptr %arrayidx11, align 452  %add12 = add nsw i32 %sub10, %tmp653  %arrayidx13 = getelementptr inbounds i32, ptr %C, i64 %p354  %tmp7 = load i32, ptr %arrayidx13, align 455  %sub14 = sub nsw i32 %add12, %tmp756  %sub15 = sub nsw i64 0, %p457  %arrayidx16 = getelementptr inbounds i32, ptr %C, i64 %sub1558  %tmp8 = load i32, ptr %arrayidx16, align 459  %add17 = add nsw i32 %sub14, %tmp860  %arrayidx18 = getelementptr inbounds i32, ptr %C, i64 %p561  %tmp9 = load i32, ptr %arrayidx18, align 462  %sub19 = sub nsw i32 %add17, %tmp963  %arrayidx20 = getelementptr inbounds i32, ptr %C, i64 %p664  %tmp10 = load i32, ptr %arrayidx20, align 465  %add21 = add nsw i32 %sub19, %tmp1066  %sub22 = sub nsw i64 0, %p767  %arrayidx23 = getelementptr inbounds i32, ptr %C, i64 %sub2268  %tmp11 = load i32, ptr %arrayidx23, align 469  %sub24 = sub nsw i32 %add21, %tmp1170  %arrayidx25 = getelementptr inbounds i32, ptr %C, i64 %p871  %tmp12 = load i32, ptr %arrayidx25, align 472  %add26 = add nsw i32 %sub24, %tmp1273  %arrayidx27 = getelementptr inbounds i32, ptr %C, i64 %p974  %tmp13 = load i32, ptr %arrayidx27, align 475  %sub28 = sub nsw i32 %add26, %tmp1376  %sub29 = sub nsw i64 0, %p1077  %arrayidx30 = getelementptr inbounds i32, ptr %C, i64 %sub2978  %tmp14 = load i32, ptr %arrayidx30, align 479  %add31 = add nsw i32 %sub28, %tmp1480  %arrayidx32 = getelementptr inbounds i32, ptr %A, i64 %indvars.iv81  store i32 %add31, ptr %arrayidx32, align 482  br label %for.inc83 84for.inc:                                          ; preds = %for.body85  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 186  br label %for.cond87 88for.end:                                          ; preds = %for.cond89  ret void90}91