From: Nikita Popov Date: Fri, 16 Dec 2022 10:58:04 +0000 (+0100) Subject: [DependenceAnalysis] Convert tests to opaque pointers (NFC) X-Git-Tag: upstream/17.0.6~23580 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2564096655fc51f6e02c2a65661bf0c8147887e3;p=platform%2Fupstream%2Fllvm.git [DependenceAnalysis] Convert tests to opaque pointers (NFC) --- diff --git a/llvm/test/Analysis/DependenceAnalysis/AA.ll b/llvm/test/Analysis/DependenceAnalysis/AA.ll index e6e9af1..a478143 100644 --- a/llvm/test/Analysis/DependenceAnalysis/AA.ll +++ b/llvm/test/Analysis/DependenceAnalysis/AA.ll @@ -5,9 +5,9 @@ ; CHECK: da analyze - none! ; CHECK: da analyze - confused! ; CHECK: da analyze - none! -define void @test_no_noalias(i32* %A, i32* %B) { - store i32 1, i32* %A - store i32 2, i32* %B +define void @test_no_noalias(ptr %A, ptr %B) { + store i32 1, ptr %A + store i32 2, ptr %B ret void } @@ -15,9 +15,9 @@ define void @test_no_noalias(i32* %A, i32* %B) { ; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - none! -define void @test_one_noalias(i32* noalias %A, i32* %B) { - store i32 1, i32* %A - store i32 2, i32* %B +define void @test_one_noalias(ptr noalias %A, ptr %B) { + store i32 1, ptr %A + store i32 2, ptr %B ret void } @@ -25,9 +25,9 @@ define void @test_one_noalias(i32* noalias %A, i32* %B) { ; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - none! -define void @test_two_noalias(i32* noalias %A, i32* noalias %B) { - store i32 1, i32* %A - store i32 2, i32* %B +define void @test_two_noalias(ptr noalias %A, ptr noalias %B) { + store i32 1, ptr %A + store i32 2, ptr %B ret void } @@ -36,9 +36,9 @@ define void @test_two_noalias(i32* noalias %A, i32* noalias %B) { ; CHECK: da analyze - confused! ; CHECK: da analyze - none! @g = global i32 5 -define void @test_global_alias(i32* %A) { - store i32 1, i32* %A - store i32 2, i32* @g +define void @test_global_alias(ptr %A) { + store i32 1, ptr %A + store i32 2, ptr @g ret void } @@ -46,9 +46,9 @@ define void @test_global_alias(i32* %A) { ; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - none! -define void @test_global_noalias(i32* noalias %A) { - store i32 1, i32* %A - store i32 2, i32* @g +define void @test_global_noalias(ptr noalias %A) { + store i32 1, ptr %A + store i32 2, ptr @g ret void } @@ -61,11 +61,11 @@ define void @test_global_noalias(i32* noalias %A) { ; CHECK: da analyze - none! @a = global i16 5, align 2 -@b = global i16* @a, align 4 +@b = global ptr @a, align 4 define void @test_global_size() { - %l0 = load i16*, i16** @b, align 4 - %l1 = load i16, i16* %l0, align 2 - store i16 1, i16* @a, align 2 + %l0 = load ptr, ptr @b, align 4 + %l1 = load i16, ptr %l0, align 2 + store i16 1, ptr @a, align 2 ret void } @@ -73,9 +73,9 @@ define void @test_global_size() { ; CHECK: da analyze - none! ; CHECK: da analyze - confused! ; CHECK: da analyze - none! -define void @test_tbaa_same(i32* %A, i32* %B) { - store i32 1, i32* %A, !tbaa !5 - store i32 2, i32* %B, !tbaa !5 +define void @test_tbaa_same(ptr %A, ptr %B) { + store i32 1, ptr %A, !tbaa !5 + store i32 2, ptr %B, !tbaa !5 ret void } @@ -83,9 +83,9 @@ define void @test_tbaa_same(i32* %A, i32* %B) { ; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - none! -define void @test_tbaa_diff(i32* %A, i16* %B) { - store i32 1, i32* %A, !tbaa !5 - store i16 2, i16* %B, !tbaa !9 +define void @test_tbaa_diff(ptr %A, ptr %B) { + store i32 1, ptr %A, !tbaa !5 + store i16 2, ptr %B, !tbaa !9 ret void } @@ -93,7 +93,7 @@ define void @test_tbaa_diff(i32* %A, i16* %B) { ; CHECK: da analyze - input ; CHECK: da analyze - none ; CHECK: da analyze - output -define void @tbaa_loop(i32 %I, i32 %J, i32* nocapture %A, i16* nocapture readonly %B) { +define void @tbaa_loop(i32 %I, i32 %J, ptr nocapture %A, ptr nocapture readonly %B) { entry: %cmp = icmp ne i32 %J, 0 %cmp122 = icmp ne i32 %I, 0 @@ -110,8 +110,8 @@ for.outer: for.inner: %j.us = phi i32 [ 0, %for.outer ], [ %inc.us, %for.inner ] %sum1.us = phi i32 [ 0, %for.outer ], [ %add.us, %for.inner ] - %arrayidx.us = getelementptr inbounds i16, i16* %B, i32 %j.us - %0 = load i16, i16* %arrayidx.us, align 4, !tbaa !9 + %arrayidx.us = getelementptr inbounds i16, ptr %B, i32 %j.us + %0 = load i16, ptr %arrayidx.us, align 4, !tbaa !9 %sext = sext i16 %0 to i32 %add.us = add i32 %sext, %sum1.us %inc.us = add nuw i32 %j.us, 1 @@ -120,8 +120,8 @@ for.inner: for.latch: %add.us.lcssa = phi i32 [ %add.us, %for.inner ] - %arrayidx6.us = getelementptr inbounds i32, i32* %A, i32 %i.us - store i32 %add.us.lcssa, i32* %arrayidx6.us, align 4, !tbaa !5 + %arrayidx6.us = getelementptr inbounds i32, ptr %A, i32 %i.us + store i32 %add.us.lcssa, ptr %arrayidx6.us, align 4, !tbaa !5 %add8.us = add nuw i32 %i.us, 1 %exitcond25 = icmp eq i32 %add8.us, %I br i1 %exitcond25, label %for.end.loopexit, label %for.outer diff --git a/llvm/test/Analysis/DependenceAnalysis/Banerjee.ll b/llvm/test/Analysis/DependenceAnalysis/Banerjee.ll index 9d2b854..efc86d3 100644 --- a/llvm/test/Analysis/DependenceAnalysis/Banerjee.ll +++ b/llvm/test/Analysis/DependenceAnalysis/Banerjee.ll @@ -14,7 +14,7 @@ target triple = "x86_64-apple-macosx10.6.0" ;; A[10*i + j] = 0; ;; *B++ = A[10*i + j - 1]; -define void @banerjee0(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { +define void @banerjee0(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader ; CHECK: 'Dependence Analysis' for function 'banerjee0': @@ -42,30 +42,30 @@ entry: ; DELIN: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc7 - %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ] + %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc7 ] %i.03 = phi i64 [ 1, %entry ], [ %inc8, %for.inc7 ] br label %for.body3 for.body3: ; preds = %for.cond1.preheader, %for.body3 %j.02 = phi i64 [ 1, %for.cond1.preheader ], [ %inc, %for.body3 ] - %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] + %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] %mul = mul nsw i64 %i.03, 10 %add = add nsw i64 %mul, %j.02 - %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add - store i64 0, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add + store i64 0, ptr %arrayidx, align 8 %mul4 = mul nsw i64 %i.03, 10 %add5 = add nsw i64 %mul4, %j.02 %sub = add nsw i64 %add5, -1 - %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub - %0 = load i64, i64* %arrayidx6, align 8 - %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 - store i64 %0, i64* %B.addr.11, align 8 + %arrayidx6 = getelementptr inbounds i64, ptr %A, i64 %sub + %0 = load i64, ptr %arrayidx6, align 8 + %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1 + store i64 %0, ptr %B.addr.11, align 8 %inc = add nsw i64 %j.02, 1 %exitcond = icmp ne i64 %inc, 11 br i1 %exitcond, label %for.body3, label %for.inc7 for.inc7: ; preds = %for.body3 - %scevgep = getelementptr i64, i64* %B.addr.04, i64 10 + %scevgep = getelementptr i64, ptr %B.addr.04, i64 10 %inc8 = add nsw i64 %i.03, 1 %exitcond5 = icmp ne i64 %inc8, 11 br i1 %exitcond5, label %for.cond1.preheader, label %for.end9 @@ -80,7 +80,7 @@ for.end9: ; preds = %for.inc7 ;; A[10*i + j] = 0; ;; *B++ = A[10*i + j - 1]; -define void @banerjee1(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { +define void @banerjee1(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: %cmp4 = icmp sgt i64 %n, 0 br i1 %cmp4, label %for.cond1.preheader.preheader, label %for.end9 @@ -114,7 +114,7 @@ for.cond1.preheader.preheader: ; preds = %entry br label %for.cond1.preheader for.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc7 - %B.addr.06 = phi i64* [ %B.addr.1.lcssa, %for.inc7 ], [ %B, %for.cond1.preheader.preheader ] + %B.addr.06 = phi ptr [ %B.addr.1.lcssa, %for.inc7 ], [ %B, %for.cond1.preheader.preheader ] %i.05 = phi i64 [ %inc8, %for.inc7 ], [ 1, %for.cond1.preheader.preheader ] %1 = add i64 %m, 1 %cmp21 = icmp sgt i64 %m, 0 @@ -125,28 +125,28 @@ for.body3.preheader: ; preds = %for.cond1.preheader for.body3: ; preds = %for.body3.preheader, %for.body3 %j.03 = phi i64 [ %inc, %for.body3 ], [ 1, %for.body3.preheader ] - %B.addr.12 = phi i64* [ %incdec.ptr, %for.body3 ], [ %B.addr.06, %for.body3.preheader ] + %B.addr.12 = phi ptr [ %incdec.ptr, %for.body3 ], [ %B.addr.06, %for.body3.preheader ] %mul = mul nsw i64 %i.05, 10 %add = add nsw i64 %mul, %j.03 - %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add - store i64 0, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add + store i64 0, ptr %arrayidx, align 8 %mul4 = mul nsw i64 %i.05, 10 %add5 = add nsw i64 %mul4, %j.03 %sub = add nsw i64 %add5, -1 - %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub - %2 = load i64, i64* %arrayidx6, align 8 - %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.12, i64 1 - store i64 %2, i64* %B.addr.12, align 8 + %arrayidx6 = getelementptr inbounds i64, ptr %A, i64 %sub + %2 = load i64, ptr %arrayidx6, align 8 + %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.12, i64 1 + store i64 %2, ptr %B.addr.12, align 8 %inc = add nsw i64 %j.03, 1 %exitcond = icmp eq i64 %inc, %1 br i1 %exitcond, label %for.inc7.loopexit, label %for.body3 for.inc7.loopexit: ; preds = %for.body3 - %scevgep = getelementptr i64, i64* %B.addr.06, i64 %m + %scevgep = getelementptr i64, ptr %B.addr.06, i64 %m br label %for.inc7 for.inc7: ; preds = %for.inc7.loopexit, %for.cond1.preheader - %B.addr.1.lcssa = phi i64* [ %B.addr.06, %for.cond1.preheader ], [ %scevgep, %for.inc7.loopexit ] + %B.addr.1.lcssa = phi ptr [ %B.addr.06, %for.cond1.preheader ], [ %scevgep, %for.inc7.loopexit ] %inc8 = add nsw i64 %i.05, 1 %exitcond7 = icmp eq i64 %inc8, %0 br i1 %exitcond7, label %for.end9.loopexit, label %for.cond1.preheader @@ -164,7 +164,7 @@ for.end9: ; preds = %for.end9.loopexit, ;; A[10*i + j] = 0; ;; *B++ = A[10*i + j + 100]; -define void @banerjee2(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { +define void @banerjee2(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader @@ -193,30 +193,30 @@ entry: ; DELIN: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc8 - %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ] + %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc8 ] %i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ] br label %for.body3 for.body3: ; preds = %for.cond1.preheader, %for.body3 %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] - %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] + %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] %mul = mul nsw i64 %i.03, 10 %add = add nsw i64 %mul, %j.02 - %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add - store i64 0, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add + store i64 0, ptr %arrayidx, align 8 %mul4 = mul nsw i64 %i.03, 10 %add5 = add nsw i64 %mul4, %j.02 %add6 = add nsw i64 %add5, 100 - %arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6 - %0 = load i64, i64* %arrayidx7, align 8 - %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 - store i64 %0, i64* %B.addr.11, align 8 + %arrayidx7 = getelementptr inbounds i64, ptr %A, i64 %add6 + %0 = load i64, ptr %arrayidx7, align 8 + %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1 + store i64 %0, ptr %B.addr.11, align 8 %inc = add nsw i64 %j.02, 1 %exitcond = icmp ne i64 %inc, 10 br i1 %exitcond, label %for.body3, label %for.inc8 for.inc8: ; preds = %for.body3 - %scevgep = getelementptr i64, i64* %B.addr.04, i64 10 + %scevgep = getelementptr i64, ptr %B.addr.04, i64 10 %inc9 = add nsw i64 %i.03, 1 %exitcond5 = icmp ne i64 %inc9, 10 br i1 %exitcond5, label %for.cond1.preheader, label %for.end10 @@ -231,7 +231,7 @@ for.end10: ; preds = %for.inc8 ;; A[10*i + j] = 0; ;; *B++ = A[10*i + j + 99]; -define void @banerjee3(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { +define void @banerjee3(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader @@ -260,30 +260,30 @@ entry: ; DELIN: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc8 - %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ] + %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc8 ] %i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ] br label %for.body3 for.body3: ; preds = %for.cond1.preheader, %for.body3 %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] - %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] + %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] %mul = mul nsw i64 %i.03, 10 %add = add nsw i64 %mul, %j.02 - %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add - store i64 0, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add + store i64 0, ptr %arrayidx, align 8 %mul4 = mul nsw i64 %i.03, 10 %add5 = add nsw i64 %mul4, %j.02 %add6 = add nsw i64 %add5, 99 - %arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6 - %0 = load i64, i64* %arrayidx7, align 8 - %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 - store i64 %0, i64* %B.addr.11, align 8 + %arrayidx7 = getelementptr inbounds i64, ptr %A, i64 %add6 + %0 = load i64, ptr %arrayidx7, align 8 + %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1 + store i64 %0, ptr %B.addr.11, align 8 %inc = add nsw i64 %j.02, 1 %exitcond = icmp ne i64 %inc, 10 br i1 %exitcond, label %for.body3, label %for.inc8 for.inc8: ; preds = %for.body3 - %scevgep = getelementptr i64, i64* %B.addr.04, i64 10 + %scevgep = getelementptr i64, ptr %B.addr.04, i64 10 %inc9 = add nsw i64 %i.03, 1 %exitcond5 = icmp ne i64 %inc9, 10 br i1 %exitcond5, label %for.cond1.preheader, label %for.end10 @@ -298,7 +298,7 @@ for.end10: ; preds = %for.inc8 ;; A[10*i + j] = 0; ;; *B++ = A[10*i + j - 100]; -define void @banerjee4(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { +define void @banerjee4(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader @@ -327,30 +327,30 @@ entry: ; DELIN: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc7 - %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ] + %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc7 ] %i.03 = phi i64 [ 0, %entry ], [ %inc8, %for.inc7 ] br label %for.body3 for.body3: ; preds = %for.cond1.preheader, %for.body3 %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] - %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] + %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] %mul = mul nsw i64 %i.03, 10 %add = add nsw i64 %mul, %j.02 - %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add - store i64 0, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add + store i64 0, ptr %arrayidx, align 8 %mul4 = mul nsw i64 %i.03, 10 %add5 = add nsw i64 %mul4, %j.02 %sub = add nsw i64 %add5, -100 - %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub - %0 = load i64, i64* %arrayidx6, align 8 - %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 - store i64 %0, i64* %B.addr.11, align 8 + %arrayidx6 = getelementptr inbounds i64, ptr %A, i64 %sub + %0 = load i64, ptr %arrayidx6, align 8 + %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1 + store i64 %0, ptr %B.addr.11, align 8 %inc = add nsw i64 %j.02, 1 %exitcond = icmp ne i64 %inc, 10 br i1 %exitcond, label %for.body3, label %for.inc7 for.inc7: ; preds = %for.body3 - %scevgep = getelementptr i64, i64* %B.addr.04, i64 10 + %scevgep = getelementptr i64, ptr %B.addr.04, i64 10 %inc8 = add nsw i64 %i.03, 1 %exitcond5 = icmp ne i64 %inc8, 10 br i1 %exitcond5, label %for.cond1.preheader, label %for.end9 @@ -365,7 +365,7 @@ for.end9: ; preds = %for.inc7 ;; A[10*i + j] = 0; ;; *B++ = A[10*i + j - 99]; -define void @banerjee5(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { +define void @banerjee5(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader @@ -394,30 +394,30 @@ entry: ; DELIN: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc7 - %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ] + %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc7 ] %i.03 = phi i64 [ 0, %entry ], [ %inc8, %for.inc7 ] br label %for.body3 for.body3: ; preds = %for.cond1.preheader, %for.body3 %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] - %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] + %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] %mul = mul nsw i64 %i.03, 10 %add = add nsw i64 %mul, %j.02 - %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add - store i64 0, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add + store i64 0, ptr %arrayidx, align 8 %mul4 = mul nsw i64 %i.03, 10 %add5 = add nsw i64 %mul4, %j.02 %sub = add nsw i64 %add5, -99 - %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub - %0 = load i64, i64* %arrayidx6, align 8 - %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 - store i64 %0, i64* %B.addr.11, align 8 + %arrayidx6 = getelementptr inbounds i64, ptr %A, i64 %sub + %0 = load i64, ptr %arrayidx6, align 8 + %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1 + store i64 %0, ptr %B.addr.11, align 8 %inc = add nsw i64 %j.02, 1 %exitcond = icmp ne i64 %inc, 10 br i1 %exitcond, label %for.body3, label %for.inc7 for.inc7: ; preds = %for.body3 - %scevgep = getelementptr i64, i64* %B.addr.04, i64 10 + %scevgep = getelementptr i64, ptr %B.addr.04, i64 10 %inc8 = add nsw i64 %i.03, 1 %exitcond5 = icmp ne i64 %inc8, 10 br i1 %exitcond5, label %for.cond1.preheader, label %for.end9 @@ -432,7 +432,7 @@ for.end9: ; preds = %for.inc7 ;; A[10*i + j] = 0; ;; *B++ = A[10*i + j + 9]; -define void @banerjee6(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { +define void @banerjee6(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader @@ -461,30 +461,30 @@ entry: ; DELIN: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc8 - %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ] + %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc8 ] %i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ] br label %for.body3 for.body3: ; preds = %for.cond1.preheader, %for.body3 %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] - %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] + %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] %mul = mul nsw i64 %i.03, 10 %add = add nsw i64 %mul, %j.02 - %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add - store i64 0, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add + store i64 0, ptr %arrayidx, align 8 %mul4 = mul nsw i64 %i.03, 10 %add5 = add nsw i64 %mul4, %j.02 %add6 = add nsw i64 %add5, 9 - %arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6 - %0 = load i64, i64* %arrayidx7, align 8 - %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 - store i64 %0, i64* %B.addr.11, align 8 + %arrayidx7 = getelementptr inbounds i64, ptr %A, i64 %add6 + %0 = load i64, ptr %arrayidx7, align 8 + %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1 + store i64 %0, ptr %B.addr.11, align 8 %inc = add nsw i64 %j.02, 1 %exitcond = icmp ne i64 %inc, 10 br i1 %exitcond, label %for.body3, label %for.inc8 for.inc8: ; preds = %for.body3 - %scevgep = getelementptr i64, i64* %B.addr.04, i64 10 + %scevgep = getelementptr i64, ptr %B.addr.04, i64 10 %inc9 = add nsw i64 %i.03, 1 %exitcond5 = icmp ne i64 %inc9, 10 br i1 %exitcond5, label %for.cond1.preheader, label %for.end10 @@ -499,7 +499,7 @@ for.end10: ; preds = %for.inc8 ;; A[10*i + j] = 0; ;; *B++ = A[10*i + j + 10]; -define void @banerjee7(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { +define void @banerjee7(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader @@ -528,30 +528,30 @@ entry: ; DELIN: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc8 - %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ] + %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc8 ] %i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ] br label %for.body3 for.body3: ; preds = %for.cond1.preheader, %for.body3 %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] - %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] + %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] %mul = mul nsw i64 %i.03, 10 %add = add nsw i64 %mul, %j.02 - %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add - store i64 0, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add + store i64 0, ptr %arrayidx, align 8 %mul4 = mul nsw i64 %i.03, 10 %add5 = add nsw i64 %mul4, %j.02 %add6 = add nsw i64 %add5, 10 - %arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6 - %0 = load i64, i64* %arrayidx7, align 8 - %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 - store i64 %0, i64* %B.addr.11, align 8 + %arrayidx7 = getelementptr inbounds i64, ptr %A, i64 %add6 + %0 = load i64, ptr %arrayidx7, align 8 + %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1 + store i64 %0, ptr %B.addr.11, align 8 %inc = add nsw i64 %j.02, 1 %exitcond = icmp ne i64 %inc, 10 br i1 %exitcond, label %for.body3, label %for.inc8 for.inc8: ; preds = %for.body3 - %scevgep = getelementptr i64, i64* %B.addr.04, i64 10 + %scevgep = getelementptr i64, ptr %B.addr.04, i64 10 %inc9 = add nsw i64 %i.03, 1 %exitcond5 = icmp ne i64 %inc9, 10 br i1 %exitcond5, label %for.cond1.preheader, label %for.end10 @@ -566,7 +566,7 @@ for.end10: ; preds = %for.inc8 ;; A[10*i + j] = 0; ;; *B++ = A[10*i + j + 11]; -define void @banerjee8(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { +define void @banerjee8(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader @@ -595,30 +595,30 @@ entry: ; DELIN: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc8 - %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ] + %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc8 ] %i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ] br label %for.body3 for.body3: ; preds = %for.cond1.preheader, %for.body3 %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] - %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] + %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] %mul = mul nsw i64 %i.03, 10 %add = add nsw i64 %mul, %j.02 - %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add - store i64 0, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add + store i64 0, ptr %arrayidx, align 8 %mul4 = mul nsw i64 %i.03, 10 %add5 = add nsw i64 %mul4, %j.02 %add6 = add nsw i64 %add5, 11 - %arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6 - %0 = load i64, i64* %arrayidx7, align 8 - %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 - store i64 %0, i64* %B.addr.11, align 8 + %arrayidx7 = getelementptr inbounds i64, ptr %A, i64 %add6 + %0 = load i64, ptr %arrayidx7, align 8 + %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1 + store i64 %0, ptr %B.addr.11, align 8 %inc = add nsw i64 %j.02, 1 %exitcond = icmp ne i64 %inc, 10 br i1 %exitcond, label %for.body3, label %for.inc8 for.inc8: ; preds = %for.body3 - %scevgep = getelementptr i64, i64* %B.addr.04, i64 10 + %scevgep = getelementptr i64, ptr %B.addr.04, i64 10 %inc9 = add nsw i64 %i.03, 1 %exitcond5 = icmp ne i64 %inc9, 10 br i1 %exitcond5, label %for.cond1.preheader, label %for.end10 @@ -633,7 +633,7 @@ for.end10: ; preds = %for.inc8 ;; A[30*i + 500*j] = 0; ;; *B++ = A[i - 500*j + 11]; -define void @banerjee9(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { +define void @banerjee9(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader @@ -662,31 +662,31 @@ entry: ; DELIN: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc8 - %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ] + %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc8 ] %i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ] br label %for.body3 for.body3: ; preds = %for.cond1.preheader, %for.body3 %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] - %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] + %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] %mul = mul nsw i64 %i.03, 30 %mul4 = mul nsw i64 %j.02, 500 %add = add nsw i64 %mul, %mul4 - %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add - store i64 0, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add + store i64 0, ptr %arrayidx, align 8 %0 = mul i64 %j.02, -500 %sub = add i64 %i.03, %0 %add6 = add nsw i64 %sub, 11 - %arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6 - %1 = load i64, i64* %arrayidx7, align 8 - %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 - store i64 %1, i64* %B.addr.11, align 8 + %arrayidx7 = getelementptr inbounds i64, ptr %A, i64 %add6 + %1 = load i64, ptr %arrayidx7, align 8 + %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1 + store i64 %1, ptr %B.addr.11, align 8 %inc = add nsw i64 %j.02, 1 %exitcond = icmp ne i64 %inc, 20 br i1 %exitcond, label %for.body3, label %for.inc8 for.inc8: ; preds = %for.body3 - %scevgep = getelementptr i64, i64* %B.addr.04, i64 20 + %scevgep = getelementptr i64, ptr %B.addr.04, i64 20 %inc9 = add nsw i64 %i.03, 1 %exitcond5 = icmp ne i64 %inc9, 20 br i1 %exitcond5, label %for.cond1.preheader, label %for.end10 @@ -701,7 +701,7 @@ for.end10: ; preds = %for.inc8 ;; A[i + 500*j] = 0; ;; *B++ = A[i - 500*j + 11]; -define void @banerjee10(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { +define void @banerjee10(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader @@ -730,30 +730,30 @@ entry: ; DELIN: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc7 - %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ] + %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc7 ] %i.03 = phi i64 [ 0, %entry ], [ %inc8, %for.inc7 ] br label %for.body3 for.body3: ; preds = %for.cond1.preheader, %for.body3 %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] - %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] + %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] %mul = mul nsw i64 %j.02, 500 %add = add nsw i64 %i.03, %mul - %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add - store i64 0, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add + store i64 0, ptr %arrayidx, align 8 %0 = mul i64 %j.02, -500 %sub = add i64 %i.03, %0 %add5 = add nsw i64 %sub, 11 - %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %add5 - %1 = load i64, i64* %arrayidx6, align 8 - %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 - store i64 %1, i64* %B.addr.11, align 8 + %arrayidx6 = getelementptr inbounds i64, ptr %A, i64 %add5 + %1 = load i64, ptr %arrayidx6, align 8 + %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1 + store i64 %1, ptr %B.addr.11, align 8 %inc = add nsw i64 %j.02, 1 %exitcond = icmp ne i64 %inc, 20 br i1 %exitcond, label %for.body3, label %for.inc7 for.inc7: ; preds = %for.body3 - %scevgep = getelementptr i64, i64* %B.addr.04, i64 20 + %scevgep = getelementptr i64, ptr %B.addr.04, i64 20 %inc8 = add nsw i64 %i.03, 1 %exitcond5 = icmp ne i64 %inc8, 20 br i1 %exitcond5, label %for.cond1.preheader, label %for.end9 @@ -768,7 +768,7 @@ for.end9: ; preds = %for.inc7 ;; A[300*i + j] = 0; ;; *B++ = A[250*i - j + 11]; -define void @banerjee11(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { +define void @banerjee11(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader @@ -797,30 +797,30 @@ entry: ; DELIN: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc7 - %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ] + %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc7 ] %i.03 = phi i64 [ 0, %entry ], [ %inc8, %for.inc7 ] br label %for.body3 for.body3: ; preds = %for.cond1.preheader, %for.body3 %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] - %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] + %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] %mul = mul nsw i64 %i.03, 300 %add = add nsw i64 %mul, %j.02 - %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add - store i64 0, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add + store i64 0, ptr %arrayidx, align 8 %mul4 = mul nsw i64 %i.03, 250 %sub = sub nsw i64 %mul4, %j.02 %add5 = add nsw i64 %sub, 11 - %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %add5 - %0 = load i64, i64* %arrayidx6, align 8 - %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 - store i64 %0, i64* %B.addr.11, align 8 + %arrayidx6 = getelementptr inbounds i64, ptr %A, i64 %add5 + %0 = load i64, ptr %arrayidx6, align 8 + %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1 + store i64 %0, ptr %B.addr.11, align 8 %inc = add nsw i64 %j.02, 1 %exitcond = icmp ne i64 %inc, 20 br i1 %exitcond, label %for.body3, label %for.inc7 for.inc7: ; preds = %for.body3 - %scevgep = getelementptr i64, i64* %B.addr.04, i64 20 + %scevgep = getelementptr i64, ptr %B.addr.04, i64 20 %inc8 = add nsw i64 %i.03, 1 %exitcond5 = icmp ne i64 %inc8, 20 br i1 %exitcond5, label %for.cond1.preheader, label %for.end9 @@ -835,7 +835,7 @@ for.end9: ; preds = %for.inc7 ;; A[100*i + j] = 0; ;; *B++ = A[100*i - j + 11]; -define void @banerjee12(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { +define void @banerjee12(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader @@ -864,30 +864,30 @@ entry: ; DELIN: da analyze - none! for.cond1.preheader: ; preds = %entry, %for.inc7 - %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ] + %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc7 ] %i.03 = phi i64 [ 0, %entry ], [ %inc8, %for.inc7 ] br label %for.body3 for.body3: ; preds = %for.cond1.preheader, %for.body3 %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] - %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] + %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] %mul = mul nsw i64 %i.03, 100 %add = add nsw i64 %mul, %j.02 - %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add - store i64 0, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add + store i64 0, ptr %arrayidx, align 8 %mul4 = mul nsw i64 %i.03, 100 %sub = sub nsw i64 %mul4, %j.02 %add5 = add nsw i64 %sub, 11 - %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %add5 - %0 = load i64, i64* %arrayidx6, align 8 - %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 - store i64 %0, i64* %B.addr.11, align 8 + %arrayidx6 = getelementptr inbounds i64, ptr %A, i64 %add5 + %0 = load i64, ptr %arrayidx6, align 8 + %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1 + store i64 %0, ptr %B.addr.11, align 8 %inc = add nsw i64 %j.02, 1 %exitcond = icmp ne i64 %inc, 20 br i1 %exitcond, label %for.body3, label %for.inc7 for.inc7: ; preds = %for.body3 - %scevgep = getelementptr i64, i64* %B.addr.04, i64 20 + %scevgep = getelementptr i64, ptr %B.addr.04, i64 20 %inc8 = add nsw i64 %i.03, 1 %exitcond5 = icmp ne i64 %inc8, 20 br i1 %exitcond5, label %for.cond1.preheader, label %for.end9 diff --git a/llvm/test/Analysis/DependenceAnalysis/BasePtrBug.ll b/llvm/test/Analysis/DependenceAnalysis/BasePtrBug.ll index d41ca37..354ea5d 100644 --- a/llvm/test/Analysis/DependenceAnalysis/BasePtrBug.ll +++ b/llvm/test/Analysis/DependenceAnalysis/BasePtrBug.ll @@ -15,25 +15,25 @@ ; CHECK-LABEL: test1 ; CHECK: da analyze - input [*|<]! -define void @test1(i32* nocapture %A, i32* nocapture %B, i32 %N) #0 { +define void @test1(ptr nocapture %A, ptr nocapture %B, i32 %N) #0 { entry: %cmp9 = icmp sgt i32 %N, 0 br i1 %cmp9, label %for.body.lr.ph, label %for.end for.body.lr.ph: %div = sdiv i32 %N, 2 - %bot.gep = getelementptr i32, i32* %A, i32 %div + %bot.gep = getelementptr i32, ptr %A, i32 %div br label %for.body for.body: %i = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.body ] - %gep.0 = getelementptr i32, i32* %A, i32 %i - %gep.1 = getelementptr i32, i32* %bot.gep, i32 %i - %gep.B = getelementptr i32, i32* %B, i32 %i - %0 = load i32, i32* %gep.0, align 4 - %1 = load i32, i32* %gep.1, align 4 + %gep.0 = getelementptr i32, ptr %A, i32 %i + %gep.1 = getelementptr i32, ptr %bot.gep, i32 %i + %gep.B = getelementptr i32, ptr %B, i32 %i + %0 = load i32, ptr %gep.0, align 4 + %1 = load i32, ptr %gep.1, align 4 %add = add nsw i32 %1, %0 - store i32 %add, i32* %gep.B, align 4 + store i32 %add, ptr %gep.B, align 4 %inc = add nsw i32 %i, 1 %exitcond = icmp eq i32 %inc, %N br i1 %exitcond, label %for.end, label %for.body @@ -53,8 +53,8 @@ for.end: ; CHECK-LABEL: test2 ; CHECK: da analyze - consistent anti [1]! -define void @test2(i32*, i32) #3 { - %3 = getelementptr inbounds i32, i32* %0, i64 1 +define void @test2(ptr, i32) #3 { + %3 = getelementptr inbounds i32, ptr %0, i64 1 br label %4 ;