Skip to content

Introduce CompileTarget and plumb it through the Compiler API#4599

Draft
lmondada wants to merge 2 commits into
NVIDIA:mainfrom
lmondada:lm/introduce-compile-options
Draft

Introduce CompileTarget and plumb it through the Compiler API#4599
lmondada wants to merge 2 commits into
NVIDIA:mainfrom
lmondada:lm/introduce-compile-options

Conversation

@lmondada
Copy link
Copy Markdown
Collaborator

@lmondada lmondada commented May 22, 2026

I've reworked #4569 to work better with @Renaud-K's proposed changes in #4557.

This PR sets up the plumbing to define compilation options in a new CompileTarget struct. This struct is currently constructed and populated by the QPU class using the QPU::getCompileTarget method. The method takes an executionContext as argument. It is currently unused but is paving the way to remove any dependency on the execution context within Compiler::runPassPipeline (and hence also from Compiler::lowerQuakeCode): the compiler pipeline would instead be fully determined from the CompileTarget.

In the future, we may choose to separate CompileTarget out of QPU and have the source of truth be outside of the QPU class.

@lmondada lmondada requested a review from Renaud-K May 22, 2026 12:27
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 22, 2026

CI Summary (push) — ✅ passed

Run #26506630005 · ✅ 6 · ⏩ 7 · ❌ 0 · ⛔ 0

Top-level jobs (13)
Job Result
binaries ⏩ skipped
build_and_test ✅ success
config_devdeps ✅ success
config_source_build ⏩ skipped
config_wheeldeps ✅ success
devdeps ✅ success
docker_image ⏩ skipped
gen_code_coverage ⏩ skipped
metadata ✅ success
python_metapackages ⏩ skipped
python_wheels ⏩ skipped
source_build ⏩ skipped
wheeldeps ✅ success
⏩ Skipped jobs (7) — intentionally skipped on PR builds; run on merge_group / workflow_dispatch
Job
binaries
config_source_build
docker_image
gen_code_coverage
python_metapackages
python_wheels
source_build
All sub-jobs (42) — every matrix leg, with links
Job Status Link
Build and test (amd64, gcc12, openmpi) / Dev environment (Debug) ✅ success view
Build and test (amd64, gcc12, openmpi) / Dev environment (Python) ✅ success view
Build and test (amd64, llvm, openmpi) / Dev environment (Debug) ✅ success view
Build and test (amd64, llvm, openmpi) / Dev environment (Python) ✅ success view
Build and test (arm64, llvm, openmpi) / Dev environment (Debug) ✅ success view
Build and test (arm64, llvm, openmpi) / Dev environment (Python) ✅ success view
CI Summary ❔ in_progress view
Configure build (devdeps) ✅ success view
Configure build (source_build) ⏩ skipped view
Configure build (wheeldeps) ✅ success view
Create CUDA Quantum installer ⏩ skipped view
Create Docker images ⏩ skipped view
Create Python metapackages ⏩ skipped view
Create Python wheels ⏩ skipped view
Gen code coverage ⏩ skipped view
Load dependencies (amd64, gcc12) / Caching ✅ success view
Load dependencies (amd64, gcc12) / Finalize ✅ success view
Load dependencies (amd64, gcc12) / Metadata ✅ success view
Load dependencies (amd64, llvm) / Caching ✅ success view
Load dependencies (amd64, llvm) / Finalize ✅ success view
Load dependencies (amd64, llvm) / Metadata ✅ success view
Load dependencies (arm64, gcc12) / Caching ✅ success view
Load dependencies (arm64, gcc12) / Finalize ✅ success view
Load dependencies (arm64, gcc12) / Metadata ✅ success view
Load dependencies (arm64, llvm) / Caching ✅ success view
Load dependencies (arm64, llvm) / Finalize ✅ success view
Load dependencies (arm64, llvm) / Metadata ✅ success view
Load source build cache ⏩ skipped view
Load wheel dependencies (amd64, 12.6) / Caching ✅ success view
Load wheel dependencies (amd64, 12.6) / Finalize ✅ success view
Load wheel dependencies (amd64, 12.6) / Metadata ✅ success view
Load wheel dependencies (amd64, 13.0) / Caching ✅ success view
Load wheel dependencies (amd64, 13.0) / Finalize ✅ success view
Load wheel dependencies (amd64, 13.0) / Metadata ✅ success view
Load wheel dependencies (arm64, 12.6) / Caching ✅ success view
Load wheel dependencies (arm64, 12.6) / Finalize ✅ success view
Load wheel dependencies (arm64, 12.6) / Metadata ✅ success view
Load wheel dependencies (arm64, 13.0) / Caching ✅ success view
Load wheel dependencies (arm64, 13.0) / Finalize ✅ success view
Load wheel dependencies (arm64, 13.0) / Metadata ✅ success view
Prepare cache clean-up ✅ success view
Retrieve PR info ✅ success view
✅ Required checks (6/6) — declared in .github/required-checks.yml for push
Required check Status Link
Build and test (amd64, llvm, openmpi) / Dev environment (Debug) ✅ success view
Build and test (amd64, llvm, openmpi) / Dev environment (Python) ✅ success view
Build and test (arm64, llvm, openmpi) / Dev environment (Debug) ✅ success view
Build and test (arm64, llvm, openmpi) / Dev environment (Python) ✅ success view
Build and test (amd64, gcc12, openmpi) / Dev environment (Debug) ✅ success view
Build and test (amd64, gcc12, openmpi) / Dev environment (Python) ✅ success view

@lmondada lmondada marked this pull request as ready for review May 22, 2026 15:18
@lmondada lmondada requested a review from atgeller May 22, 2026 18:10
@lmondada lmondada marked this pull request as draft May 26, 2026 18:12
Signed-off-by: Luca Mondada <luca@mondada.net>
@lmondada lmondada force-pushed the lm/introduce-compile-options branch 2 times, most recently from 5becddb to a85d825 Compare May 27, 2026 10:48
Signed-off-by: Luca Mondada <luca@mondada.net>
@lmondada lmondada force-pushed the lm/introduce-compile-options branch from a85d825 to a4f5b67 Compare May 27, 2026 10:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant