void PersistentInstructionIdGenerator::runPass(IRManager& irm) { MemoryManager mm("PersistentInstructionIdGenerator::runPass"); MethodDesc& methodDesc = irm.getMethodDesc(); StlVector<Node*> nodes(mm); irm.getFlowGraph().getNodesPostOrder(nodes); StlVector<Node*>::reverse_iterator i; for(i = nodes.rbegin(); i != nodes.rend(); ++i) { Node* node = *i; Inst* label = (Inst*)node->getFirstInst(); for(Inst* inst = label->getNextInst(); inst != NULL; inst = inst->getNextInst()) inst->setPersistentInstructionId(PersistentInstructionId(&methodDesc, inst->getId() - irm.getMinimumInstId())); } }