[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