< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/LIRGenerationPhase.java

Print this page

        

*** 65,75 **** @Override protected final void run(TargetDescription target, LIRGenerationResult lirGenRes, LIRGenerationPhase.LIRGenerationContext context) { NodeLIRBuilderTool nodeLirBuilder = context.nodeLirBuilder; StructuredGraph graph = context.graph; ScheduleResult schedule = context.schedule; ! for (AbstractBlockBase<?> b : lirGenRes.getLIR().getControlFlowGraph().getBlocks()) { emitBlock(nodeLirBuilder, lirGenRes, (Block) b, graph, schedule.getBlockToNodesMap()); } context.lirGen.beforeRegisterAllocation(); assert SSAUtil.verifySSAForm(lirGenRes.getLIR()); nodeCount.add(graph.getDebug(), graph.getNodeCount()); --- 65,79 ---- @Override protected final void run(TargetDescription target, LIRGenerationResult lirGenRes, LIRGenerationPhase.LIRGenerationContext context) { NodeLIRBuilderTool nodeLirBuilder = context.nodeLirBuilder; StructuredGraph graph = context.graph; ScheduleResult schedule = context.schedule; ! AbstractBlockBase<?>[] blocks = lirGenRes.getLIR().getControlFlowGraph().getBlocks(); ! for (AbstractBlockBase<?> b : blocks) { ! matchBlock(nodeLirBuilder, (Block) b, graph, schedule); ! } ! for (AbstractBlockBase<?> b : blocks) { emitBlock(nodeLirBuilder, lirGenRes, (Block) b, graph, schedule.getBlockToNodesMap()); } context.lirGen.beforeRegisterAllocation(); assert SSAUtil.verifySSAForm(lirGenRes.getLIR()); nodeCount.add(graph.getDebug(), graph.getNodeCount());
*** 82,91 **** --- 86,99 ---- LIR lir = lirGenRes.getLIR(); DebugContext debug = lir.getDebug(); instructionCounter.add(debug, lir.getLIRforBlock(b).size()); } + private static void matchBlock(NodeLIRBuilderTool nodeLirGen, Block b, StructuredGraph graph, ScheduleResult schedule) { + nodeLirGen.matchBlock(b, graph, schedule); + } + private static boolean verifyPredecessors(LIRGenerationResult lirGenRes, Block block) { for (Block pred : block.getPredecessors()) { if (!block.isLoopHeader() || !pred.isLoopEnd()) { assert isProcessed(lirGenRes, pred) : "Predecessor not yet processed " + pred; }
< prev index next >