aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/Analysis
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/unittests/Analysis')
-rw-r--r--llvm/unittests/Analysis/AliasAnalysisTest.cpp50
-rw-r--r--llvm/unittests/Analysis/AliasSetTrackerTest.cpp6
-rw-r--r--llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp90
-rw-r--r--llvm/unittests/Analysis/CGSCCPassManagerTest.cpp16
-rw-r--r--llvm/unittests/Analysis/CaptureTrackingTest.cpp40
-rw-r--r--llvm/unittests/Analysis/DDGTest.cpp44
-rw-r--r--llvm/unittests/Analysis/FunctionPropertiesAnalysisTest.cpp44
-rw-r--r--llvm/unittests/Analysis/LazyCallGraphTest.cpp208
-rw-r--r--llvm/unittests/Analysis/SparsePropagation.cpp8
-rw-r--r--llvm/unittests/Analysis/UnrollAnalyzerTest.cpp30
-rw-r--r--llvm/unittests/Analysis/ValueTrackingTest.cpp12
11 files changed, 274 insertions, 274 deletions
diff --git a/llvm/unittests/Analysis/AliasAnalysisTest.cpp b/llvm/unittests/Analysis/AliasAnalysisTest.cpp
index 06066b1..a28d318 100644
--- a/llvm/unittests/Analysis/AliasAnalysisTest.cpp
+++ b/llvm/unittests/Analysis/AliasAnalysisTest.cpp
@@ -232,18 +232,18 @@ TEST_F(AliasAnalysisTest, BatchAAPhiCycles) {
LLVMContext C;
SMDiagnostic Err;
std::unique_ptr<Module> M = parseAssemblyString(R"(
- define void @f(i8* noalias %a, i1 %c) {
+ define void @f(ptr noalias %a, i1 %c) {
entry:
br label %loop
loop:
- %phi = phi i8* [ null, %entry ], [ %a2, %loop ]
+ %phi = phi ptr [ null, %entry ], [ %a2, %loop ]
%offset1 = phi i64 [ 0, %entry ], [ %offset2, %loop]
%offset2 = add i64 %offset1, 1
- %a1 = getelementptr i8, i8* %a, i64 %offset1
- %a2 = getelementptr i8, i8* %a, i64 %offset2
- %s1 = select i1 %c, i8* %a1, i8* %phi
- %s2 = select i1 %c, i8* %a2, i8* %a1
+ %a1 = getelementptr i8, ptr %a, i64 %offset1
+ %a2 = getelementptr i8, ptr %a, i64 %offset2
+ %s1 = select i1 %c, ptr %a1, ptr %phi
+ %s2 = select i1 %c, ptr %a2, ptr %a1
br label %loop
}
)", Err, C);
@@ -280,15 +280,15 @@ TEST_F(AliasAnalysisTest, BatchAAPhiAssumption) {
LLVMContext C;
SMDiagnostic Err;
std::unique_ptr<Module> M = parseAssemblyString(R"(
- define void @f(i8* %a.base, i8* %b.base, i1 %c) {
+ define void @f(ptr %a.base, ptr %b.base, i1 %c) {
entry:
br label %loop
loop:
- %a = phi i8* [ %a.next, %loop ], [ %a.base, %entry ]
- %b = phi i8* [ %b.next, %loop ], [ %b.base, %entry ]
- %a.next = getelementptr i8, i8* %a, i64 1
- %b.next = getelementptr i8, i8* %b, i64 1
+ %a = phi ptr [ %a.next, %loop ], [ %a.base, %entry ]
+ %b = phi ptr [ %b.next, %loop ], [ %b.base, %entry ]
+ %a.next = getelementptr i8, ptr %a, i64 1
+ %b.next = getelementptr i8, ptr %b, i64 1
br label %loop
}
)", Err, C);
@@ -318,16 +318,16 @@ TEST_F(AliasAnalysisTest, PartialAliasOffset) {
LLVMContext C;
SMDiagnostic Err;
std::unique_ptr<Module> M = parseAssemblyString(R"(
- define void @foo(float* %arg, i32 %i) {
+ define void @foo(ptr %arg, i32 %i) {
bb:
%i2 = zext i32 %i to i64
- %i3 = getelementptr inbounds float, float* %arg, i64 %i2
- %i4 = bitcast float* %i3 to <2 x float>*
- %L1 = load <2 x float>, <2 x float>* %i4, align 16
+ %i3 = getelementptr inbounds float, ptr %arg, i64 %i2
+ %i4 = bitcast ptr %i3 to ptr
+ %L1 = load <2 x float>, ptr %i4, align 16
%i7 = add nuw nsw i32 %i, 1
%i8 = zext i32 %i7 to i64
- %i9 = getelementptr inbounds float, float* %arg, i64 %i8
- %L2 = load float, float* %i9, align 4
+ %i9 = getelementptr inbounds float, ptr %arg, i64 %i8
+ %L2 = load float, ptr %i9, align 4
ret void
}
)",
@@ -353,11 +353,11 @@ TEST_F(AliasAnalysisTest, PartialAliasOffsetSign) {
LLVMContext C;
SMDiagnostic Err;
std::unique_ptr<Module> M = parseAssemblyString(R"(
- define void @f(i64* %p) {
- %L1 = load i64, i64* %p
- %p.i8 = bitcast i64* %p to i8*
- %q = getelementptr i8, i8* %p.i8, i32 1
- %L2 = load i8, i8* %q
+ define void @f(ptr %p) {
+ %L1 = load i64, ptr %p
+ %p.i8 = bitcast ptr %p to ptr
+ %q = getelementptr i8, ptr %p.i8, i32 1
+ %L2 = load i8, ptr %q
ret void
}
)",
@@ -388,10 +388,10 @@ protected:
public:
AAPassInfraTest()
- : M(parseAssemblyString("define i32 @f(i32* %x, i32* %y) {\n"
+ : M(parseAssemblyString("define i32 @f(ptr %x, ptr %y) {\n"
"entry:\n"
- " %lx = load i32, i32* %x\n"
- " %ly = load i32, i32* %y\n"
+ " %lx = load i32, ptr %x\n"
+ " %ly = load i32, ptr %y\n"
" %sum = add i32 %lx, %ly\n"
" ret i32 %sum\n"
"}\n",
diff --git a/llvm/unittests/Analysis/AliasSetTrackerTest.cpp b/llvm/unittests/Analysis/AliasSetTrackerTest.cpp
index e784e6e..b5adc84 100644
--- a/llvm/unittests/Analysis/AliasSetTrackerTest.cpp
+++ b/llvm/unittests/Analysis/AliasSetTrackerTest.cpp
@@ -26,13 +26,13 @@ TEST(AliasSetTracker, AliasUnknownInst) {
; Function Attrs: nounwind ssp uwtable
define i32 @read_a() #0 {
- %1 = load i32, i32* @a, align 4, !tbaa !3
+ %1 = load i32, ptr @a, align 4, !tbaa !3
ret i32 %1
}
; Function Attrs: nounwind ssp uwtable
define void @write_b() #0 {
- store float 1.000000e+01, float* @b, align 4, !tbaa !7
+ store float 1.000000e+01, ptr @b, align 4, !tbaa !7
ret void
}
@@ -72,7 +72,7 @@ TEST(AliasSetTracker, AliasUnknownInst) {
AliasSetTracker AST(BAA);
for (auto &BB : *Test)
AST.add(BB);
- // There should be 2 disjoint alias sets. 1 from each call.
+ // There should be 2 disjoint alias sets. 1 from each call.
ASSERT_EQ((int)AST.getAliasSets().size(), 2);
// Directly test aliasesUnknownInst.
diff --git a/llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp b/llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp
index 5fd2ecc..921e2aa 100644
--- a/llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp
+++ b/llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp
@@ -74,18 +74,18 @@ TEST(AssumeQueryAPI, hasAttributeInAssume) {
EnableKnowledgeRetention.setValue(true);
StringRef Head =
"declare void @llvm.assume(i1)\n"
- "declare void @func(i32*, i32*, i32*)\n"
- "declare void @func1(i32*, i32*, i32*, i32*)\n"
- "declare void @func_many(i32*) \"no-jump-tables\" nounwind "
+ "declare void @func(ptr, ptr, ptr)\n"
+ "declare void @func1(ptr, ptr, ptr, ptr)\n"
+ "declare void @func_many(ptr) \"no-jump-tables\" nounwind "
"\"less-precise-fpmad\" willreturn norecurse\n"
- "define void @test(i32* %P, i32* %P1, i32* %P2, i32* %P3) {\n";
+ "define void @test(ptr %P, ptr %P1, ptr %P2, ptr %P3) {\n";
StringRef Tail = "ret void\n"
"}";
std::vector<std::pair<StringRef, llvm::function_ref<void(Instruction *)>>>
Tests;
Tests.push_back(std::make_pair(
- "call void @func(i32* nonnull align 4 dereferenceable(16) %P, i32* align "
- "8 noalias %P1, i32* align 8 noundef %P2)\n",
+ "call void @func(ptr nonnull align 4 dereferenceable(16) %P, ptr align "
+ "8 noalias %P1, ptr align 8 noundef %P2)\n",
[](Instruction *I) {
auto *Assume = buildAssumeFromInst(I);
Assume->insertBefore(I->getIterator());
@@ -103,11 +103,11 @@ TEST(AssumeQueryAPI, hasAttributeInAssume) {
Attribute::AttrKind::Alignment, 4));
}));
Tests.push_back(std::make_pair(
- "call void @func1(i32* nonnull align 32 dereferenceable(48) %P, i32* "
+ "call void @func1(ptr nonnull align 32 dereferenceable(48) %P, ptr "
"nonnull "
- "align 8 dereferenceable(28) %P, i32* nonnull align 64 "
+ "align 8 dereferenceable(28) %P, ptr nonnull align 64 "
"dereferenceable(4) "
- "%P, i32* nonnull align 16 dereferenceable(12) %P)\n",
+ "%P, ptr nonnull align 16 dereferenceable(12) %P)\n",
[](Instruction *I) {
auto *Assume = buildAssumeFromInst(I);
Assume->insertBefore(I->getIterator());
@@ -127,7 +127,7 @@ TEST(AssumeQueryAPI, hasAttributeInAssume) {
Attribute::AttrKind::Alignment, 64));
}));
Tests.push_back(std::make_pair(
- "call void @func_many(i32* align 8 noundef %P1) cold\n", [](Instruction *I) {
+ "call void @func_many(ptr align 8 noundef %P1) cold\n", [](Instruction *I) {
ShouldPreserveAllAttributes.setValue(true);
auto *Assume = buildAssumeFromInst(I);
Assume->insertBefore(I->getIterator());
@@ -142,11 +142,11 @@ TEST(AssumeQueryAPI, hasAttributeInAssume) {
ASSERT_TRUE(hasMatchesExactlyAttributes(Assume, nullptr, ""));
}));
Tests.push_back(std::make_pair(
- "call void @func1(i32* readnone align 32 "
- "dereferenceable(48) noalias %P, i32* "
- "align 8 dereferenceable(28) %P1, i32* align 64 "
+ "call void @func1(ptr readnone align 32 "
+ "dereferenceable(48) noalias %P, ptr "
+ "align 8 dereferenceable(28) %P1, ptr align 64 "
"dereferenceable(4) "
- "%P2, i32* nonnull align 16 dereferenceable(12) %P3)\n",
+ "%P2, ptr nonnull align 16 dereferenceable(12) %P3)\n",
[](Instruction *I) {
auto *Assume = buildAssumeFromInst(I);
Assume->insertBefore(I->getIterator());
@@ -178,11 +178,11 @@ TEST(AssumeQueryAPI, hasAttributeInAssume) {
}));
Tests.push_back(std::make_pair(
- "call void @func1(i32* readnone align 32 "
- "dereferenceable(48) noalias %P, i32* "
- "align 8 dereferenceable(28) %P1, i32* align 64 "
+ "call void @func1(ptr readnone align 32 "
+ "dereferenceable(48) noalias %P, ptr "
+ "align 8 dereferenceable(28) %P1, ptr align 64 "
"dereferenceable(4) "
- "%P2, i32* nonnull align 16 dereferenceable(12) %P3)\n",
+ "%P2, ptr nonnull align 16 dereferenceable(12) %P3)\n",
[](Instruction *I) {
auto *Assume = buildAssumeFromInst(I);
Assume->insertBefore(I->getIterator());
@@ -204,8 +204,8 @@ TEST(AssumeQueryAPI, hasAttributeInAssume) {
Attribute::AttrKind::Dereferenceable, 48));
}));
Tests.push_back(std::make_pair(
- "call void @func(i32* nonnull align 4 dereferenceable(16) %P, i32* align "
- "8 noalias %P1, i32* %P1)\n",
+ "call void @func(ptr nonnull align 4 dereferenceable(16) %P, ptr align "
+ "8 noalias %P1, ptr %P1)\n",
[](Instruction *I) {
auto *Assume = buildAssumeFromInst(I);
Assume->insertBefore(I->getIterator());
@@ -251,18 +251,18 @@ TEST(AssumeQueryAPI, fillMapFromAssume) {
EnableKnowledgeRetention.setValue(true);
StringRef Head =
"declare void @llvm.assume(i1)\n"
- "declare void @func(i32*, i32*, i32*)\n"
- "declare void @func1(i32*, i32*, i32*, i32*)\n"
- "declare void @func_many(i32*) \"no-jump-tables\" nounwind "
+ "declare void @func(ptr, ptr, ptr)\n"
+ "declare void @func1(ptr, ptr, ptr, ptr)\n"
+ "declare void @func_many(ptr) \"no-jump-tables\" nounwind "
"\"less-precise-fpmad\" willreturn norecurse\n"
- "define void @test(i32* %P, i32* %P1, i32* %P2, i32* %P3) {\n";
+ "define void @test(ptr %P, ptr %P1, ptr %P2, ptr %P3) {\n";
StringRef Tail = "ret void\n"
"}";
std::vector<std::pair<StringRef, llvm::function_ref<void(Instruction *)>>>
Tests;
Tests.push_back(std::make_pair(
- "call void @func(i32* nonnull align 4 dereferenceable(16) %P, i32* align "
- "8 noalias %P1, i32* align 8 dereferenceable(8) %P2)\n",
+ "call void @func(ptr nonnull align 4 dereferenceable(16) %P, ptr align "
+ "8 noalias %P1, ptr align 8 dereferenceable(8) %P2)\n",
[](Instruction *I) {
auto *Assume = buildAssumeFromInst(I);
Assume->insertBefore(I->getIterator());
@@ -283,11 +283,11 @@ TEST(AssumeQueryAPI, fillMapFromAssume) {
{4, 4}));
}));
Tests.push_back(std::make_pair(
- "call void @func1(i32* nonnull align 32 dereferenceable(48) %P, i32* "
+ "call void @func1(ptr nonnull align 32 dereferenceable(48) %P, ptr "
"nonnull "
- "align 8 dereferenceable(28) %P, i32* nonnull align 64 "
+ "align 8 dereferenceable(28) %P, ptr nonnull align 64 "
"dereferenceable(4) "
- "%P, i32* nonnull align 16 dereferenceable(12) %P)\n",
+ "%P, ptr nonnull align 16 dereferenceable(12) %P)\n",
[](Instruction *I) {
auto *Assume = buildAssumeFromInst(I);
Assume->insertBefore(I->getIterator());
@@ -310,7 +310,7 @@ TEST(AssumeQueryAPI, fillMapFromAssume) {
Map, Assume, {I->getOperand(0), Attribute::Alignment}, {64, 64}));
}));
Tests.push_back(std::make_pair(
- "call void @func_many(i32* align 8 %P1) cold\n", [](Instruction *I) {
+ "call void @func_many(ptr align 8 %P1) cold\n", [](Instruction *I) {
ShouldPreserveAllAttributes.setValue(true);
auto *Assume = buildAssumeFromInst(I);
Assume->insertBefore(I->getIterator());
@@ -331,11 +331,11 @@ TEST(AssumeQueryAPI, fillMapFromAssume) {
ASSERT_TRUE(Map.empty());
}));
Tests.push_back(std::make_pair(
- "call void @func1(i32* readnone align 32 "
- "dereferenceable(48) noalias %P, i32* "
- "align 8 dereferenceable(28) %P1, i32* align 64 "
+ "call void @func1(ptr readnone align 32 "
+ "dereferenceable(48) noalias %P, ptr "
+ "align 8 dereferenceable(28) %P1, ptr align 64 "
"dereferenceable(4) "
- "%P2, i32* nonnull align 16 dereferenceable(12) %P3)\n",
+ "%P2, ptr nonnull align 16 dereferenceable(12) %P3)\n",
[](Instruction *I) {
auto *Assume = buildAssumeFromInst(I);
Assume->insertBefore(I->getIterator());
@@ -371,8 +371,8 @@ TEST(AssumeQueryAPI, fillMapFromAssume) {
/// Keep this test last as it modifies the function.
Tests.push_back(std::make_pair(
- "call void @func(i32* nonnull align 4 dereferenceable(16) %P, i32* align "
- "8 noalias %P1, i32* %P2)\n",
+ "call void @func(ptr nonnull align 4 dereferenceable(16) %P, ptr align "
+ "8 noalias %P1, ptr %P2)\n",
[](Instruction *I) {
auto *Assume = buildAssumeFromInst(I);
Assume->insertBefore(I->getIterator());
@@ -507,11 +507,11 @@ TEST(AssumeQueryAPI, AssumptionCache) {
SMDiagnostic Err;
std::unique_ptr<Module> Mod = parseAssemblyString(
"declare void @llvm.assume(i1)\n"
- "define void @test(i32* %P, i32* %P1, i32* %P2, i32* %P3, i1 %B) {\n"
- "call void @llvm.assume(i1 true) [\"nonnull\"(i32* %P), \"align\"(i32* "
- "%P2, i32 4), \"align\"(i32* %P, i32 8)]\n"
- "call void @llvm.assume(i1 %B) [\"test\"(i32* %P1), "
- "\"dereferenceable\"(i32* %P, i32 4)]\n"
+ "define void @test(ptr %P, ptr %P1, ptr %P2, ptr %P3, i1 %B) {\n"
+ "call void @llvm.assume(i1 true) [\"nonnull\"(ptr %P), \"align\"(ptr "
+ "%P2, i32 4), \"align\"(ptr %P, i32 8)]\n"
+ "call void @llvm.assume(i1 %B) [\"test\"(ptr %P1), "
+ "\"dereferenceable\"(ptr %P, i32 4)]\n"
"ret void\n}\n",
Err, C);
if (!Mod)
@@ -569,11 +569,11 @@ TEST(AssumeQueryAPI, Alignment) {
SMDiagnostic Err;
std::unique_ptr<Module> Mod = parseAssemblyString(
"declare void @llvm.assume(i1)\n"
- "define void @test(i32* %P, i32* %P1, i32* %P2, i32 %I3, i1 %B) {\n"
- "call void @llvm.assume(i1 true) [\"align\"(i32* %P, i32 8, i32 %I3)]\n"
- "call void @llvm.assume(i1 true) [\"align\"(i32* %P1, i32 %I3, i32 "
+ "define void @test(ptr %P, ptr %P1, ptr %P2, i32 %I3, i1 %B) {\n"
+ "call void @llvm.assume(i1 true) [\"align\"(ptr %P, i32 8, i32 %I3)]\n"
+ "call void @llvm.assume(i1 true) [\"align\"(ptr %P1, i32 %I3, i32 "
"%I3)]\n"
- "call void @llvm.assume(i1 true) [\"align\"(i32* %P2, i32 16, i32 8)]\n"
+ "call void @llvm.assume(i1 true) [\"align\"(ptr %P2, i32 16, i32 8)]\n"
"ret void\n}\n",
Err, C);
if (!Mod)
diff --git a/llvm/unittests/Analysis/CGSCCPassManagerTest.cpp b/llvm/unittests/Analysis/CGSCCPassManagerTest.cpp
index 17240a1..bf5afe8 100644
--- a/llvm/unittests/Analysis/CGSCCPassManagerTest.cpp
+++ b/llvm/unittests/Analysis/CGSCCPassManagerTest.cpp
@@ -1936,26 +1936,26 @@ TEST_F(CGSCCPassManagerTest, TestDeletionOfFunctionInNonTrivialRefSCC) {
TEST_F(CGSCCPassManagerTest, TestInsertionOfNewNonTrivialCallEdge) {
std::unique_ptr<Module> M = parseIR("define void @f1() {\n"
"entry:\n"
- " %a = bitcast void ()* @f4 to i8*\n"
- " %b = bitcast void ()* @f2 to i8*\n"
+ " %a = bitcast ptr @f4 to ptr\n"
+ " %b = bitcast ptr @f2 to ptr\n"
" ret void\n"
"}\n"
"define void @f2() {\n"
"entry:\n"
- " %a = bitcast void ()* @f1 to i8*\n"
- " %b = bitcast void ()* @f3 to i8*\n"
+ " %a = bitcast ptr @f1 to ptr\n"
+ " %b = bitcast ptr @f3 to ptr\n"
" ret void\n"
"}\n"
"define void @f3() {\n"
"entry:\n"
- " %a = bitcast void ()* @f2 to i8*\n"
- " %b = bitcast void ()* @f4 to i8*\n"
+ " %a = bitcast ptr @f2 to ptr\n"
+ " %b = bitcast ptr @f4 to ptr\n"
" ret void\n"
"}\n"
"define void @f4() {\n"
"entry:\n"
- " %a = bitcast void ()* @f3 to i8*\n"
- " %b = bitcast void ()* @f1 to i8*\n"
+ " %a = bitcast ptr @f3 to ptr\n"
+ " %b = bitcast ptr @f1 to ptr\n"
" ret void\n"
"}\n");
diff --git a/llvm/unittests/Analysis/CaptureTrackingTest.cpp b/llvm/unittests/Analysis/CaptureTrackingTest.cpp
index ea3f21e..d7ee525 100644
--- a/llvm/unittests/Analysis/CaptureTrackingTest.cpp
+++ b/llvm/unittests/Analysis/CaptureTrackingTest.cpp
@@ -20,27 +20,27 @@ using namespace llvm;
TEST(CaptureTracking, MaxUsesToExplore) {
StringRef Assembly = R"(
; Function Attrs: nounwind ssp uwtable
- declare void @doesnt_capture(i8* nocapture, i8* nocapture, i8* nocapture,
- i8* nocapture, i8* nocapture)
+ declare void @doesnt_capture(ptr nocapture, ptr nocapture, ptr nocapture,
+ ptr nocapture, ptr nocapture)
; %arg has 5 uses
- define void @test_few_uses(i8* %arg) {
- call void @doesnt_capture(i8* %arg, i8* %arg, i8* %arg, i8* %arg, i8* %arg)
+ define void @test_few_uses(ptr %arg) {
+ call void @doesnt_capture(ptr %arg, ptr %arg, ptr %arg, ptr %arg, ptr %arg)
ret void
}
; %arg has 50 uses
- define void @test_many_uses(i8* %arg) {
- call void @doesnt_capture(i8* %arg, i8* %arg, i8* %arg, i8* %arg, i8* %arg)
- call void @doesnt_capture(i8* %arg, i8* %arg, i8* %arg, i8* %arg, i8* %arg)
- call void @doesnt_capture(i8* %arg, i8* %arg, i8* %arg, i8* %arg, i8* %arg)
- call void @doesnt_capture(i8* %arg, i8* %arg, i8* %arg, i8* %arg, i8* %arg)
- call void @doesnt_capture(i8* %arg, i8* %arg, i8* %arg, i8* %arg, i8* %arg)
- call void @doesnt_capture(i8* %arg, i8* %arg, i8* %arg, i8* %arg, i8* %arg)
- call void @doesnt_capture(i8* %arg, i8* %arg, i8* %arg, i8* %arg, i8* %arg)
- call void @doesnt_capture(i8* %arg, i8* %arg, i8* %arg, i8* %arg, i8* %arg)
- call void @doesnt_capture(i8* %arg, i8* %arg, i8* %arg, i8* %arg, i8* %arg)
- call void @doesnt_capture(i8* %arg, i8* %arg, i8* %arg, i8* %arg, i8* %arg)
+ define void @test_many_uses(ptr %arg) {
+ call void @doesnt_capture(ptr %arg, ptr %arg, ptr %arg, ptr %arg, ptr %arg)
+ call void @doesnt_capture(ptr %arg, ptr %arg, ptr %arg, ptr %arg, ptr %arg)
+ call void @doesnt_capture(ptr %arg, ptr %arg, ptr %arg, ptr %arg, ptr %arg)
+ call void @doesnt_capture(ptr %arg, ptr %arg, ptr %arg, ptr %arg, ptr %arg)
+ call void @doesnt_capture(ptr %arg, ptr %arg, ptr %arg, ptr %arg, ptr %arg)
+ call void @doesnt_capture(ptr %arg, ptr %arg, ptr %arg, ptr %arg, ptr %arg)
+ call void @doesnt_capture(ptr %arg, ptr %arg, ptr %arg, ptr %arg, ptr %arg)
+ call void @doesnt_capture(ptr %arg, ptr %arg, ptr %arg, ptr %arg, ptr %arg)
+ call void @doesnt_capture(ptr %arg, ptr %arg, ptr %arg, ptr %arg, ptr %arg)
+ call void @doesnt_capture(ptr %arg, ptr %arg, ptr %arg, ptr %arg, ptr %arg)
ret void
}
)";
@@ -85,12 +85,12 @@ struct CollectingCaptureTracker : public CaptureTracker {
TEST(CaptureTracking, MultipleUsesInSameInstruction) {
StringRef Assembly = R"(
- declare void @call(i8*, i8*, i8*)
+ declare void @call(ptr, ptr, ptr)
- define void @test(i8* %arg, i8** %ptr) {
- call void @call(i8* %arg, i8* nocapture %arg, i8* %arg) [ "bundle"(i8* %arg) ]
- cmpxchg i8** %ptr, i8* %arg, i8* %arg acq_rel monotonic
- icmp eq i8* %arg, %arg
+ define void @test(ptr %arg, ptr %ptr) {
+ call void @call(ptr %arg, ptr nocapture %arg, ptr %arg) [ "bundle"(ptr %arg) ]
+ cmpxchg ptr %ptr, ptr %arg, ptr %arg acq_rel monotonic
+ icmp eq ptr %arg, %arg
ret void
}
)";
diff --git a/llvm/unittests/Analysis/DDGTest.cpp b/llvm/unittests/Analysis/DDGTest.cpp
index 7fcdfdb..12944a3 100644
--- a/llvm/unittests/Analysis/DDGTest.cpp
+++ b/llvm/unittests/Analysis/DDGTest.cpp
@@ -51,7 +51,7 @@ TEST(DDGTest, getDependencies) {
"target datalayout = \"e-m:e-i64:64-n32:64\"\n"
"target triple = \"powerpc64le-unknown-linux-gnu\"\n"
"\n"
- "define dso_local void @foo(i32 signext %n, i32* noalias %A, i32* "
+ "define dso_local void @foo(i32 signext %n, ptr noalias %A, ptr "
"noalias %B) {\n"
"entry:\n"
" %cmp1 = icmp sgt i32 %n, 0\n"
@@ -64,16 +64,16 @@ TEST(DDGTest, getDependencies) {
" for.body:\n"
" %indvars.iv = phi i64 [ 0, %for.body.preheader ], [ "
"%indvars.iv.next, %for.body ]\n"
- " %arrayidx = getelementptr inbounds i32, i32* %A, i64 %indvars.iv\n"
+ " %arrayidx = getelementptr inbounds i32, ptr %A, i64 %indvars.iv\n"
" %0 = trunc i64 %indvars.iv to i32\n"
- " store i32 %0, i32* %arrayidx, align 4\n"
+ " store i32 %0, ptr %arrayidx, align 4\n"
" %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1\n"
- " %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 "
+ " %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 "
"%indvars.iv.next\n"
- " %1 = load i32, i32* %arrayidx2, align 4\n"
+ " %1 = load i32, ptr %arrayidx2, align 4\n"
" %add3 = add nsw i32 %1, 1\n"
- " %arrayidx5 = getelementptr inbounds i32, i32* %B, i64 %indvars.iv\n"
- " store i32 %add3, i32* %arrayidx5, align 4\n"
+ " %arrayidx5 = getelementptr inbounds i32, ptr %B, i64 %indvars.iv\n"
+ " store i32 %add3, ptr %arrayidx5, align 4\n"
" %exitcond = icmp ne i64 %indvars.iv.next, %wide.trip.count\n"
" br i1 %exitcond, label %for.body, label %for.end.loopexit\n"
"\n"
@@ -142,8 +142,8 @@ TEST(DDGTest, avoidDuplicateEdgesToFromPiBlocks) {
const char *ModuleStr =
"target datalayout = \"e-m:e-i64:64-n32:64-v256:256:256-v512:512:512\"\n"
"\n"
- "define void @foo(float* noalias %A, float* noalias %B, float* noalias "
- "%C, float* noalias %D, i32 signext %n) {\n"
+ "define void @foo(ptr noalias %A, ptr noalias %B, ptr noalias "
+ "%C, ptr noalias %D, i32 signext %n) {\n"
"entry:\n"
" %cmp1 = icmp sgt i32 %n, 0\n"
" br i1 %cmp1, label %for.body.preheader, label %for.end\n"
@@ -156,26 +156,26 @@ TEST(DDGTest, avoidDuplicateEdgesToFromPiBlocks) {
"%for.body.preheader, %if.end\n"
" %indvars.iv = phi i64 [ 0, %for.body.preheader ], [ %indvars.iv.next, "
"%if.end ]\n"
- " %arrayidx = getelementptr inbounds float, float* %A, i64 %indvars.iv\n"
- " %loadASubI = load float, float* %arrayidx, align 4\n"
- " %arrayidx2 = getelementptr inbounds float, float* %B, i64 "
+ " %arrayidx = getelementptr inbounds float, ptr %A, i64 %indvars.iv\n"
+ " %loadASubI = load float, ptr %arrayidx, align 4\n"
+ " %arrayidx2 = getelementptr inbounds float, ptr %B, i64 "
"%indvars.iv\n"
- " %loadBSubI = load float, float* %arrayidx2, align 4\n"
+ " %loadBSubI = load float, ptr %arrayidx2, align 4\n"
" %add = fadd fast float %loadASubI, %loadBSubI\n"
- " %arrayidx4 = getelementptr inbounds float, float* %A, i64 "
+ " %arrayidx4 = getelementptr inbounds float, ptr %A, i64 "
"%indvars.iv\n"
- " store float %add, float* %arrayidx4, align 4\n"
- " %arrayidx6 = getelementptr inbounds float, float* %A, i64 "
+ " store float %add, ptr %arrayidx4, align 4\n"
+ " %arrayidx6 = getelementptr inbounds float, ptr %A, i64 "
"%indvars.iv\n"
- " %0 = load float, float* %arrayidx6, align 4\n"
+ " %0 = load float, ptr %arrayidx6, align 4\n"
" %add7 = fadd fast float %0, 1.000000e+00\n"
" %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1\n"
- " %arrayidx10 = getelementptr inbounds float, float* %B, i64 "
+ " %arrayidx10 = getelementptr inbounds float, ptr %B, i64 "
"%indvars.iv.next\n"
- " store float %add7, float* %arrayidx10, align 4\n"
- " %arrayidx12 = getelementptr inbounds float, float* %A, i64 "
+ " store float %add7, ptr %arrayidx10, align 4\n"
+ " %arrayidx12 = getelementptr inbounds float, ptr %A, i64 "
"%indvars.iv\n"
- " %1 = load float, float* %arrayidx12, align 4\n"
+ " %1 = load float, ptr %arrayidx12, align 4\n"
" %cmp13 = fcmp fast ogt float %1, 1.000000e+02\n"
" br i1 %cmp13, label %if.then, label %if.else\n"
"\n"
@@ -188,7 +188,7 @@ TEST(DDGTest, avoidDuplicateEdgesToFromPiBlocks) {
"if.end: ; preds = %if.else, "
"%if.then\n"
" %ff.0 = phi float [ %add, %if.then ], [ %add7, %if.else ]\n"
- " store float %ff.0, float* %C, align 4\n"
+ " store float %ff.0, ptr %C, align 4\n"
" %exitcond = icmp ne i64 %indvars.iv.next, %wide.trip.count\n"
" br i1 %exitcond, label %for.body, label %for.end.loopexit\n"
"\n"
diff --git a/llvm/unittests/Analysis/FunctionPropertiesAnalysisTest.cpp b/llvm/unittests/Analysis/FunctionPropertiesAnalysisTest.cpp
index 497da8f..dc5d0a8 100644
--- a/llvm/unittests/Analysis/FunctionPropertiesAnalysisTest.cpp
+++ b/llvm/unittests/Analysis/FunctionPropertiesAnalysisTest.cpp
@@ -457,7 +457,7 @@ entry:
ret void
}
-define i32 @caller() personality i32 (...)* @__gxx_personality_v0 {
+define i32 @caller() personality ptr @__gxx_personality_v0 {
entry:
invoke void @callee()
to label %cont unwind label %exc
@@ -466,7 +466,7 @@ cont:
ret i32 0
exc:
- %exn = landingpad {i8*, i32}
+ %exn = landingpad {ptr, i32}
cleanup
ret i32 1
}
@@ -498,7 +498,7 @@ TEST_F(FunctionPropertiesAnalysisTest, InvokeUnreachableHandler) {
R"IR(
declare void @might_throw()
-define internal i32 @callee() personality i32 (...)* @__gxx_personality_v0 {
+define internal i32 @callee() personality ptr @__gxx_personality_v0 {
entry:
invoke void @might_throw()
to label %cont unwind label %exc
@@ -507,12 +507,12 @@ cont:
ret i32 0
exc:
- %exn = landingpad {i8*, i32}
+ %exn = landingpad {ptr, i32}
cleanup
- resume { i8*, i32 } %exn
+ resume { ptr, i32 } %exn
}
-define i32 @caller() personality i32 (...)* @__gxx_personality_v0 {
+define i32 @caller() personality ptr @__gxx_personality_v0 {
entry:
%X = invoke i32 @callee()
to label %cont unwind label %Handler
@@ -521,7 +521,7 @@ cont:
ret i32 %X
Handler:
- %exn = landingpad {i8*, i32}
+ %exn = landingpad {ptr, i32}
cleanup
ret i32 1
}
@@ -554,7 +554,7 @@ TEST_F(FunctionPropertiesAnalysisTest, Rethrow) {
R"IR(
declare void @might_throw()
-define internal i32 @callee() personality i32 (...)* @__gxx_personality_v0 {
+define internal i32 @callee() personality ptr @__gxx_personality_v0 {
entry:
invoke void @might_throw()
to label %cont unwind label %exc
@@ -563,12 +563,12 @@ cont:
ret i32 0
exc:
- %exn = landingpad {i8*, i32}
+ %exn = landingpad {ptr, i32}
cleanup
- resume { i8*, i32 } %exn
+ resume { ptr, i32 } %exn
}
-define i32 @caller() personality i32 (...)* @__gxx_personality_v0 {
+define i32 @caller() personality ptr @__gxx_personality_v0 {
entry:
%X = invoke i32 @callee()
to label %cont unwind label %Handler
@@ -577,7 +577,7 @@ cont:
ret i32 %X
Handler:
- %exn = landingpad {i8*, i32}
+ %exn = landingpad {ptr, i32}
cleanup
ret i32 1
}
@@ -612,18 +612,18 @@ declare void @external_func()
@exception_type2 = external global i8
-define internal void @inner() personality i8* null {
+define internal void @inner() personality ptr null {
invoke void @external_func()
to label %cont unwind label %lpad
cont:
ret void
lpad:
%lp = landingpad i32
- catch i8* @exception_type1
+ catch ptr @exception_type1
resume i32 %lp
}
-define void @outer() personality i8* null {
+define void @outer() personality ptr null {
invoke void @inner()
to label %cont unwind label %lpad
cont:
@@ -631,7 +631,7 @@ cont:
lpad:
%lp = landingpad i32
cleanup
- catch i8* @exception_type2
+ catch ptr @exception_type2
resume i32 %lp
}
@@ -666,18 +666,18 @@ declare void @external_func()
@exception_type2 = external global i8
-define internal void @inner() personality i8* null {
+define internal void @inner() personality ptr null {
invoke void @external_func()
to label %cont unwind label %lpad
cont:
ret void
lpad:
%lp = landingpad i32
- catch i8* @exception_type1
+ catch ptr @exception_type1
resume i32 %lp
}
-define void @outer(i32 %a) personality i8* null {
+define void @outer(i32 %a) personality ptr null {
entry:
%i = icmp slt i32 %a, 0
br i1 %i, label %if.then, label %cont
@@ -689,7 +689,7 @@ cont:
lpad:
%lp = landingpad i32
cleanup
- catch i8* @exception_type2
+ catch ptr @exception_type2
resume i32 %lp
}
@@ -931,9 +931,9 @@ TEST_F(FunctionPropertiesAnalysisTest, DetailedOperandCount) {
@a = global i64 1
define i64 @f1(i64 %e) {
- %b = load i64, i64* @a
+ %b = load i64, ptr @a
%c = add i64 %b, 2
- %d = call i64 asm "mov $1,$0", "=r,r" (i64 %c)
+ %d = call i64 asm "mov $1,$0", "=r,r" (i64 %c)
%f = add i64 %d, %e
ret i64 %f
}
diff --git a/llvm/unittests/Analysis/LazyCallGraphTest.cpp b/llvm/unittests/Analysis/LazyCallGraphTest.cpp
index 4a4ff32..5c0bfbd 100644
--- a/llvm/unittests/Analysis/LazyCallGraphTest.cpp
+++ b/llvm/unittests/Analysis/LazyCallGraphTest.cpp
@@ -142,78 +142,78 @@ static const char DiamondOfTriangles[] =
static const char DiamondOfTrianglesRefGraph[] =
"define void @a1() {\n"
"entry:\n"
- " %a = alloca void ()*\n"
- " store void ()* @a2, void ()** %a\n"
- " store void ()* @b2, void ()** %a\n"
- " store void ()* @c3, void ()** %a\n"
+ " %a = alloca ptr\n"
+ " store ptr @a2, ptr %a\n"
+ " store ptr @b2, ptr %a\n"
+ " store ptr @c3, ptr %a\n"
" ret void\n"
"}\n"
"define void @a2() {\n"
"entry:\n"
- " %a = alloca void ()*\n"
- " store void ()* @a3, void ()** %a\n"
+ " %a = alloca ptr\n"
+ " store ptr @a3, ptr %a\n"
" ret void\n"
"}\n"
"define void @a3() {\n"
"entry:\n"
- " %a = alloca void ()*\n"
- " store void ()* @a1, void ()** %a\n"
+ " %a = alloca ptr\n"
+ " store ptr @a1, ptr %a\n"
" ret void\n"
"}\n"
"define void @b1() {\n"
"entry:\n"
- " %a = alloca void ()*\n"
- " store void ()* @b2, void ()** %a\n"
- " store void ()* @d3, void ()** %a\n"
+ " %a = alloca ptr\n"
+ " store ptr @b2, ptr %a\n"
+ " store ptr @d3, ptr %a\n"
" ret void\n"
"}\n"
"define void @b2() {\n"
"entry:\n"
- " %a = alloca void ()*\n"
- " store void ()* @b3, void ()** %a\n"
+ " %a = alloca ptr\n"
+ " store ptr @b3, ptr %a\n"
" ret void\n"
"}\n"
"define void @b3() {\n"
"entry:\n"
- " %a = alloca void ()*\n"
- " store void ()* @b1, void ()** %a\n"
+ " %a = alloca ptr\n"
+ " store ptr @b1, ptr %a\n"
" ret void\n"
"}\n"
"define void @c1() {\n"
"entry:\n"
- " %a = alloca void ()*\n"
- " store void ()* @c2, void ()** %a\n"
- " store void ()* @d2, void ()** %a\n"
+ " %a = alloca ptr\n"
+ " store ptr @c2, ptr %a\n"
+ " store ptr @d2, ptr %a\n"
" ret void\n"
"}\n"
"define void @c2() {\n"
"entry:\n"
- " %a = alloca void ()*\n"
- " store void ()* @c3, void ()** %a\n"
+ " %a = alloca ptr\n"
+ " store ptr @c3, ptr %a\n"
" ret void\n"
"}\n"
"define void @c3() {\n"
"entry:\n"
- " %a = alloca void ()*\n"
- " store void ()* @c1, void ()** %a\n"
+ " %a = alloca ptr\n"
+ " store ptr @c1, ptr %a\n"
" ret void\n"
"}\n"
"define void @d1() {\n"
"entry:\n"
- " %a = alloca void ()*\n"
- " store void ()* @d2, void ()** %a\n"
+ " %a = alloca ptr\n"
+ " store ptr @d2, ptr %a\n"
" ret void\n"
"}\n"
"define void @d2() {\n"
"entry:\n"
- " %a = alloca void ()*\n"
- " store void ()* @d3, void ()** %a\n"
+ " %a = alloca ptr\n"
+ " store ptr @d3, ptr %a\n"
" ret void\n"
"}\n"
"define void @d3() {\n"
"entry:\n"
- " %a = alloca void ()*\n"
- " store void ()* @d1, void ()** %a\n"
+ " %a = alloca ptr\n"
+ " store ptr @d1, ptr %a\n"
" ret void\n"
"}\n";
@@ -1005,20 +1005,20 @@ TEST(LazyCallGraphTest, IncomingEdgeInsertionLargeRefCycle) {
std::unique_ptr<Module> M =
parseAssembly(Context, "define void @a() {\n"
"entry:\n"
- " %p = alloca void ()*\n"
- " store void ()* @b, void ()** %p\n"
+ " %p = alloca ptr\n"
+ " store ptr @b, ptr %p\n"
" ret void\n"
"}\n"
"define void @b() {\n"
"entry:\n"
- " %p = alloca void ()*\n"
- " store void ()* @c, void ()** %p\n"
+ " %p = alloca ptr\n"
+ " store ptr @c, ptr %p\n"
" ret void\n"
"}\n"
"define void @c() {\n"
"entry:\n"
- " %p = alloca void ()*\n"
- " store void ()* @d, void ()** %p\n"
+ " %p = alloca ptr\n"
+ " store ptr @d, ptr %p\n"
" ret void\n"
"}\n"
"define void @d() {\n"
@@ -1306,25 +1306,25 @@ TEST(LazyCallGraphTest, InternalEdgeRemoval) {
LLVMContext Context;
// A nice fully connected (including self-edges) RefSCC.
std::unique_ptr<Module> M = parseAssembly(
- Context, "define void @a(i8** %ptr) {\n"
+ Context, "define void @a(ptr %ptr) {\n"
"entry:\n"
- " store i8* bitcast (void(i8**)* @a to i8*), i8** %ptr\n"
- " store i8* bitcast (void(i8**)* @b to i8*), i8** %ptr\n"
- " store i8* bitcast (void(i8**)* @c to i8*), i8** %ptr\n"
+ " store ptr @a, ptr %ptr\n"
+ " store ptr @b, ptr %ptr\n"
+ " store ptr @c, ptr %ptr\n"
" ret void\n"
"}\n"
- "define void @b(i8** %ptr) {\n"
+ "define void @b(ptr %ptr) {\n"
"entry:\n"
- " store i8* bitcast (void(i8**)* @a to i8*), i8** %ptr\n"
- " store i8* bitcast (void(i8**)* @b to i8*), i8** %ptr\n"
- " store i8* bitcast (void(i8**)* @c to i8*), i8** %ptr\n"
+ " store ptr @a, ptr %ptr\n"
+ " store ptr @b, ptr %ptr\n"
+ " store ptr @c, ptr %ptr\n"
" ret void\n"
"}\n"
- "define void @c(i8** %ptr) {\n"
+ "define void @c(ptr %ptr) {\n"
"entry:\n"
- " store i8* bitcast (void(i8**)* @a to i8*), i8** %ptr\n"
- " store i8* bitcast (void(i8**)* @b to i8*), i8** %ptr\n"
- " store i8* bitcast (void(i8**)* @c to i8*), i8** %ptr\n"
+ " store ptr @a, ptr %ptr\n"
+ " store ptr @b, ptr %ptr\n"
+ " store ptr @c, ptr %ptr\n"
" ret void\n"
"}\n");
LazyCallGraph CG = buildCG(*M);
@@ -1384,25 +1384,25 @@ TEST(LazyCallGraphTest, InternalMultiEdgeRemoval) {
LLVMContext Context;
// A nice fully connected (including self-edges) RefSCC.
std::unique_ptr<Module> M = parseAssembly(
- Context, "define void @a(i8** %ptr) {\n"
+ Context, "define void @a(ptr %ptr) {\n"
"entry:\n"
- " store i8* bitcast (void(i8**)* @a to i8*), i8** %ptr\n"
- " store i8* bitcast (void(i8**)* @b to i8*), i8** %ptr\n"
- " store i8* bitcast (void(i8**)* @c to i8*), i8** %ptr\n"
+ " store ptr @a, ptr %ptr\n"
+ " store ptr @b, ptr %ptr\n"
+ " store ptr @c, ptr %ptr\n"
" ret void\n"
"}\n"
- "define void @b(i8** %ptr) {\n"
+ "define void @b(ptr %ptr) {\n"
"entry:\n"
- " store i8* bitcast (void(i8**)* @a to i8*), i8** %ptr\n"
- " store i8* bitcast (void(i8**)* @b to i8*), i8** %ptr\n"
- " store i8* bitcast (void(i8**)* @c to i8*), i8** %ptr\n"
+ " store ptr @a, ptr %ptr\n"
+ " store ptr @b, ptr %ptr\n"
+ " store ptr @c, ptr %ptr\n"
" ret void\n"
"}\n"
- "define void @c(i8** %ptr) {\n"
+ "define void @c(ptr %ptr) {\n"
"entry:\n"
- " store i8* bitcast (void(i8**)* @a to i8*), i8** %ptr\n"
- " store i8* bitcast (void(i8**)* @b to i8*), i8** %ptr\n"
- " store i8* bitcast (void(i8**)* @c to i8*), i8** %ptr\n"
+ " store ptr @a, ptr %ptr\n"
+ " store ptr @b, ptr %ptr\n"
+ " store ptr @c, ptr %ptr\n"
" ret void\n"
"}\n");
LazyCallGraph CG = buildCG(*M);
@@ -1454,22 +1454,22 @@ TEST(LazyCallGraphTest, InternalNoOpEdgeRemoval) {
// Reference edges: a -> b -> c -> a
// Call edges: a -> c -> b -> a
std::unique_ptr<Module> M = parseAssembly(
- Context, "define void @a(i8** %ptr) {\n"
+ Context, "define void @a(ptr %ptr) {\n"
"entry:\n"
- " call void @b(i8** %ptr)\n"
- " store i8* bitcast (void(i8**)* @c to i8*), i8** %ptr\n"
+ " call void @b(ptr %ptr)\n"
+ " store ptr @c, ptr %ptr\n"
" ret void\n"
"}\n"
- "define void @b(i8** %ptr) {\n"
+ "define void @b(ptr %ptr) {\n"
"entry:\n"
- " store i8* bitcast (void(i8**)* @a to i8*), i8** %ptr\n"
- " call void @c(i8** %ptr)\n"
+ " store ptr @a, ptr %ptr\n"
+ " call void @c(ptr %ptr)\n"
" ret void\n"
"}\n"
- "define void @c(i8** %ptr) {\n"
+ "define void @c(ptr %ptr) {\n"
"entry:\n"
- " call void @a(i8** %ptr)\n"
- " store i8* bitcast (void(i8**)* @b to i8*), i8** %ptr\n"
+ " call void @a(ptr %ptr)\n"
+ " store ptr @b, ptr %ptr\n"
" ret void\n"
"}\n");
LazyCallGraph CG = buildCG(*M);
@@ -1622,24 +1622,24 @@ TEST(LazyCallGraphTest, InternalRefEdgeToCall) {
"entry:\n"
" call void @b()\n"
" call void @c()\n"
- " store void()* @d, void()** undef\n"
+ " store ptr @d, ptr undef\n"
" ret void\n"
"}\n"
"define void @b() {\n"
"entry:\n"
- " store void()* @c, void()** undef\n"
+ " store ptr @c, ptr undef\n"
" call void @d()\n"
" ret void\n"
"}\n"
"define void @c() {\n"
"entry:\n"
- " store void()* @b, void()** undef\n"
+ " store ptr @b, ptr undef\n"
" call void @d()\n"
" ret void\n"
"}\n"
"define void @d() {\n"
"entry:\n"
- " store void()* @a, void()** undef\n"
+ " store ptr @a, ptr undef\n"
" ret void\n"
"}\n");
LazyCallGraph CG = buildCG(*M);
@@ -1745,13 +1745,13 @@ TEST(LazyCallGraphTest, InternalRefEdgeToCallNoCycleInterleaved) {
"}\n"
"define void @c3() {\n"
"entry:\n"
- " store void()* @b1, void()** undef\n"
+ " store ptr @b1, ptr undef\n"
" call void @d()\n"
" ret void\n"
"}\n"
"define void @d() {\n"
"entry:\n"
- " store void()* @a, void()** undef\n"
+ " store ptr @a, ptr undef\n"
" ret void\n"
"}\n");
LazyCallGraph CG = buildCG(*M);
@@ -1875,13 +1875,13 @@ TEST(LazyCallGraphTest, InternalRefEdgeToCallBothPartitionAndMerge) {
"}\n"
"define void @f() {\n"
"entry:\n"
- " store void()* @b, void()** undef\n"
+ " store ptr @b, ptr undef\n"
" call void @g()\n"
" ret void\n"
"}\n"
"define void @g() {\n"
"entry:\n"
- " store void()* @a, void()** undef\n"
+ " store ptr @a, ptr undef\n"
" ret void\n"
"}\n");
LazyCallGraph CG = buildCG(*M);
@@ -1962,9 +1962,9 @@ TEST(LazyCallGraphTest, HandleBlockAddress) {
"bb:\n"
" unreachable\n"
"}\n"
- "define void @g(i8** %ptr) {\n"
+ "define void @g(ptr %ptr) {\n"
"entry:\n"
- " store i8* blockaddress(@f, %bb), i8** %ptr\n"
+ " store ptr blockaddress(@f, %bb), ptr %ptr\n"
" ret void\n"
"}\n");
LazyCallGraph CG = buildCG(*M);
@@ -1991,9 +1991,9 @@ TEST(LazyCallGraphTest, HandleBlockAddress2) {
parseAssembly(Context, "define void @f() {\n"
" ret void\n"
"}\n"
- "define void @g(i8** %ptr) {\n"
+ "define void @g(ptr %ptr) {\n"
"bb:\n"
- " store i8* blockaddress(@g, %bb), i8** %ptr\n"
+ " store ptr blockaddress(@g, %bb), ptr %ptr\n"
" ret void\n"
"}\n");
LazyCallGraph CG = buildCG(*M);
@@ -2018,31 +2018,31 @@ TEST(LazyCallGraphTest, ReplaceNodeFunction) {
// function.
std::unique_ptr<Module> M =
parseAssembly(Context,
- "define void @a(i8** %ptr) {\n"
+ "define void @a(ptr %ptr) {\n"
"entry:\n"
- " store i8* bitcast (void(i8**)* @d to i8*), i8** %ptr\n"
+ " store ptr @d, ptr %ptr\n"
" ret void\n"
"}\n"
- "define void @b(i8** %ptr) {\n"
+ "define void @b(ptr %ptr) {\n"
"entry:\n"
- " store i8* bitcast (void(i8**)* @d to i8*), i8** %ptr\n"
- " store i8* bitcast (void(i8**)* @d to i8*), i8** %ptr\n"
- " call void @d(i8** %ptr)"
+ " store ptr @d, ptr %ptr\n"
+ " store ptr @d, ptr %ptr\n"
+ " call void @d(ptr %ptr)"
" ret void\n"
"}\n"
- "define void @c(i8** %ptr) {\n"
+ "define void @c(ptr %ptr) {\n"
"entry:\n"
- " call void @d(i8** %ptr)"
- " call void @d(i8** %ptr)"
- " store i8* bitcast (void(i8**)* @d to i8*), i8** %ptr\n"
+ " call void @d(ptr %ptr)"
+ " call void @d(ptr %ptr)"
+ " store ptr @d, ptr %ptr\n"
" ret void\n"
"}\n"
- "define void @d(i8** %ptr) {\n"
+ "define void @d(ptr %ptr) {\n"
"entry:\n"
- " store i8* bitcast (void(i8**)* @b to i8*), i8** %ptr\n"
- " call void @c(i8** %ptr)"
- " call void @d(i8** %ptr)"
- " store i8* bitcast (void(i8**)* @d to i8*), i8** %ptr\n"
+ " store ptr @b, ptr %ptr\n"
+ " call void @c(ptr %ptr)"
+ " call void @d(ptr %ptr)"
+ " store ptr @d, ptr %ptr\n"
" ret void\n"
"}\n");
LazyCallGraph CG = buildCG(*M);
@@ -2098,25 +2098,25 @@ TEST(LazyCallGraphTest, RemoveFunctionWithSpuriousRef) {
// A graph with a couple of RefSCCs.
std::unique_ptr<Module> M =
parseAssembly(Context,
- "define void @a(i8** %ptr) {\n"
+ "define void @a(ptr %ptr) {\n"
"entry:\n"
- " store i8* bitcast (void(i8**)* @d to i8*), i8** %ptr\n"
+ " store ptr @d, ptr %ptr\n"
" ret void\n"
"}\n"
- "define void @b(i8** %ptr) {\n"
+ "define void @b(ptr %ptr) {\n"
"entry:\n"
- " store i8* bitcast (void(i8**)* @c to i8*), i8** %ptr\n"
+ " store ptr @c, ptr %ptr\n"
" ret void\n"
"}\n"
- "define void @c(i8** %ptr) {\n"
+ "define void @c(ptr %ptr) {\n"
"entry:\n"
- " call void @d(i8** %ptr)"
+ " call void @d(ptr %ptr)"
" ret void\n"
"}\n"
- "define void @d(i8** %ptr) {\n"
+ "define void @d(ptr %ptr) {\n"
"entry:\n"
- " call void @c(i8** %ptr)"
- " store i8* bitcast (void(i8**)* @b to i8*), i8** %ptr\n"
+ " call void @c(ptr %ptr)"
+ " store ptr @b, ptr %ptr\n"
" ret void\n"
"}\n"
"define void @dead() {\n"
@@ -2965,7 +2965,7 @@ TEST(LazyCallGraphTest, AddSplitFunctions5) {
LLVMContext Context;
std::unique_ptr<Module> M =
parseAssembly(Context, "define void @f() {\n"
- " %1 = bitcast void ()* @f2 to i8*\n"
+ " %1 = bitcast ptr @f2 to ptr\n"
" ret void\n"
"}\n"
"define void @f2() {\n"
diff --git a/llvm/unittests/Analysis/SparsePropagation.cpp b/llvm/unittests/Analysis/SparsePropagation.cpp
index ca73a48..0cbf5de 100644
--- a/llvm/unittests/Analysis/SparsePropagation.cpp
+++ b/llvm/unittests/Analysis/SparsePropagation.cpp
@@ -357,9 +357,9 @@ TEST_F(SparsePropagationTest, GlobalVariableOverDefined) {
/// Test that we propagate information through function returns.
///
-/// define internal i64 @f(i1* %cond) {
+/// define internal i64 @f(ptr %cond) {
/// if:
-/// %0 = load i1, i1* %cond
+/// %0 = load i1, ptr %cond
/// br i1 %0, label %then, label %else
///
/// then:
@@ -397,9 +397,9 @@ TEST_F(SparsePropagationTest, FunctionDefined) {
/// Test that we propagate information through function returns.
///
-/// define internal i64 @f(i1* %cond) {
+/// define internal i64 @f(ptr %cond) {
/// if:
-/// %0 = load i1, i1* %cond
+/// %0 = load i1, ptr %cond
/// br i1 %0, label %then, label %else
///
/// then:
diff --git a/llvm/unittests/Analysis/UnrollAnalyzerTest.cpp b/llvm/unittests/Analysis/UnrollAnalyzerTest.cpp
index d5ba175..3c7ee7ad 100644
--- a/llvm/unittests/Analysis/UnrollAnalyzerTest.cpp
+++ b/llvm/unittests/Analysis/UnrollAnalyzerTest.cpp
@@ -214,18 +214,18 @@ TEST(UnrollAnalyzerTest, PtrCmpSimplifications) {
"target datalayout = \"e-m:o-i64:64-f80:128-n8:16:32:64-S128\"\n"
"define void @ptr_cmp(i8 *%a) {\n"
"entry:\n"
- " %limit = getelementptr i8, i8* %a, i64 40\n"
- " %start.iv2 = getelementptr i8, i8* %a, i64 7\n"
+ " %limit = getelementptr i8, ptr %a, i64 40\n"
+ " %start.iv2 = getelementptr i8, ptr %a, i64 7\n"
" br label %loop.body\n"
"loop.body:\n"
- " %iv.0 = phi i8* [ %a, %entry ], [ %iv.1, %loop.body ]\n"
- " %iv2.0 = phi i8* [ %start.iv2, %entry ], [ %iv2.1, %loop.body ]\n"
- " %cmp = icmp eq i8* %iv2.0, %iv.0\n"
- " %cmp2 = icmp slt i8* %iv2.0, %iv.0\n"
- " %cmp3 = icmp ult i8* %iv2.0, %iv.0\n"
- " %iv.1 = getelementptr inbounds i8, i8* %iv.0, i64 1\n"
- " %iv2.1 = getelementptr inbounds i8, i8* %iv2.0, i64 1\n"
- " %exitcond = icmp ne i8* %iv.1, %limit\n"
+ " %iv.0 = phi ptr [ %a, %entry ], [ %iv.1, %loop.body ]\n"
+ " %iv2.0 = phi ptr [ %start.iv2, %entry ], [ %iv2.1, %loop.body ]\n"
+ " %cmp = icmp eq ptr %iv2.0, %iv.0\n"
+ " %cmp2 = icmp slt ptr %iv2.0, %iv.0\n"
+ " %cmp3 = icmp ult ptr %iv2.0, %iv.0\n"
+ " %iv.1 = getelementptr inbounds i8, ptr %iv.0, i64 1\n"
+ " %iv2.1 = getelementptr inbounds i8, ptr %iv2.0, i64 1\n"
+ " %exitcond = icmp ne ptr %iv.1, %limit\n"
" br i1 %exitcond, label %loop.body, label %loop.exit\n"
"loop.exit:\n"
" ret void\n"
@@ -248,14 +248,14 @@ TEST(UnrollAnalyzerTest, PtrCmpSimplifications) {
Instruction *Cmp2 = &*BBI++;
Instruction *Cmp3 = &*BBI++;
// Check simplification expected on the 5th iteration.
- // Check that "%cmp = icmp eq i8* %iv2.0, %iv.0" is simplified to 0.
+ // Check that "%cmp = icmp eq ptr %iv2.0, %iv.0" is simplified to 0.
auto I1 = SimplifiedValuesVector[5].find(Cmp1);
EXPECT_TRUE(I1 != SimplifiedValuesVector[5].end());
EXPECT_EQ(cast<ConstantInt>((*I1).second)->getZExtValue(), 0U);
- // Check that "%cmp2 = icmp slt i8* %iv2.0, %iv.0" does not simplify
+ // Check that "%cmp2 = icmp slt ptr %iv2.0, %iv.0" does not simplify
auto I2 = SimplifiedValuesVector[5].find(Cmp2);
EXPECT_TRUE(I2 == SimplifiedValuesVector[5].end());
- // Check that "%cmp3 = icmp ult i8* %iv2.0, %iv.0" is simplified to 0.
+ // Check that "%cmp3 = icmp ult ptr %iv2.0, %iv.0" is simplified to 0.
auto I3 = SimplifiedValuesVector[5].find(Cmp3);
EXPECT_TRUE(I3 != SimplifiedValuesVector[5].end());
EXPECT_EQ(cast<ConstantInt>((*I1).second)->getZExtValue(), 0U);
@@ -271,8 +271,8 @@ TEST(UnrollAnalyzerTest, CastSimplifications) {
"\n"
"loop:\n"
" %iv = phi i64 [ 0, %entry ], [ %inc, %loop ]\n"
- " %array_const_idx = getelementptr inbounds [10 x i32], [10 x i32]* @known_constant, i64 0, i64 %iv\n"
- " %const_array_element = load i32, i32* %array_const_idx, align 4\n"
+ " %array_const_idx = getelementptr inbounds [10 x i32], ptr @known_constant, i64 0, i64 %iv\n"
+ " %const_array_element = load i32, ptr %array_const_idx, align 4\n"
" %se = sext i32 %const_array_element to i64\n"
" %ze = zext i32 %const_array_element to i64\n"
" %tr = trunc i32 %const_array_element to i8\n"
diff --git a/llvm/unittests/Analysis/ValueTrackingTest.cpp b/llvm/unittests/Analysis/ValueTrackingTest.cpp
index bb0280ee..89a0fae 100644
--- a/llvm/unittests/Analysis/ValueTrackingTest.cpp
+++ b/llvm/unittests/Analysis/ValueTrackingTest.cpp
@@ -2697,9 +2697,9 @@ TEST_F(ComputeKnownBitsTest, ComputeKnownBitsGEPWithRange) {
parseAssembly(
"define void @test(ptr %p) {\n"
" %A = load i64, ptr %p, !range !{i64 64, i64 65536}\n"
- " %APtr = inttoptr i64 %A to float*"
- " %APtrPlus512 = getelementptr float, float* %APtr, i32 128\n"
- " %c = icmp ugt float* %APtrPlus512, inttoptr (i32 523 to float*)\n"
+ " %APtr = inttoptr i64 %A to ptr"
+ " %APtrPlus512 = getelementptr float, ptr %APtr, i32 128\n"
+ " %c = icmp ugt ptr %APtrPlus512, inttoptr (i32 523 to ptr)\n"
" call void @llvm.assume(i1 %c)\n"
" ret void\n"
"}\n"
@@ -2730,9 +2730,9 @@ TEST_F(ComputeKnownBitsTest, ComputeKnownBitsGEPWithRangeNoOverlap) {
parseAssembly(
"define void @test(ptr %p) {\n"
" %A = load i64, ptr %p, !range !{i64 32, i64 64}\n"
- " %APtr = inttoptr i64 %A to float*"
- " %APtrPlus512 = getelementptr float, float* %APtr, i32 128\n"
- " %c = icmp ugt float* %APtrPlus512, inttoptr (i32 523 to float*)\n"
+ " %APtr = inttoptr i64 %A to ptr"
+ " %APtrPlus512 = getelementptr float, ptr %APtr, i32 128\n"
+ " %c = icmp ugt ptr %APtrPlus512, inttoptr (i32 523 to ptr)\n"
" call void @llvm.assume(i1 %c)\n"
" ret void\n"
"}\n"