protected void analyze() {
		Set<JitVal> vals = dfm.allValues();
		queue.addAll(vals);
		for (JitVal v : vals) {
			assignments.put(v, JitTypeBehavior.ANY);
		}

		while (!queue.isEmpty()) {
			JitVal v = queue.removeFirst();
			JitTypeBehavior type = computeNewAssignment(v);
			JitTypeBehavior old = assignments.put(v, type);
			if (old != type) {
				queueNeighbors(v);
			}
		}
	}
Perform the analysis

<p>
This queues every value up to be processed at least once and then runs the algorithm to
termination. Each value in the queue is removed and a voting contest run to update its type
assignment. If the new assignment differs from its old assignment, its neighbors (if any) are
re-added to the queue.
Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/jit/analysis/JitTypeModel.java