src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/ControlFlowOptimizer.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/ControlFlowOptimizer.java

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/ControlFlowOptimizer.java

Print this page

        

*** 22,32 **** */ package org.graalvm.compiler.lir; import static org.graalvm.compiler.lir.LIR.verifyBlocks; ! import java.util.List; import org.graalvm.compiler.core.common.cfg.AbstractBlockBase; import org.graalvm.compiler.debug.Debug; import org.graalvm.compiler.debug.DebugCounter; import org.graalvm.compiler.lir.gen.LIRGenerationResult; --- 22,32 ---- */ package org.graalvm.compiler.lir; import static org.graalvm.compiler.lir.LIR.verifyBlocks; ! import java.util.ArrayList; import org.graalvm.compiler.core.common.cfg.AbstractBlockBase; import org.graalvm.compiler.debug.Debug; import org.graalvm.compiler.debug.DebugCounter; import org.graalvm.compiler.lir.gen.LIRGenerationResult;
*** 68,78 **** private boolean canDeleteBlock(AbstractBlockBase<?> block) { if (block == null || block.getSuccessorCount() != 1 || block.getPredecessorCount() == 0 || block.getSuccessors()[0] == block) { return false; } ! List<LIRInstruction> instructions = lir.getLIRforBlock(block); assert instructions.size() >= 2 : "block must have label and branch"; assert instructions.get(0) instanceof StandardOp.LabelOp : "first instruction must always be a label"; assert instructions.get(instructions.size() - 1) instanceof StandardOp.JumpOp : "last instruction must always be a branch"; assert ((StandardOp.JumpOp) instructions.get(instructions.size() - 1)).destination().label() == ((StandardOp.LabelOp) lir.getLIRforBlock(block.getSuccessors()[0]).get( --- 68,78 ---- private boolean canDeleteBlock(AbstractBlockBase<?> block) { if (block == null || block.getSuccessorCount() != 1 || block.getPredecessorCount() == 0 || block.getSuccessors()[0] == block) { return false; } ! ArrayList<LIRInstruction> instructions = lir.getLIRforBlock(block); assert instructions.size() >= 2 : "block must have label and branch"; assert instructions.get(0) instanceof StandardOp.LabelOp : "first instruction must always be a label"; assert instructions.get(instructions.size() - 1) instanceof StandardOp.JumpOp : "last instruction must always be a branch"; assert ((StandardOp.JumpOp) instructions.get(instructions.size() - 1)).destination().label() == ((StandardOp.LabelOp) lir.getLIRforBlock(block.getSuccessors()[0]).get(
*** 83,93 **** } private void alignBlock(AbstractBlockBase<?> block) { if (!block.isAligned()) { block.setAlign(true); ! List<LIRInstruction> instructions = lir.getLIRforBlock(block); assert instructions.get(0) instanceof StandardOp.LabelOp : "first instruction must always be a label"; StandardOp.LabelOp label = (StandardOp.LabelOp) instructions.get(0); instructions.set(0, new StandardOp.LabelOp(label.getLabel(), true)); } } --- 83,93 ---- } private void alignBlock(AbstractBlockBase<?> block) { if (!block.isAligned()) { block.setAlign(true); ! ArrayList<LIRInstruction> instructions = lir.getLIRforBlock(block); assert instructions.get(0) instanceof StandardOp.LabelOp : "first instruction must always be a label"; StandardOp.LabelOp label = (StandardOp.LabelOp) instructions.get(0); instructions.set(0, new StandardOp.LabelOp(label.getLabel(), true)); } }
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/ControlFlowOptimizer.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File