<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/54064>54064</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Support opaque pointers in MLIR
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            mlir:llvm,
            opaque-pointers
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          nikic
      </td>
    </tr>
</table>

<pre>
    I believe the design of the MLIR LLVM dialect is compatible with opaque pointers, in that the MLIR-level pointer type stores its own element type and as such is not dependent on how the LLVM-level pointer type looks like.

However, it's not really obvious to me how this MLIR-level pointer element type can be accessed from LLVMOps.td, e.g. in https://github.com/llvm/llvm-project/blob/c6a3225bb03b6afc2b63fbf13db3c100406b32ce/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td#L301

Some pointers (haha) would be appreciated.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyVU02PmzAQ_TVwGQUZO4TNgUPaKGqkrCrtSr37YwhujO1ikyj_vgY23W21l0oW42GGN2_eDMKpe3MEgUbjFSF2CAqDPltw7ew9n44vcDr9eAaluUEZQQeQrvc8amEQbjp24Dz_NSJ4p23EIWT0K2ibPufxD8bKJHzzSIF49wghugED6BjA3SygwR5tXGLcKuABwii7qaJ1MRHzaNWU4Sx07jZjT9Q-wzbOXQIYfcEiI_uM7JbnN3dLucPMMGa0XpAH5MbcwYmrdmOA6KDHtwqp9if0_6IquU0CApcSQ0AF7eD6mdd3H4qoplpYnItJki5GHzK2y-ghnXPSbhRFUjM5xlwfZuUH9zNJnVxhnEhGbjijtBKCMLHhraRiw1rRlkwJJktC1mQjGJWYUnujU3sHbaUZ1YcX-2V86TZRO768XR4c2YmR8qNSr65_nyhk9KnjHc_oFm5uNGpu2PsBpeYRVZGrhqkt2_I86miweR29d0P8dzMmDSY583EwzX-LoUMYMW3XoUr9rvOuwarGUkr1hIqRqq14LWjFsESsSr6tZW542uzQZNWXjNJZCLZbsOk0lmQWgqv31aVZtc91Qwmdzrqs13VZFWW7qUjNJeFYKRQiWxPsuTbFhFa44ZwPzcxWjOeQgkaHGN6DPEz_FOLMJOHzMXZuaKy-aJnPbTVzT78B-Asusg">