[Mlir-commits] [mlir] [mlir][LLVM] Add support for `ptrtoaddr` (PR #185104)

Tobias Gysi llvmlistbot at llvm.org
Sun Mar 8 07:30:08 PDT 2026


Markus =?utf-8?q?Böck?= <markus.boeck02 at gmail.com>,
Markus =?utf-8?q?Böck?= <markus.boeck02 at gmail.com>,
Markus =?utf-8?q?Böck?= <markus.boeck02 at gmail.com>,
Markus =?utf-8?q?Böck?= <markus.boeck02 at gmail.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/185104 at github.com>


================
@@ -629,6 +629,48 @@ def LLVM_IntToPtrOp : LLVM_DereferenceableCastOp<"inttoptr", "IntToPtr",
 def LLVM_PtrToIntOp : LLVM_CastOp<"ptrtoint", "PtrToInt",
                                   LLVM_ScalarOrVectorOf<LLVM_AnyPointer>,
                                   LLVM_ScalarOrVectorOf<AnySignlessInteger>>;
+
+def LLVM_PtrToAddrOp : LLVM_CastOp<"ptrtoaddr", "PtrToAddr",
+                                  LLVM_ScalarOrVectorOf<LLVM_AnyPointer>,
+                                  LLVM_ScalarOrVectorOf<AnySignlessInteger>> {
+  let llvmBuilder = "$res = builder.CreatePtrToAddr($arg);";
+  let hasVerifier = 1;
+
+  let description = [{
+    Operation mirroring LLVM's `ptrtoaddr` operation.
+
+    This operation casts a pointer (or a vector of pointers) to an integer
+    (or a vector of integers) without capturing the provenance of the pointer.
+    Therefore, an integer returned or derived from `llvm.ptrtoaddr` does not
+    create a legal-to-access pointer when used in `llvm.inttoptr`.
+    Code that only care about the address value of a pointer
----------------
gysit wrote:

```suggestion
    Code that only cares about the address value of a pointer
```
ultra nit: isn't Code singular here? 

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


More information about the Mlir-commits mailing list