[nvq++] Remove kernel bodies in fixup-linkage#3874
Queued
lmondada wants to merge 2 commits intoNVIDIA:mainfrom
Queued
[nvq++] Remove kernel bodies in fixup-linkage#3874lmondada wants to merge 2 commits intoNVIDIA:mainfrom
lmondada wants to merge 2 commits intoNVIDIA:mainfrom
Conversation
Signed-off-by: Luca Mondada <luca@mondada.net>
Signed-off-by: Luca Mondada <luca@mondada.net>
|
CUDA Quantum Docs Bot: A preview of the documentation can be found here. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Currently, in MLIR mode kernel bodies are compiled by clang but never called: the MLIR-compiled kernels always shadow the LLVM-compiled ones. This PR removes these kernel bodies in the LLVM IR, when in MLIR mode. This will speed-up compilation and (in MLIR mode) will allow us to remove definitions of C++ types and functions that are only used within kernels (e.g.
cudaq::qvector).This PR is made of 2 commits, which can be reviewed independently:
.llfiles. The rewritten script is equivalent to the originalunreachableop. If this op is ever reached, the program would crash, but because the program control flow is always redirected to the MLIR kernels, this can never happen.