[llvm-branch-commits] [llvm] [IR] Introduce the `ptrtoaddr` instruction (PR #139357)

Alexander Richardson via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Tue May 13 13:33:07 PDT 2025


================
@@ -4904,13 +4907,43 @@ class PtrToIntInst : public CastInst {
 
   // Methods for support type inquiry through isa, cast, and dyn_cast:
   static bool classof(const Instruction *I) {
-    return I->getOpcode() == PtrToInt;
+    return I->getOpcode() == PtrToInt || I->getOpcode() == PtrToAddr;
+  }
+  static bool classof(const Value *V) {
+    return isa<Instruction>(V) && classof(cast<Instruction>(V));
+  }
+};
+
+/// This class represents a cast from a pointer to an address (non-capturing
+/// ptrtoint). Inherits from PtrToIntInst since it is a less restrictive version
+/// of ptrtoint, so treating it as ptrtoint is conservatively correct.
+class PtrToAddrInst : public PtrToIntInst {
----------------
arichardson wrote:

Sounds good to me, let me see how many more changes are needed. My plan was to remove inheritance once everything we need has migrated but it's probably safer not doing it.

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


More information about the llvm-branch-commits mailing list