From 43a15add235cc2deb7262d4a613f08d565ac2898 Mon Sep 17 00:00:00 2001 From: "Stefan J. Wernli" Date: Thu, 8 Apr 2021 09:02:26 -0700 Subject: [PATCH 1/5] Include QIR Runtime binaries and headers in drops (#619) --- src/Qir/Runtime/build-qir-runtime.ps1 | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/Qir/Runtime/build-qir-runtime.ps1 b/src/Qir/Runtime/build-qir-runtime.ps1 index d9e8f6e06df..f9c1ee2aa06 100644 --- a/src/Qir/Runtime/build-qir-runtime.ps1 +++ b/src/Qir/Runtime/build-qir-runtime.ps1 @@ -6,3 +6,18 @@ if (-not (Build-CMakeProject $PSScriptRoot "QIR Runtime")) { throw "At least one project failed to compile. Check the logs." } + +# Copy the results of runtime compilation and the corresponding headers to the drops folder so +# they can be included in pipeline artifacts. +$qirDropsFolder = (Join-Path $Env:DROPS_DIR QIR) +$qirDropsBin = (Join-Path $qirDropsFolder bin) +$qirDropsInclude = (Join-Path $qirDropsFolder include) +if (-not (Test-Path $qirDropsFolder)) { + New-Item -Path $qirDropsFolder -ItemType "directory" + New-Item -Path $qirDropsBin -ItemType "directory" + New-Item -Path $qirDropsInclude -ItemType "directory" +} +$qirBinaries = (Join-Path $PSScriptRoot build $Env:BUILD_CONFIGURATION bin *) +$qirIncludes = (Join-Path $PSScriptRoot public *) +Copy-Item $qirBinaries $qirDropsBin +Copy-Item $qirIncludes $qirDropsInclude \ No newline at end of file From 1b1a5685084a4d0c95bcb9d3fb6d83e4909b2198 Mon Sep 17 00:00:00 2001 From: Guen Prawiroatmodjo Date: Mon, 12 Apr 2021 15:42:56 -0700 Subject: [PATCH 2/5] Update brew to latest version as temporary workaround for Bintray sunset (#623) --- src/Qir/Runtime/prerequisites.ps1 | 4 ++++ src/Simulation/Native/prerequisites.ps1 | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/Qir/Runtime/prerequisites.ps1 b/src/Qir/Runtime/prerequisites.ps1 index 72ae1b5079c..35e9b351aba 100644 --- a/src/Qir/Runtime/prerequisites.ps1 +++ b/src/Qir/Runtime/prerequisites.ps1 @@ -8,6 +8,10 @@ if ($Env:ENABLE_QIRRUNTIME -ne "false") { choco install ninja } } elseif ($IsMacOS) { + # temporary workaround for Bintray sunset + # remove this after Homebrew is updated to 3.1.1 on MacOS image, see: + # https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md + brew update brew install ninja } else { sudo apt update diff --git a/src/Simulation/Native/prerequisites.ps1 b/src/Simulation/Native/prerequisites.ps1 index e7f32efff04..3f1272ffa84 100644 --- a/src/Simulation/Native/prerequisites.ps1 +++ b/src/Simulation/Native/prerequisites.ps1 @@ -4,6 +4,10 @@ if (($IsMacOS) -or ((Test-Path Env:AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Darwin")))) { # building with gcc-9 succeeds but some of the unit tests fail Write-Host "Install gcc-7 as pre-req for building native simulator on MacOS" + # temporary workaround for Bintray sunset + # remove this after Homebrew is updated to 3.1.1 on MacOS image, see: + # https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md + brew update brew install gcc@7 } else { Write-Host "No pre-reqs for building native simulator on platforms other than MacOS" From 8bbc0772d4be947420df0109f76e8a25d107ff9a Mon Sep 17 00:00:00 2001 From: "Stefan J. Wernli" Date: Wed, 14 Apr 2021 00:59:08 -0700 Subject: [PATCH 3/5] Add missing tuple copy to runtime IR (#625) --- src/Qir/Runtime/lib/QIR/bridge-rt.ll | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Qir/Runtime/lib/QIR/bridge-rt.ll b/src/Qir/Runtime/lib/QIR/bridge-rt.ll index c792e72cb82..3c54b56506e 100644 --- a/src/Qir/Runtime/lib/QIR/bridge-rt.ll +++ b/src/Qir/Runtime/lib/QIR/bridge-rt.ll @@ -80,6 +80,7 @@ declare void @llvm.va_end(i8*) declare i8* @quantum__rt__tuple_create(i64) declare void @quantum__rt__tuple_update_reference_count(i8*, i32) declare void @quantum__rt__tuple_update_alias_count(i8*, i32) +declare i8* @quantum__rt__tuple_copy(i8*, i1) declare void @quantum__rt__callable_update_reference_count(%"struct.QirCallable"*, i32) declare %"struct.QirCallable"* @quantum__rt__callable_create(void (i8*, i8*, i8*)**, void (i8*, i64)**, i8*) @@ -341,6 +342,13 @@ define dllexport void @__quantum__rt__tuple_update_alias_count(%Tuple* %.th, i32 ret void } +define dllexport %Tuple* @__quantum__rt__tuple_copy(%Tuple* %.th, i1 %force) { + %th = bitcast %Tuple* %.th to i8* + %th2 = call i8* @quantum__rt__tuple_copy(i8* %th, i1 %force) + %.th2 = bitcast i8* %th2 to %Tuple* + ret %Tuple* %.th2 +} + ;------------------------------------------------------------------------------ ; callables bridge ; From e848fff5a9820dda0bdcee0331c32c4685304cdb Mon Sep 17 00:00:00 2001 From: "Stefan J. Wernli" Date: Thu, 15 Apr 2021 20:14:00 -0700 Subject: [PATCH 4/5] Fixing install script to explicitly use LLVM 11 (#633) --- src/Qir/Runtime/prerequisites.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Qir/Runtime/prerequisites.ps1 b/src/Qir/Runtime/prerequisites.ps1 index 35e9b351aba..9e704cde689 100644 --- a/src/Qir/Runtime/prerequisites.ps1 +++ b/src/Qir/Runtime/prerequisites.ps1 @@ -4,7 +4,7 @@ if ($Env:ENABLE_QIRRUNTIME -ne "false") { if (($IsWindows) -or ((Test-Path Env:AGENT_OS) -and ($Env:AGENT_OS.StartsWith("Win")))) { if (!(Get-Command clang -ErrorAction SilentlyContinue)) { - choco install llvm + choco install llvm --version=11.1.0 choco install ninja } } elseif ($IsMacOS) { From 4eb61716af5510f62cf03b87632c8348d7829e79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Zaragoza=20Cort=C3=A9s?= Date: Fri, 16 Apr 2021 14:20:09 -0700 Subject: [PATCH 5/5] Moved quantum machine interfaces to its own folder (#629) * Moved quantum machine interfaces to its own folder. * Rename new folder. --- src/Simulation/Core/{ => Submitters}/IQuantumMachine.cs | 0 .../Core/{ => Submitters}/IQuantumMachineExecutionContext.cs | 0 src/Simulation/Core/{ => Submitters}/IQuantumMachineJob.cs | 0 src/Simulation/Core/{ => Submitters}/IQuantumMachineOutput.cs | 0 .../Core/{ => Submitters}/IQuantumMachineSubmissionContext.cs | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename src/Simulation/Core/{ => Submitters}/IQuantumMachine.cs (100%) rename src/Simulation/Core/{ => Submitters}/IQuantumMachineExecutionContext.cs (100%) rename src/Simulation/Core/{ => Submitters}/IQuantumMachineJob.cs (100%) rename src/Simulation/Core/{ => Submitters}/IQuantumMachineOutput.cs (100%) rename src/Simulation/Core/{ => Submitters}/IQuantumMachineSubmissionContext.cs (100%) diff --git a/src/Simulation/Core/IQuantumMachine.cs b/src/Simulation/Core/Submitters/IQuantumMachine.cs similarity index 100% rename from src/Simulation/Core/IQuantumMachine.cs rename to src/Simulation/Core/Submitters/IQuantumMachine.cs diff --git a/src/Simulation/Core/IQuantumMachineExecutionContext.cs b/src/Simulation/Core/Submitters/IQuantumMachineExecutionContext.cs similarity index 100% rename from src/Simulation/Core/IQuantumMachineExecutionContext.cs rename to src/Simulation/Core/Submitters/IQuantumMachineExecutionContext.cs diff --git a/src/Simulation/Core/IQuantumMachineJob.cs b/src/Simulation/Core/Submitters/IQuantumMachineJob.cs similarity index 100% rename from src/Simulation/Core/IQuantumMachineJob.cs rename to src/Simulation/Core/Submitters/IQuantumMachineJob.cs diff --git a/src/Simulation/Core/IQuantumMachineOutput.cs b/src/Simulation/Core/Submitters/IQuantumMachineOutput.cs similarity index 100% rename from src/Simulation/Core/IQuantumMachineOutput.cs rename to src/Simulation/Core/Submitters/IQuantumMachineOutput.cs diff --git a/src/Simulation/Core/IQuantumMachineSubmissionContext.cs b/src/Simulation/Core/Submitters/IQuantumMachineSubmissionContext.cs similarity index 100% rename from src/Simulation/Core/IQuantumMachineSubmissionContext.cs rename to src/Simulation/Core/Submitters/IQuantumMachineSubmissionContext.cs