Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add LLVM Opaque Pointer Support #224

Open
idavis opened this issue Dec 20, 2022 · 0 comments
Open

Add LLVM Opaque Pointer Support #224

idavis opened this issue Dec 20, 2022 · 0 comments
Labels
maintenance Code quality improvement or maintenance

Comments

@idavis
Copy link
Collaborator

idavis commented Dec 20, 2022

Once Opaque Pointers in QIR is resolved, the deprecated calls need to be replaced with the new versions:

Old Name New Name
LLVMBuildLoad LLVMBuildLoad2
LLVMBuildCall LLVMBuildCall2
LLVMBuildInvoke LLVMBuildInvoke2
LLVMBuildGEP LLVMBuildGEP2
LLVMBuildInBoundsGEP LLVMBuildInBoundsGEP2
LLVMBuildStructGEP LLVMBuildStructGEP2
LLVMBuildPtrDiff LLVMBuildPtrDiff2
LLVMConstGEP LLVMConstGEP2
LLVMConstInBoundsGEP LLVMConstInBoundsGEP2
LLVMAddAlias LLVMAddAlias2

In preparation for this, we need to move PyQIR to LLVM 16 which should allow working with modules that can use both typed and opaque pointers. This should give us a working base from which others can migrate their tooling to support opaque pointers. We will need to design an API that allows us to turn on/off opaque pointers and use the appropriate LLVM calls depending on which API is being used.

@bamarsha bamarsha added the maintenance Code quality improvement or maintenance label Dec 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintenance Code quality improvement or maintenance
Projects
None yet
Development

No branches or pull requests

2 participants