Instruction ins = i.next().getInstruction();
InstructionHandle handle = i.next();
	public void execute(InstructionScannerGenerator generator) {		// Pump the instructions in the path through the generator and all generated scanners		while (edgeIter.hasNext()) {			Edge edge = edgeIter.next();			BasicBlock source = edge.getSource();			if (DEBUG) System.out.println("ISD: scanning instructions in block " + source.getId());			// Traverse all instructions in the source block			Iterator<InstructionHandle> i = source.instructionIterator();			int count = 0;			while (i.hasNext()) {				Instruction ins = i.next().getInstruction();				// Check if the generator wants to create a new scanner				if (generator.start(ins))					scannerList.add(generator.createScanner());				// Pump the instruction into all scanners				for (Iterator<InstructionScanner> j = scannerList.iterator(); j.hasNext(); ) {					InstructionScanner scanner = j.next();					scanner.scanInstruction(ins);				}				++count;			}			if (DEBUG) System.out.println("ISD: scanned " + count + " instructions");			// Now that we've finished the source block, pump the edge			// into all scanners			for (Iterator<InstructionScanner> j = scannerList.iterator(); j.hasNext(); ) {				InstructionScanner scanner = j.next();				scanner.traverseEdge(edge);			}		}	}