/// CHECK-START-X86_64: int Main.test() disassembly (after) /// CHECK-DAG: <<Zero:i\d+>> IntConstant 0 /// CHECK-DAG: <<Fibs:l\d+>> StaticFieldGet field_name:Main.fibs // /// CHECK: If /// CHECK-NEXT: cmp /// CHECK-NEXT: jle/ng // /// CHECK-DAG: NullCheck [<<Fibs>>] /// CHECK-NOT: jmp /// CHECK-DAG: <<FibsAtZero:i\d+>> ArrayGet [<<Fibs>>,<<Zero>>] /// CHECK-DAG: Return [<<FibsAtZero>>] // // Checks that there is no conditional jump over a `jmp` // instruction. The `ArrayGet` instruction is in the next block. // // Note that the `StaticFieldGet` HIR instruction above (captured as // `Fibs`) can produce a `jmp` x86-64 instruction when read barriers // are enabled (to jump into the read barrier slow path), which is // different from the `jmp` in the `CHECK-NOT` assertion. publicstaticint test() { for (int i = 1; ; i++) { if (i >= FIBCOUNT) { return fibs[0];
}
fibs[i] = (i + fibs[(i - 1)]);
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.