# HG changeset patch # User Roland Schatz # Date 1391164780 -3600 # Node ID 6bc07d0c2682d05386fb17ed8a037240bb1453e9 # Parent f5f81bc9c9f00e442c72c1c38ad5f4dbbe608804 Optimize back edge in tight loops. diff -r f5f81bc9c9f0 -r 6bc07d0c2682 graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64ControlFlow.java --- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64ControlFlow.java Fri Jan 31 11:38:32 2014 +0100 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64ControlFlow.java Fri Jan 31 11:39:40 2014 +0100 @@ -75,6 +75,9 @@ public void emitCode(CompilationResultBuilder crb, AMD64MacroAssembler masm) { if (crb.isSuccessorEdge(trueDestination)) { jcc(masm, true, falseDestination); + } else if (falseDestination.getSourceBlock() == falseDestination.getTargetBlock()) { + jcc(masm, true, falseDestination); + masm.jmp(trueDestination.label()); } else { jcc(masm, false, trueDestination); if (!crb.isSuccessorEdge(falseDestination)) {