Mercurial > hg > graal-compiler
changeset 13844:6bc07d0c2682
Optimize back edge in tight loops.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Fri, 31 Jan 2014 11:39:40 +0100 |
parents | f5f81bc9c9f0 |
children | 12e1c788c1d5 |
files | graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64ControlFlow.java |
diffstat | 1 files changed, 3 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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)) {