@Override
		public void visitOp(JitOp op) {
			if (!ops.add(op)) {
				return;
			}
			out.println("""
					  "op%x" [
					    label = "%s"
					    shape = "ellipse"
					  ];
					""".formatted(
				System.identityHashCode(op),
				opLabel(op)));

			if (op == null) {
				return;
			}

			int i = 0;
			for (JitVal input : op.inputs()) {
				i++;
				if (input instanceof JitVar iv) {
					out.println("""
							  "var%d" -> "op%x" [
							    headlabel = "[%d]"
							  ];
							""".formatted(
						iv.id(),
						System.identityHashCode(op),
						i));
				}
				else {
					out.println("""
							  "val%x" -> "op%x" [
							    headlabel = "[%d]"
							  ];
							""".formatted(
						System.identityHashCode(input),
						System.identityHashCode(op),
						i));
				}
			}

			if (op instanceof JitDefOp defOp) {
				out.println("""
						  "op%x" -> "var%d" [
						    taillabel = "out"
						  ];
						""".formatted(
					System.identityHashCode(op),
					defOp.out().id()));
			}

			JitOpUpwardVisitor.super.visitOp(op);
		}
A diagnostic tool for visualizing the use-def graph.

<p>
NOTE: This is only as complete as it needed to be for me to diagnose whatever issue I was
having at the time.

@see #exportGraphviz(File)
Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/jit/analysis/JitDataFlowModel.java