Skip to content

Conversation

@arsenm
Copy link
Contributor

@arsenm arsenm commented Nov 11, 2025

No description provided.

@arsenm arsenm marked this pull request as ready for review November 11, 2025 02:18
Copy link
Contributor Author

arsenm commented Nov 11, 2025

This stack of pull requests is managed by Graphite. Learn more about stacking.

@llvmbot llvmbot added backend:WebAssembly mlgo llvm:analysis Includes value tracking, cost tables and constant folding llvm:transforms labels Nov 11, 2025
@llvmbot
Copy link
Member

llvmbot commented Nov 11, 2025

@llvm/pr-subscribers-llvm-analysis
@llvm/pr-subscribers-llvm-transforms

@llvm/pr-subscribers-mlgo

Author: Matt Arsenault (arsenm)

Changes

Patch is 101.69 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/167443.diff

25 Files Affected:

  • (modified) llvm/unittests/Analysis/AliasAnalysisTest.cpp (+25-25)
  • (modified) llvm/unittests/Analysis/AliasSetTrackerTest.cpp (+3-3)
  • (modified) llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp (+45-45)
  • (modified) llvm/unittests/Analysis/CGSCCPassManagerTest.cpp (+8-8)
  • (modified) llvm/unittests/Analysis/CaptureTrackingTest.cpp (+20-20)
  • (modified) llvm/unittests/Analysis/DDGTest.cpp (+22-22)
  • (modified) llvm/unittests/Analysis/FunctionPropertiesAnalysisTest.cpp (+22-22)
  • (modified) llvm/unittests/Analysis/LazyCallGraphTest.cpp (+104-104)
  • (modified) llvm/unittests/Analysis/SparsePropagation.cpp (+4-4)
  • (modified) llvm/unittests/Analysis/UnrollAnalyzerTest.cpp (+15-15)
  • (modified) llvm/unittests/Analysis/ValueTrackingTest.cpp (+6-6)
  • (modified) llvm/unittests/MIR/MachineMetadata.cpp (+6-6)
  • (modified) llvm/unittests/Target/WebAssembly/WebAssemblyExceptionInfoTest.cpp (+2-2)
  • (modified) llvm/unittests/Transforms/IPO/AttributorTest.cpp (+6-6)
  • (modified) llvm/unittests/Transforms/Scalar/LICMTest.cpp (+6-6)
  • (modified) llvm/unittests/Transforms/Scalar/LoopPassManagerTest.cpp (+22-22)
  • (modified) llvm/unittests/Transforms/Utils/BasicBlockUtilsTest.cpp (+4-4)
  • (modified) llvm/unittests/Transforms/Utils/CloningTest.cpp (+5-5)
  • (modified) llvm/unittests/Transforms/Utils/CodeExtractorTest.cpp (+30-30)
  • (modified) llvm/unittests/Transforms/Utils/CodeMoverUtilsTest.cpp (+67-67)
  • (modified) llvm/unittests/Transforms/Utils/LocalTest.cpp (+7-7)
  • (modified) llvm/unittests/Transforms/Utils/MemTransferLowering.cpp (+18-18)
  • (modified) llvm/unittests/Transforms/Utils/ScalarEvolutionExpanderTest.cpp (+8-8)
  • (modified) llvm/unittests/Transforms/Utils/UnrollLoopTest.cpp (+7-7)
  • (modified) llvm/unittests/Transforms/Utils/ValueMapperTest.cpp (+1-1)
diff --git a/llvm/unittests/Analysis/AliasAnalysisTest.cpp b/llvm/unittests/Analysis/AliasAnalysisTest.cpp
index 06066b1b92c51..a28d318ab32c8 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 @@ class AAPassInfraTest : public testing::Test {
 
 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 e784e6eefb79c..b5adc84185c96 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 5fd2ecc4f29b6..921e2aa8cd30b 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 17240a1c73bce..bf5afe8e79354 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 ea3f21efc014c..d7ee5252d50be 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 %ar...
[truncated]

@github-actions
Copy link

⚠️ C/C++ code formatter, clang-format found issues in your code. ⚠️

You can test this locally with the following command:
git-clang-format --diff origin/main HEAD --extensions cpp -- llvm/unittests/Analysis/AliasAnalysisTest.cpp llvm/unittests/Analysis/AliasSetTrackerTest.cpp llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp llvm/unittests/Analysis/CGSCCPassManagerTest.cpp llvm/unittests/Analysis/CaptureTrackingTest.cpp llvm/unittests/Analysis/DDGTest.cpp llvm/unittests/Analysis/FunctionPropertiesAnalysisTest.cpp llvm/unittests/Analysis/LazyCallGraphTest.cpp llvm/unittests/Analysis/SparsePropagation.cpp llvm/unittests/Analysis/UnrollAnalyzerTest.cpp llvm/unittests/Analysis/ValueTrackingTest.cpp llvm/unittests/MIR/MachineMetadata.cpp llvm/unittests/Target/WebAssembly/WebAssemblyExceptionInfoTest.cpp llvm/unittests/Transforms/IPO/AttributorTest.cpp llvm/unittests/Transforms/Scalar/LICMTest.cpp llvm/unittests/Transforms/Scalar/LoopPassManagerTest.cpp llvm/unittests/Transforms/Utils/BasicBlockUtilsTest.cpp llvm/unittests/Transforms/Utils/CloningTest.cpp llvm/unittests/Transforms/Utils/CodeExtractorTest.cpp llvm/unittests/Transforms/Utils/CodeMoverUtilsTest.cpp llvm/unittests/Transforms/Utils/LocalTest.cpp llvm/unittests/Transforms/Utils/MemTransferLowering.cpp llvm/unittests/Transforms/Utils/ScalarEvolutionExpanderTest.cpp llvm/unittests/Transforms/Utils/UnrollLoopTest.cpp llvm/unittests/Transforms/Utils/ValueMapperTest.cpp --diff_from_common_commit

⚠️
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing origin/main to the base branch/commit you want to compare against.
⚠️

View the diff from clang-format here.
diff --git a/llvm/unittests/Analysis/AliasAnalysisTest.cpp b/llvm/unittests/Analysis/AliasAnalysisTest.cpp
index a28d318ab..c54165c9b 100644
--- a/llvm/unittests/Analysis/AliasAnalysisTest.cpp
+++ b/llvm/unittests/Analysis/AliasAnalysisTest.cpp
@@ -246,7 +246,8 @@ TEST_F(AliasAnalysisTest, BatchAAPhiCycles) {
       %s2 = select i1 %c, ptr %a2, ptr %a1
       br label %loop
     }
-  )", Err, C);
+  )",
+                                                  Err, C);
 
   Function *F = M->getFunction("f");
   Instruction *Phi = getInstructionByName(*F, "phi");
