  We explore a method for automatically recompiling a quantum circuit A into a
target circuit B, with the goal that both circuits have the same action on a
specific input i.e. B|in> = A|in>. This is of particular relevance to hybrid,
NISQ-era algorithms for dynamical simulation or eigensolving. The user
initially specifies B as a blank template: a layout of parameterised unitary
gates configured to the identity. The compilation then proceeds using quantum
hardware to perform an isomorphic energy-minimisation task, and an optional
gate elimination phase to compress the circuit. If B is insufficient for
perfect recompilation then the method will result in an approximate solution.
We optimise using imaginary time evolution, and a recent extension of quantum
natural gradient for noisy settings. We successfully recompile a 7-qubit
circuit involving 186 gates of multiple types into an alternative form with a
different topology, far fewer two-qubit gates, and a smaller family of gate
types. Moreover we verify that the process is robust, finding that per-gate
noise of up to 1% can still yield near-perfect recompilation. We test the
scaling of our algorithm on up to 20 qubits, recompiling into circuits with up
to 400 parameterized gates, and incorporate a custom adaptive timestep
technique. We note that a classical simulation of the process can be useful to
optimise circuits for today's prototypes, and more generally the method may
enable 'blind' compilation i.e. harnessing a device whose response to control
parameters is deterministic but unknown.
