[llvm] [IRMover] Don't consider opaque types isomorphic to other types (PR #138241)

Teresa Johnson via llvm-commits llvm-commits at lists.llvm.org
Fri May 30 07:58:49 PDT 2025


================
@@ -196,38 +131,27 @@ bool TypeMapTy::areTypesIsomorphic(Type *DstTy, Type *SrcTy) {
       return false;
   }
 
-  // Otherwise, we speculate that these two types will line up and recursively
-  // check the subelements.
-  Entry = DstTy;
-  SpeculativeTypes.push_back(SrcTy);
-
+  // Recursively check the subelements.
   for (unsigned I = 0, E = SrcTy->getNumContainedTypes(); I != E; ++I)
     if (!areTypesIsomorphic(DstTy->getContainedType(I),
                             SrcTy->getContainedType(I)))
       return false;
 
   // If everything seems to have lined up, then everything is great.
-  return true;
-}
+  [[maybe_unused]] auto Res = MappedTypes.insert({SrcTy, DstTy});
----------------
teresajohnson wrote:

I'm having a hard time figuring out when these were added to MappedTypes with the old code structure, how did this work before?

https://github.com/llvm/llvm-project/pull/138241


More information about the llvm-commits mailing list