@@ -291,7 +292,8 @@ TEST_F(AliasAnalysisTest, BatchAAPhiAssumption) {
       %b.next = getelementptr i8, ptr %b, i64 1
       br label %loop
     }
-  )", Err, C);
+  )",
+                                                  Err, C);
 
   Function *F = M->getFunction("f");
   Instruction *A = getInstructionByName(*F, "a");
diff --git a/llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp b/llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp
index 921e2aa8c..5103f7d63 100644
--- a/llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp
+++ b/llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp
@@ -72,13 +72,12 @@ bool hasTheRightValue(AssumeInst *Assume, Value *WasOn,
 
 TEST(AssumeQueryAPI, hasAttributeInAssume) {
   EnableKnowledgeRetention.setValue(true);
-  StringRef Head =
-      "declare void @llvm.assume(i1)\n"
-      "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(ptr %P, ptr %P1, ptr %P2, ptr %P3) {\n";
+  StringRef Head = "declare void @llvm.assume(i1)\n"
+                   "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(ptr %P, ptr %P1, ptr %P2, ptr %P3) {\n";
   StringRef Tail = "ret void\n"
                    "}";
   std::vector<std::pair<StringRef, llvm::function_ref<void(Instruction *)>>>
@@ -127,7 +126,8 @@ TEST(AssumeQueryAPI, hasAttributeInAssume) {
                                      Attribute::AttrKind::Alignment, 64));
       }));
   Tests.push_back(std::make_pair(
-      "call void @func_many(ptr 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());
@@ -249,13 +249,12 @@ static bool MapHasRightValue(RetainedKnowledgeMap &Map, AssumeInst *II,
 
 TEST(AssumeQueryAPI, fillMapFromAssume) {
   EnableKnowledgeRetention.setValue(true);
-  StringRef Head =
-      "declare void @llvm.assume(i1)\n"
-      "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(ptr %P, ptr %P1, ptr %P2, ptr %P3) {\n";
+  StringRef Head = "declare void @llvm.assume(i1)\n"
+                   "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(ptr %P, ptr %P1, ptr %P2, ptr %P3) {\n";
   StringRef Tail = "ret void\n"
                    "}";
   std::vector<std::pair<StringRef, llvm::function_ref<void(Instruction *)>>>
diff --git a/llvm/unittests/Analysis/LazyCallGraphTest.cpp b/llvm/unittests/Analysis/LazyCallGraphTest.cpp
index 5c0bfbd74..f16470f9e 100644
--- a/llvm/unittests/Analysis/LazyCallGraphTest.cpp
+++ b/llvm/unittests/Analysis/LazyCallGraphTest.cpp
@@ -139,83 +139,82 @@ static const char DiamondOfTriangles[] =
 
    All call edges go up between RefSCCs, and clockwise around the RefSCC.
  */
-static const char DiamondOfTrianglesRefGraph[] =
-     "define void @a1() {\n"
-     "entry:\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 ptr\n"
-     "  store ptr @a3, ptr %a\n"
-     "  ret void\n"
-     "}\n"
-     "define void @a3() {\n"
-     "entry:\n"
-     "  %a = alloca ptr\n"
-     "  store ptr @a1, ptr %a\n"
-     "  ret void\n"
-     "}\n"
-     "define void @b1() {\n"
-     "entry:\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 ptr\n"
-     "  store ptr @b3, ptr %a\n"
-     "  ret void\n"
-     "}\n"
-     "define void @b3() {\n"
-     "entry:\n"
-     "  %a = alloca ptr\n"
-     "  store ptr @b1, ptr %a\n"
-     "  ret void\n"
-     "}\n"
-     "define void @c1() {\n"
-     "entry:\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 ptr\n"
-     "  store ptr @c3, ptr %a\n"
-     "  ret void\n"
-     "}\n"
-     "define void @c3() {\n"
-     "entry:\n"
-     "  %a = alloca ptr\n"
-     "  store ptr @c1, ptr %a\n"
-     "  ret void\n"
-     "}\n"
-     "define void @d1() {\n"
-     "entry:\n"
-     "  %a = alloca ptr\n"
-     "  store ptr @d2, ptr %a\n"
-     "  ret void\n"
-     "}\n"
-     "define void @d2() {\n"
-     "entry:\n"
-     "  %a = alloca ptr\n"
-     "  store ptr @d3, ptr %a\n"
-     "  ret void\n"
-     "}\n"
-     "define void @d3() {\n"
-     "entry:\n"
-     "  %a = alloca ptr\n"
-     "  store ptr @d1, ptr %a\n"
-     "  ret void\n"
-     "}\n";
+static const char DiamondOfTrianglesRefGraph[] = "define void @a1() {\n"
+                                                 "entry:\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 ptr\n"
+                                                 "  store ptr @a3, ptr %a\n"
+                                                 "  ret void\n"
+                                                 "}\n"
+                                                 "define void @a3() {\n"
+                                                 "entry:\n"
+                                                 "  %a = alloca ptr\n"
+                                                 "  store ptr @a1, ptr %a\n"
+                                                 "  ret void\n"
+                                                 "}\n"
+                                                 "define void @b1() {\n"
+                                                 "entry:\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 ptr\n"
+                                                 "  store ptr @b3, ptr %a\n"
+                                                 "  ret void\n"
+                                                 "}\n"
+                                                 "define void @b3() {\n"
+                                                 "entry:\n"
+                                                 "  %a = alloca ptr\n"
+                                                 "  store ptr @b1, ptr %a\n"
+                                                 "  ret void\n"
+                                                 "}\n"
+                                                 "define void @c1() {\n"
+                                                 "entry:\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 ptr\n"
+                                                 "  store ptr @c3, ptr %a\n"
+                                                 "  ret void\n"
+                                                 "}\n"
+                                                 "define void @c3() {\n"
+                                                 "entry:\n"
+                                                 "  %a = alloca ptr\n"
+                                                 "  store ptr @c1, ptr %a\n"
+                                                 "  ret void\n"
+                                                 "}\n"
+                                                 "define void @d1() {\n"
+                                                 "entry:\n"
+                                                 "  %a = alloca ptr\n"
+                                                 "  store ptr @d2, ptr %a\n"
+                                                 "  ret void\n"
+                                                 "}\n"
+                                                 "define void @d2() {\n"
+                                                 "entry:\n"
+                                                 "  %a = alloca ptr\n"
+                                                 "  store ptr @d3, ptr %a\n"
+                                                 "  ret void\n"
+                                                 "}\n"
+                                                 "define void @d3() {\n"
+                                                 "entry:\n"
+                                                 "  %a = alloca ptr\n"
+                                                 "  store ptr @d1, ptr %a\n"
+                                                 "  ret void\n"
+                                                 "}\n";
 
 static LazyCallGraph buildCG(Module &M) {
   TargetLibraryInfoImpl TLII(M.getTargetTriple());
@@ -1002,29 +1001,28 @@ TEST(LazyCallGraphTest, IncomingEdgeInsertionLargeCallCycle) {
 
 TEST(LazyCallGraphTest, IncomingEdgeInsertionLargeRefCycle) {
   LLVMContext Context;
-  std::unique_ptr<Module> M =
-      parseAssembly(Context, "define void @a() {\n"
-                             "entry:\n"
-                             "  %p = alloca ptr\n"
-                             "  store ptr @b, ptr %p\n"
-                             "  ret void\n"
-                             "}\n"
-                             "define void @b() {\n"
-                             "entry:\n"
-                             "  %p = alloca ptr\n"
-                             "  store ptr @c, ptr %p\n"
-                             "  ret void\n"
-                             "}\n"
-                             "define void @c() {\n"
-                             "entry:\n"
-                             "  %p = alloca ptr\n"
-                             "  store ptr @d, ptr %p\n"
-                             "  ret void\n"
-                             "}\n"
-                             "define void @d() {\n"
-                             "entry:\n"
-                             "  ret void\n"
-                             "}\n");
+  std::unique_ptr<Module> M = parseAssembly(Context, "define void @a() {\n"
+                                                     "entry:\n"
+                                                     "  %p = alloca ptr\n"
+                                                     "  store ptr @b, ptr %p\n"
+                                                     "  ret void\n"
+                                                     "}\n"
+                                                     "define void @b() {\n"
+                                                     "entry:\n"
+                                                     "  %p = alloca ptr\n"
+                                                     "  store ptr @c, ptr %p\n"
+                                                     "  ret void\n"
+                                                     "}\n"
+                                                     "define void @c() {\n"
+                                                     "entry:\n"
+                                                     "  %p = alloca ptr\n"
+                                                     "  store ptr @d, ptr %p\n"
+                                                     "  ret void\n"
+                                                     "}\n"
+                                                     "define void @d() {\n"
+                                                     "entry:\n"
+                                                     "  ret void\n"
+                                                     "}\n");
   LazyCallGraph CG = buildCG(*M);
 
   // Force the graph to be fully expanded.
@@ -1305,28 +1303,28 @@ TEST(LazyCallGraphTest, InternalEdgeMutation) {
 TEST(LazyCallGraphTest, InternalEdgeRemoval) {
   LLVMContext Context;
   // A nice fully connected (including self-edges) RefSCC.
-  std::unique_ptr<Module> M = parseAssembly(
-      Context, "define void @a(ptr %ptr) {\n"
-               "entry:\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(ptr %ptr) {\n"
-               "entry:\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(ptr %ptr) {\n"
-               "entry:\n"
-               "  store ptr @a, ptr %ptr\n"
-               "  store ptr @b, ptr %ptr\n"
-               "  store ptr @c, ptr %ptr\n"
-               "  ret void\n"
-               "}\n");
+  std::unique_ptr<Module> M =
+      parseAssembly(Context, "define void @a(ptr %ptr) {\n"
+                             "entry:\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(ptr %ptr) {\n"
+                             "entry:\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(ptr %ptr) {\n"
+                             "entry:\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);
 
   // Force the graph to be fully expanded.
@@ -1383,28 +1381,28 @@ TEST(LazyCallGraphTest, InternalEdgeRemoval) {
 TEST(LazyCallGraphTest, InternalMultiEdgeRemoval) {
   LLVMContext Context;
   // A nice fully connected (including self-edges) RefSCC.
-  std::unique_ptr<Module> M = parseAssembly(
-      Context, "define void @a(ptr %ptr) {\n"
-               "entry:\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(ptr %ptr) {\n"
-               "entry:\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(ptr %ptr) {\n"
-               "entry:\n"
-               "  store ptr @a, ptr %ptr\n"
-               "  store ptr @b, ptr %ptr\n"
-               "  store ptr @c, ptr %ptr\n"
-               "  ret void\n"
-               "}\n");
+  std::unique_ptr<Module> M =
+      parseAssembly(Context, "define void @a(ptr %ptr) {\n"
+                             "entry:\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(ptr %ptr) {\n"
+                             "entry:\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(ptr %ptr) {\n"
+                             "entry:\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);
 
   // Force the graph to be fully expanded.
@@ -1453,25 +1451,25 @@ 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(ptr %ptr) {\n"
-               "entry:\n"
-               "  call void @b(ptr %ptr)\n"
-               "  store ptr @c, ptr %ptr\n"
-               "  ret void\n"
-               "}\n"
-               "define void @b(ptr %ptr) {\n"
-               "entry:\n"
-               "  store ptr @a, ptr %ptr\n"
-               "  call void @c(ptr %ptr)\n"
-               "  ret void\n"
-               "}\n"
-               "define void @c(ptr %ptr) {\n"
-               "entry:\n"
-               "  call void @a(ptr %ptr)\n"
-               "  store ptr @b, ptr %ptr\n"
-               "  ret void\n"
-               "}\n");
+  std::unique_ptr<Module> M =
+      parseAssembly(Context, "define void @a(ptr %ptr) {\n"
+                             "entry:\n"
+                             "  call void @b(ptr %ptr)\n"
+                             "  store ptr @c, ptr %ptr\n"
+                             "  ret void\n"
+                             "}\n"
+                             "define void @b(ptr %ptr) {\n"
+                             "entry:\n"
+                             "  store ptr @a, ptr %ptr\n"
+                             "  call void @c(ptr %ptr)\n"
+                             "  ret void\n"
+                             "}\n"
+                             "define void @c(ptr %ptr) {\n"
+                             "entry:\n"
+                             "  call void @a(ptr %ptr)\n"
+                             "  store ptr @b, ptr %ptr\n"
+                             "  ret void\n"
+                             "}\n");
   LazyCallGraph CG = buildCG(*M);
 
   // Force the graph to be fully expanded.
@@ -2017,34 +2015,33 @@ TEST(LazyCallGraphTest, ReplaceNodeFunction) {
   // A graph with several different kinds of edges pointing at a particular
   // function.
   std::unique_ptr<Module> M =
-      parseAssembly(Context,
-                    "define void @a(ptr %ptr) {\n"
-                    "entry:\n"
-                    "  store ptr @d, ptr %ptr\n"
-                    "  ret void\n"
-                    "}\n"
-                    "define void @b(ptr %ptr) {\n"
-                    "entry:\n"
-                    "  store ptr @d, ptr %ptr\n"
-                    "  store ptr @d, ptr %ptr\n"
-                    "  call void @d(ptr %ptr)"
-                    "  ret void\n"
-                    "}\n"
-                    "define void @c(ptr %ptr) {\n"
-                    "entry:\n"
-                    "  call void @d(ptr %ptr)"
-                    "  call void @d(ptr %ptr)"
-                    "  store ptr @d, ptr %ptr\n"
-                    "  ret void\n"
-                    "}\n"
-                    "define void @d(ptr %ptr) {\n"
-                    "entry:\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");
+      parseAssembly(Context, "define void @a(ptr %ptr) {\n"
+                             "entry:\n"
+                             "  store ptr @d, ptr %ptr\n"
+                             "  ret void\n"
+                             "}\n"
+                             "define void @b(ptr %ptr) {\n"
+                             "entry:\n"
+                             "  store ptr @d, ptr %ptr\n"
+                             "  store ptr @d, ptr %ptr\n"
+                             "  call void @d(ptr %ptr)"
+                             "  ret void\n"
+                             "}\n"
+                             "define void @c(ptr %ptr) {\n"
+                             "entry:\n"
+                             "  call void @d(ptr %ptr)"
+                             "  call void @d(ptr %ptr)"
+                             "  store ptr @d, ptr %ptr\n"
+                             "  ret void\n"
+                             "}\n"
+                             "define void @d(ptr %ptr) {\n"
+                             "entry:\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);
 
   // Force the graph to be fully expanded.
@@ -2097,32 +2094,31 @@ TEST(LazyCallGraphTest, RemoveFunctionWithSpuriousRef) {
   LLVMContext Context;
   // A graph with a couple of RefSCCs.
   std::unique_ptr<Module> M =
-      parseAssembly(Context,
-                    "define void @a(ptr %ptr) {\n"
-                    "entry:\n"
-                    "  store ptr @d, ptr %ptr\n"
-                    "  ret void\n"
-                    "}\n"
-                    "define void @b(ptr %ptr) {\n"
-                    "entry:\n"
-                    "  store ptr @c, ptr %ptr\n"
-                    "  ret void\n"
-                    "}\n"
-                    "define void @c(ptr %ptr) {\n"
-                    "entry:\n"
-                    "  call void @d(ptr %ptr)"
-                    "  ret void\n"
-                    "}\n"
-                    "define void @d(ptr %ptr) {\n"
-                    "entry:\n"
-                    "  call void @c(ptr %ptr)"
-                    "  store ptr @b, ptr %ptr\n"
-                    "  ret void\n"
-                    "}\n"
-                    "define void @dead() {\n"
-                    "entry:\n"
-                    "  ret void\n"
-                    "}\n");
+      parseAssembly(Context, "define void @a(ptr %ptr) {\n"
+                             "entry:\n"
+                             "  store ptr @d, ptr %ptr\n"
+                             "  ret void\n"
+                             "}\n"
+                             "define void @b(ptr %ptr) {\n"
+                             "entry:\n"
+                             "  store ptr @c, ptr %ptr\n"
+                             "  ret void\n"
+                             "}\n"
+                             "define void @c(ptr %ptr) {\n"
+                             "entry:\n"
+                             "  call void @d(ptr %ptr)"
+                             "  ret void\n"
+                             "}\n"
+                             "define void @d(ptr %ptr) {\n"
+                             "entry:\n"
+                             "  call void @c(ptr %ptr)"
+                             "  store ptr @b, ptr %ptr\n"
+                             "  ret void\n"
+                             "}\n"
+                             "define void @dead() {\n"
+                             "entry:\n"
+                             "  ret void\n"
+                             "}\n");
   LazyCallGraph CG = buildCG(*M);
 
   // Insert spurious ref edges.
diff --git a/llvm/unittests/Analysis/UnrollAnalyzerTest.cpp b/llvm/unittests/Analysis/UnrollAnalyzerTest.cpp
index 3c7ee7ad1..1d7e4e6b0 100644
--- a/llvm/unittests/Analysis/UnrollAnalyzerTest.cpp
+++ b/llvm/unittests/Analysis/UnrollAnalyzerTest.cpp
@@ -264,14 +264,16 @@ TEST(UnrollAnalyzerTest, PtrCmpSimplifications) {
 TEST(UnrollAnalyzerTest, CastSimplifications) {
   const char *ModuleStr =
       "target datalayout = \"e-m:o-i64:64-f80:128-n8:16:32:64-S128\"\n"
-      "@known_constant = internal unnamed_addr constant [10 x i32] [i32 0, i32 1, i32 0, i32 1, i32 0, i32 259, i32 0, i32 1, i32 0, i32 1], align 16\n"
+      "@known_constant = internal unnamed_addr constant [10 x i32] [i32 0, i32 "
+      "1, i32 0, i32 1, i32 0, i32 259, i32 0, i32 1, i32 0, i32 1], align 16\n"
       "define void @const_load_cast() {\n"
       "entry:\n"
       "  br label %loop\n"
       "\n"
       "loop:\n"
       "  %iv = phi i64 [ 0, %entry ], [ %inc, %loop ]\n"
-      "  %array_const_idx = getelementptr inbounds [10 x i32], ptr @known_constant, i64 0, i64 %iv\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"
diff --git a/llvm/unittests/Analysis/ValueTrackingTest.cpp b/llvm/unittests/Analysis/ValueTrackingTest.cpp
index 89a0faefc..f36b899a2 100644
--- a/llvm/unittests/Analysis/ValueTrackingTest.cpp
+++ b/llvm/unittests/Analysis/ValueTrackingTest.cpp
@@ -2694,16 +2694,15 @@ TEST_F(ComputeKnownBitsTest, ComputeKnownBitsAddWithRangeNoOverlap) {
 }
 
 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 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"
-      "declare void @llvm.assume(i1)\n");
+  parseAssembly("define void @test(ptr %p) {\n"
+                "  %A = load i64, ptr %p, !range !{i64 64, i64 65536}\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"
+                "declare void @llvm.assume(i1)\n");
   AssumptionCache AC(*F);
   KnownBits Known =
       computeKnownBits(A, M->getDataLayout(), &AC, F->front().getTerminator());
@@ -2727,16 +2726,15 @@ TEST_F(ComputeKnownBitsTest, ComputeKnownBitsGEPWithRange) {
 // This test is useful to check that we account for the scaling factor
 // in the gep. Indeed, gep float, [32,64), 128 is not 128 + [32,64).
 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 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"
-      "declare void @llvm.assume(i1)\n");
+  parseAssembly("define void @test(ptr %p) {\n"
+                "  %A = load i64, ptr %p, !range !{i64 32, i64 64}\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"
+                "declare void @llvm.assume(i1)\n");
   AssumptionCache AC(*F);
   KnownBits Known =
       computeKnownBits(A, M->getDataLayout(), &AC, F->front().getTerminator());
diff --git a/llvm/unittests/Transforms/Scalar/LoopPassManagerTest.cpp b/llvm/unittests/Transforms/Scalar/LoopPassManagerTest.cpp
index 88eaa875a..1fe91f616 100644
--- a/llvm/unittests/Transforms/Scalar/LoopPassManagerTest.cpp
+++ b/llvm/unittests/Transforms/Scalar/LoopPassManagerTest.cpp
@@ -861,32 +861,33 @@ TEST_F(LoopPassManagerTest, IndirectOuterPassInvalidation) {
 
 TEST_F(LoopPassManagerTest, LoopChildInsertion) {
   // Super boring module with three loops in a single loop nest.
-  M = parseIR(Context, "define void @f(ptr %ptr) {\n"
-                       "entry:\n"
-                       "  br label %loop.0\n"
-                       "loop.0:\n"
-                       "  %cond.0 = load volatile i1, ptr %ptr\n"
-                       "  br i1 %cond.0, label %loop.0.0.ph, label %end\n"
-                       "loop.0.0.ph:\n"
-                       "  br label %loop.0.0\n"
-                       "loop.0.0:\n"
-                       "  %cond.0.0 = load volatile i1, ptr %ptr\n"
-                       "  br i1 %cond.0.0, label %loop.0.0, label %loop.0.1.ph\n"
-                       "loop.0.1.ph:\n"
-                       "  br label %loop.0.1\n"
-                       "loop.0.1:\n"
-                       "  %cond.0.1 = load volatile i1, ptr %ptr\n"
-                       "  br i1 %cond.0.1, label %loop.0.1, label %loop.0.2.ph\n"
-                       "loop.0.2.ph:\n"
-                       "  br label %loop.0.2\n"
-                       "loop.0.2:\n"
-                       "  %cond.0.2 = load volatile i1, ptr %ptr\n"
-                       "  br i1 %cond.0.2, label %loop.0.2, label %loop.0.latch\n"
-                       "loop.0.latch:\n"
-                       "  br label %loop.0\n"
-                       "end:\n"
-                       "  ret void\n"
-                       "}\n");
+  M = parseIR(Context,
+              "define void @f(ptr %ptr) {\n"
+              "entry:\n"
+              "  br label %loop.0\n"
+              "loop.0:\n"
+              "  %cond.0 = load volatile i1, ptr %ptr\n"
+              "  br i1 %cond.0, label %loop.0.0.ph, label %end\n"
+              "loop.0.0.ph:\n"
+              "  br label %loop.0.0\n"
+              "loop.0.0:\n"
+              "  %cond.0.0 = load volatile i1, ptr %ptr\n"
+              "  br i1 %cond.0.0, label %loop.0.0, label %loop.0.1.ph\n"
+              "loop.0.1.ph:\n"
+              "  br label %loop.0.1\n"
+              "loop.0.1:\n"
+              "  %cond.0.1 = load volatile i1, ptr %ptr\n"
+              "  br i1 %cond.0.1, label %loop.0.1, label %loop.0.2.ph\n"
+              "loop.0.2.ph:\n"
+              "  br label %loop.0.2\n"
+              "loop.0.2:\n"
+              "  %cond.0.2 = load volatile i1, ptr %ptr\n"
+              "  br i1 %cond.0.2, label %loop.0.2, label %loop.0.latch\n"
+              "loop.0.latch:\n"
+              "  br label %loop.0\n"
+              "end:\n"
+              "  ret void\n"
+              "}\n");
 
   // Build up variables referring into the IR so we can rewrite it below
   // easily.
@@ -1064,32 +1065,33 @@ TEST_F(LoopPassManagerTest, LoopChildInsertion) {
 TEST_F(LoopPassManagerTest, LoopPeerInsertion) {
   // Super boring module with two loop nests and loop nest with two child
   // loops.
-  M = parseIR(Context, "define void @f(ptr %ptr) {\n"
-                       "entry:\n"
-                       "  br label %loop.0\n"
-                       "loop.0:\n"
-                       "  %cond.0 = load volatile i1, ptr %ptr\n"
-                       "  br i1 %cond.0, label %loop.0.0.ph, label %loop.2.ph\n"
-                       "loop.0.0.ph:\n"
-                       "  br label %loop.0.0\n"
-                       "loop.0.0:\n"
-                       "  %cond.0.0 = load volatile i1, ptr %ptr\n"
-                       "  br i1 %cond.0.0, label %loop.0.0, label %loop.0.2.ph\n"
-                       "loop.0.2.ph:\n"
-                       "  br label %loop.0.2\n"
-                       "loop.0.2:\n"
-                       "  %cond.0.2 = load volatile i1, ptr %ptr\n"
-                       "  br i1 %cond.0.2, label %loop.0.2, label %loop.0.latch\n"
-                       "loop.0.latch:\n"
-                       "  br label %loop.0\n"
-                       "loop.2.ph:\n"
-                       "  br label %loop.2\n"
-                       "loop.2:\n"
-                       "  %cond.2 = load volatile i1, ptr %ptr\n"
-                       "  br i1 %cond.2, label %loop.2, label %end\n"
-                       "end:\n"
-                       "  ret void\n"
-                       "}\n");
+  M = parseIR(Context,
+              "define void @f(ptr %ptr) {\n"
+              "entry:\n"
+              "  br label %loop.0\n"
+              "loop.0:\n"
+              "  %cond.0 = load volatile i1, ptr %ptr\n"
+              "  br i1 %cond.0, label %loop.0.0.ph, label %loop.2.ph\n"
+              "loop.0.0.ph:\n"
+              "  br label %loop.0.0\n"
+              "loop.0.0:\n"
+              "  %cond.0.0 = load volatile i1, ptr %ptr\n"
+              "  br i1 %cond.0.0, label %loop.0.0, label %loop.0.2.ph\n"
+              "loop.0.2.ph:\n"
+              "  br label %loop.0.2\n"
+              "loop.0.2:\n"
+              "  %cond.0.2 = load volatile i1, ptr %ptr\n"
+              "  br i1 %cond.0.2, label %loop.0.2, label %loop.0.latch\n"
+              "loop.0.latch:\n"
+              "  br label %loop.0\n"
+              "loop.2.ph:\n"
+              "  br label %loop.2\n"
+              "loop.2:\n"
+              "  %cond.2 = load volatile i1, ptr %ptr\n"
+              "  br i1 %cond.2, label %loop.2, label %end\n"
+              "end:\n"
+              "  ret void\n"
+              "}\n");
 
   // Build up variables referring into the IR so we can rewrite it below
   // easily.
@@ -1318,39 +1320,40 @@ TEST_F(LoopPassManagerTest, LoopDeletion) {
   // Build a module with a single loop nest that contains one outer loop with
   // three subloops, and one of those with its own subloop. We will
   // incrementally delete all of these to test different deletion scenarios.
-  M = parseIR(Context, "define void @f(ptr %ptr) {\n"
-                       "entry:\n"
-                       "  br label %loop.0\n"
-                       "loop.0:\n"
-                       "  %cond.0 = load volatile i1, ptr %ptr\n"
-                       "  br i1 %cond.0, label %loop.0.0.ph, label %end\n"
-                       "loop.0.0.ph:\n"
-                       "  br label %loop.0.0\n"
-                       "loop.0.0:\n"
-                       "  %cond.0.0 = load volatile i1, ptr %ptr\n"
-                       "  br i1 %cond.0.0, label %loop.0.0, label %loop.0.1.ph\n"
-                       "loop.0.1.ph:\n"
-                       "  br label %loop.0.1\n"
-                       "loop.0.1:\n"
-                       "  %cond.0.1 = load volatile i1, ptr %ptr\n"
-                       "  br i1 %cond.0.1, label %loop.0.1, label %loop.0.2.ph\n"
-                       "loop.0.2.ph:\n"
-                       "  br label %loop.0.2\n"
-                       "loop.0.2:\n"
-                       "  %cond.0.2 = load volatile i1, ptr %ptr\n"
-                       "  br i1 %cond.0.2, label %loop.0.2.0.ph, label %loop.0.latch\n"
-                       "loop.0.2.0.ph:\n"
-                       "  br label %loop.0.2.0\n"
-                       "loop.0.2.0:\n"
-                       "  %cond.0.2.0 = load volatile i1, ptr %ptr\n"
-                       "  br i1 %cond.0.2.0, label %loop.0.2.0, label %loop.0.2.latch\n"
-                       "loop.0.2.latch:\n"
-                       "  br label %loop.0.2\n"
-                       "loop.0.latch:\n"
-                       "  br label %loop.0\n"
-                       "end:\n"
-                       "  ret void\n"
-                       "}\n");
+  M = parseIR(Context,
+              "define void @f(ptr %ptr) {\n"
+              "entry:\n"
+              "  br label %loop.0\n"
+              "loop.0:\n"
+              "  %cond.0 = load volatile i1, ptr %ptr\n"
+              "  br i1 %cond.0, label %loop.0.0.ph, label %end\n"
+              "loop.0.0.ph:\n"
+              "  br label %loop.0.0\n"
+              "loop.0.0:\n"
+              "  %cond.0.0 = load volatile i1, ptr %ptr\n"
+              "  br i1 %cond.0.0, label %loop.0.0, label %loop.0.1.ph\n"
+              "loop.0.1.ph:\n"
+              "  br label %loop.0.1\n"
+              "loop.0.1:\n"
+              "  %cond.0.1 = load volatile i1, ptr %ptr\n"
+              "  br i1 %cond.0.1, label %loop.0.1, label %loop.0.2.ph\n"
+              "loop.0.2.ph:\n"
+              "  br label %loop.0.2\n"
+              "loop.0.2:\n"
+              "  %cond.0.2 = load volatile i1, ptr %ptr\n"
+              "  br i1 %cond.0.2, label %loop.0.2.0.ph, label %loop.0.latch\n"
+              "loop.0.2.0.ph:\n"
+              "  br label %loop.0.2.0\n"
+              "loop.0.2.0:\n"
+              "  %cond.0.2.0 = load volatile i1, ptr %ptr\n"
+              "  br i1 %cond.0.2.0, label %loop.0.2.0, label %loop.0.2.latch\n"
+              "loop.0.2.latch:\n"
+              "  br label %loop.0.2\n"
+              "loop.0.latch:\n"
+              "  br label %loop.0\n"
+              "end:\n"
+              "  ret void\n"
+              "}\n");
 
   // Build up variables referring into the IR so we can rewrite it below
   // easily.
diff --git a/llvm/unittests/Transforms/Utils/CloningTest.cpp b/llvm/unittests/Transforms/Utils/CloningTest.cpp
index 237bc6e87..be6113d67 100644
--- a/llvm/unittests/Transforms/Utils/CloningTest.cpp
+++ b/llvm/unittests/Transforms/Utils/CloningTest.cpp
@@ -392,9 +392,8 @@ TEST(CloneLoop, CloneLoopNest) {
   // Parse the module.
   LLVMContext Context;
 
-  std::unique_ptr<Module> M = parseIR(
-    Context,
-    R"(define void @foo(ptr %A, i32 %ub) {
+  std::unique_ptr<Module> M = parseIR(Context,
+                                      R"(define void @foo(ptr %A, i32 %ub) {
 entry:
   %guardcmp = icmp slt i32 0, %ub
   br i1 %guardcmp, label %for.outer.preheader, label %for.end
@@ -423,8 +422,7 @@ for.outer.exit:
   br label %for.end
 for.end:
   ret void
-})"
-    );
+})");
 
   runWithLoopInfoAndDominatorTree(
       *M, "foo", [&](Function &F, LoopInfo &LI, DominatorTree &DT) {
diff --git a/llvm/unittests/Transforms/Utils/CodeExtractorTest.cpp b/llvm/unittests/Transforms/Utils/CodeExtractorTest.cpp
index 90f06204e..b443d1836 100644
--- a/llvm/unittests/Transforms/Utils/CodeExtractorTest.cpp
+++ b/llvm/unittests/Transforms/Utils/CodeExtractorTest.cpp
@@ -351,9 +351,10 @@ TEST(CodeExtractor, StoreOutputInvokeResultAfterEHPad) {
         %ex.2 = phi ptr [ %ex.1, %lpad2 ], [ null, %lpad ]
         unreachable
     }
-  )invalid", Err, Ctx));
+  )invalid",
+                                                Err, Ctx));
 
-	if (!M) {
+  if (!M) {
     Err.print("unit", errs());
     exit(1);
   }
diff --git a/llvm/unittests/Transforms/Utils/UnrollLoopTest.cpp b/llvm/unittests/Transforms/Utils/UnrollLoopTest.cpp
index 7ba259deb..c4b01fa45 100644
--- a/llvm/unittests/Transforms/Utils/UnrollLoopTest.cpp
+++ b/llvm/unittests/Transforms/Utils/UnrollLoopTest.cpp
@@ -32,9 +32,9 @@ static std::unique_ptr<Module> parseIR(LLVMContext &C, const char *IR) {
 TEST(LoopUnrollRuntime, Latch) {
   LLVMContext C;
 
-  std::unique_ptr<Module> M = parseIR(
-    C,
-    R"(define i32 @test(ptr %a, ptr %b, ptr %c, i64 %n) {
+  std::unique_ptr<Module> M =
+      parseIR(C,
+              R"(define i32 @test(ptr %a, ptr %b, ptr %c, i64 %n) {
 entry:
   br label %while.cond
 
@@ -56,8 +56,7 @@ while.body:                                       ; preds = %while.cond
 
 while.end:                                        ; preds = %while.cond
   ret i32 0
-})"
-    );
+})");
 
   auto *F = M->getFunction("test");
   DominatorTree DT(*F);

Copy link
Contributor

@boomanaiden154 boomanaiden154 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

"entry:\n"
" %a = bitcast void ()* @f4 to i8*\n"
" %b = bitcast void ()* @f2 to i8*\n"
" %a = bitcast ptr @f4 to ptr\n"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a bit weird now that the bitcasts are explicitly redundant, but I guess it doesn't matter since the test really has nothing to do with bitcasts.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's also a big change from going from instruction to constant

@arsenm arsenm enabled auto-merge (squash) November 11, 2025 02:29
@arsenm arsenm merged commit bdf37f4 into main Nov 11, 2025
16 of 17 checks passed
@arsenm arsenm deleted the users/arsenm/unittests/convert-some-tests-opaque-pointers branch November 11, 2025 02:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend:WebAssembly llvm:analysis Includes value tracking, cost tables and constant folding llvm:transforms mlgo

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants