  Variational algorithms are a representative class of quantum computing
workloads that combine quantum and classical computing. This paper presents an
LLVM-based C++ compiler toolchain to efficiently execute variational hybrid
quantum-classical algorithms on a computational system in which the quantum
device acts as an accelerator. We introduce a set of extensions to the C++
language for programming these algorithms. We define a novel Executable and
Linking Format (ELF) for Quantum and create a quantum device compiler component
in the LLVM framework to compile the quantum part of the C++ source and reuse
the host compiler in the LLVM framework to compile the classical computing part
of the C++ source. A variational algorithm runs a quantum circuit repeatedly,
each time with different gate parameters. We add to the quantum runtime the
capability to execute dynamically a quantum circuit with different parameters.
Thus, programmers can call quantum routines the same way as classical routines.
With these capabilities, a variational hybrid quantum-classical algorithm can
be specified in a single-source code and only needs to be compiled once for all
iterations. The single compilation significantly reduces the execution latency
of variational algorithms. We evaluate the framework's performance by running
quantum circuits that prepare Thermofield Double (TFD) states, a
quantum-classical variational algorithm.
