void OSRPass::_run(IRManager & irm) { splitCriticalEdges(irm); computeDominatorsAndLoops(irm); LoopTree* loopTree = irm.getLoopTree(); DominatorTree* dominatorTree = irm.getDominatorTree(); OSR osr(irm, irm.getMemoryManager(), loopTree, dominatorTree); osr.runPass(); }
CfgCodeSelector::CfgCodeSelector(::Jitrino::SessionAction* sa, CompilationInterface& compIntfc, MethodCodeSelector& methodCodeSel, MemoryManager& codeSelectorMM, U_32 nNodes, IRManager& irM ) : numNodes(nNodes), nextNodeId(0), compilationInterface(compIntfc), methodCodeSelector(methodCodeSel), irMemManager(irM.getMemoryManager()), codeSelectorMemManager(codeSelectorMM), irManager(irM), hasDispatchNodes(false), currBlock(NULL), returnOperand(0) { nextNodeId = 0; nodes = new (codeSelectorMemManager) Node*[numNodes]; U_32 i; for (i = 0; i < numNodes; i++) nodes[i] = NULL; InstCodeSelector::onCFGInit(irManager); flags.useInternalHelpersForInteger2FloatConv = sa->getBoolArg("useInternalHelpersForInteger2FloatConv", false); flags.slowLdString = sa->getBoolArg("SlowLdString", false); }