@Override
	public void autoMerge(int progressMin, int progressMax, TaskMonitor monitor)
			throws CancelledException {

		initializeAutoMerge("Auto-merging Equates and determining conflicts.", progressMin,
			progressMax, monitor);

		ProgramDiffFilter filter = new ProgramDiffFilter(ProgramDiffFilter.EQUATE_DIFFS);
		latestDetailSet = listingMergeMgr.diffOriginalLatest.getDifferences(filter, monitor);
		myDetailSet = listingMergeMgr.diffOriginalMy.getDifferences(filter, monitor);
		AddressSet tmpAutoSet = new AddressSet();
		AddressSet possibleConflicts = new AddressSet();
		MergeUtilities.adjustSets(latestDetailSet, myDetailSet, tmpAutoSet, possibleConflicts);
		// Ignore the code units that were automatically and manually merged
		// by CodeUnitMerger. Equates are already handled there.
		AddressSet mergedCodeUnits = listingMergeMgr.getMergedCodeUnits();
		tmpAutoSet.delete(mergedCodeUnits);
		mergeAllEquates(tmpAutoSet, KEEP_MY, monitor);
		possibleConflicts.delete(mergedCodeUnits);
		// FIXME
		mergeManager.updateProgress(progressMin + ((progressMax - progressMin) / 3)); // For now increment the phase progress 1/3 of the total.

		// The equate changes could be on different operands.
		// For instructions, they can be on different sub-operands.
		// Inspect the equates at each operand/sub-operand to get the true conflicts.
		CodeUnitIterator iter = resultPgm.getListing().getCodeUnits(possibleConflicts, true);
		while (iter.hasNext()) {
			CodeUnit resultCU = iter.next();
			Address addr = resultCU.getMinAddress();
			int numOps = resultCU.getNumOperands();
			for (int opIndex = 0; opIndex < numOps; opIndex++) {
				// Each operand index can have multiple scalars
				Scalar[] scalars = getScalars(resultCU, opIndex);
				for (Scalar scalar : scalars) {
					monitor.checkCancelled();
					getOperandScalarConflicts(addr, opIndex, scalar);
				}
			}
		}
		updateProgress(100, "Done auto-merging Equates and determining conflicts.");
	}
Constructs an equate merger.
@param listingMergeMgr the listing merge manager that owns this merger.
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/EquateMerger.java