示例#1
0
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();
}
示例#2
0
void
SSAPass::_run(IRManager& irm) {
    OptPass::computeDominators(irm);
    DominatorTree* dominatorTree = irm.getDominatorTree();
    ControlFlowGraph& flowGraph = irm.getFlowGraph();
   
    DomFrontier frontier(irm.getNestedMemoryManager(),*dominatorTree,&flowGraph);
    SSABuilder ssaBuilder(irm.getOpndManager(),irm.getInstFactory(),frontier,&flowGraph, irm.getOptimizerFlags());
    ssaBuilder.convertSSA(irm.getMethodDesc());
    irm.setInSsa(true);
    irm.setSsaUpdated();
}