JVM_IR: Enable loopVarInterval and forInReversedCollectionIndices

bytecode text tests.
This commit is contained in:
Mark Punzalan
2019-10-28 14:14:38 -07:00
committed by max-kammerer
parent 934cbcbbec
commit de333c18fc
2 changed files with 21 additions and 6 deletions
@@ -1,5 +1,3 @@
// IGNORE_BACKEND: JVM_IR
// NOTE: Enable once Collection.indices is handled
import kotlin.test.*
fun box(): String {
@@ -13,6 +11,9 @@ fun box(): String {
return "OK"
}
// JVM non-IR uses while.
// JVM IR uses if + do-while.
// 0 reversed
// 0 iterator
// 0 getStart
@@ -20,5 +21,12 @@ fun box(): String {
// 0 getFirst
// 0 getLast
// 0 getStep
// 1 IF(_ICMPG|L)T
// 1 IF
// JVM_TEMPLATES
// 1 IFLT
// 1 IF
// JVM_IR_TEMPLATES
// 1 IF_ICMPGT
// 1 IF_ICMPLE
// 2 IF
@@ -1,10 +1,17 @@
// IGNORE_BACKEND: JVM_IR
fun f() {
for (c in "123") {
print(c)
}
}
// Different locals slot numbers are used in JVM vs JVM IR for loop and induction variables.
// JVM_TEMPLATES
// 1 ISTORE 0\s+L3
// 1 ILOAD 0\s+INVOKEVIRTUAL java/io/PrintStream.print \(C\)V
// 1 LOCALVARIABLE c C L3 L.* 0
// 1 LOCALVARIABLE c C L3 L\d+ 0
// JVM_IR_TEMPLATES
// 1 ISTORE 2\s+L5
// 1 ILOAD 2\s+INVOKEVIRTUAL java/io/PrintStream.print \(C\)V
// 1 LOCALVARIABLE c C L5 L\d+ 2