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