[IR] For loop lowering for CharacterSequence.indices.

This commit is contained in:
Mads Ager
2019-08-30 11:12:36 +02:00
committed by max-kammerer
parent 63f43d9b2e
commit 85b1e0165b
4 changed files with 53 additions and 17 deletions
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
fun test(s: CharSequence): Int {
var result = 0
for (i in s.indices) {
@@ -7,12 +6,22 @@ fun test(s: CharSequence): Int {
return result
}
// JVM non-IR uses while.
// JVM IR uses if + do-while.
// 0 iterator
// 0 getStart
// 0 getEnd
// 0 getFirst
// 0 getLast
// JVM_TEMPLATES
// 0 IF_ICMPGT
// 0 IF_ICMPEQ
// 1 IF_ICMPGE
// 1 IF
// JVM_IR_TEMPLATES
// 1 IF_ICMPGT
// 1 IF_ICMPLE
// 2 IF
@@ -1,5 +1,3 @@
// IGNORE_BACKEND: JVM_IR
// NOTE: Enable once CharSequence.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