Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions qiskit_ibm_provider/utils/backend_converter.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
from qiskit.transpiler.target import Target, InstructionProperties
from qiskit.utils.units import apply_prefix
from qiskit.circuit.library.standard_gates import IGate, SXGate, XGate, CXGate, RZGate
from qiskit.circuit import IfElseOp, WhileLoopOp, ForLoopOp
from qiskit.circuit.parameter import Parameter
from qiskit.circuit.gate import Gate
from qiskit.circuit.delay import Delay
Expand Down Expand Up @@ -47,6 +48,11 @@ def convert_to_target(
"rz": RZGate(Parameter("λ")),
"reset": Reset(),
}
control_flow_map = {
"if_else": IfElseOp,
"while_loop": WhileLoopOp,
"for_loop": ForLoopOp,
}
custom_gates = {}
target = None
# Parse from properties if it exsits
Expand Down Expand Up @@ -136,6 +142,11 @@ def convert_to_target(
target.add_instruction(
Delay(Parameter("t")), {(bit,): None for bit in range(target.num_qubits)}
)
# Handle control flow opeartions as globally support in the target
for control_flow_op_name, op_class in control_flow_map.items():
if control_flow_op_name in configuration.basis_gates:
target.add_instruction(op_class, name=control_flow_op_name)

return target


Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
qiskit-terra>=0.20.0
qiskit-terra>=0.22.0
requests>=2.19
requests_ntlm>=1.1.0
numpy>=1.13
Expand Down