NVIDIA / cuda-quantum

C++ and Python support for the CUDA Quantum programming model for heterogeneous quantum-classical workflows
https://nvidia.github.io/cuda-quantum/
Other
568 stars 192 forks source link

[RFC] QIR and opaque pointers #16

Open schweitzpgi opened 1 year ago

schweitzpgi commented 1 year ago

Overview

The QIR specification has opaque (typed) pointers such a %Qubit *. These typed pointer may be in use in target backends and their translators.

As of LLVM 17, typed pointers are no longer supported. All pointers must be "opaque", that is they will no longer carry any type annotation as to what the pointed-to object's type is or may be.

CUDA Quantum will need some resolution on this situation in order to remain current with the tip of LLVM/Clang/MLIR development.

schweitzpgi commented 1 year ago

We still need a plan for opaque pointers and QIR. Remaining stuck at an arbitrary LLVM commit will continue to add technical debt the farther we fall behind.

bettinaheim commented 1 year ago

Workstream definition for the QIR spec: https://github.com/qir-alliance/.github/pull/42

bettinaheim commented 8 months ago

Currently, we are working on a prototype for using target extension types to confirm the feasibility for the spec update.