Optimize JVM byte code generation for conditional conjunction

Implement an intrinsic method for boolean.and operation, and replace
ANDAND condition with a call to such intrinsic method.
This commit is contained in:
Jiaxiang Chen
2019-04-02 13:47:27 -07:00
committed by max-kammerer
parent 53493657ff
commit 4b99d85322
18 changed files with 187 additions and 12 deletions
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
val a = false
val b = false
val c = false
@@ -0,0 +1,16 @@
val a = false
val b = false
val c = false
fun main() {
do {
"loop"
} while (a && b && c)
}
// 0 ICONST_0
// 0 ICONST_1
// 2 IFEQ
// 1 IFNE
// 3 IF
// 0 GOTO
@@ -0,0 +1,16 @@
val a = false
val b = false
val c = false
fun main() {
while (a && b && c) {
"loop"
}
}
// 0 ICONST_0
// 0 ICONST_1
// 3 IFEQ
// 0 IFNE
// 3 IF
// 1 GOTO
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
val a = false
val b = false
val c = false