JVM_IR simplify null check on trivially initialized vals only

This commit is contained in:
Dmitry Petrov
2021-10-01 11:17:16 +03:00
committed by TeamCityServer
parent ae1288948a
commit aea2db97c5
17 changed files with 73 additions and 10 deletions
@@ -14,5 +14,5 @@ class A(val x: String) {
// JVM_IR_TEMPLATES
// 4 IFNULL
// 0 IFNONNULL
// 2 IFNONNULL
// 0 ACONST_NULL
@@ -6,8 +6,8 @@ fun test(na: A?) =
na?.b?.c?.s
// JVM_IR_TEMPLATES
// 1 DUP
// 1 IFNULL
// 3 DUP
// 3 IFNULL
// 0 IFNONNULL
// 1 ACONST_NULL
@@ -6,6 +6,6 @@ fun test(an: A?) = an?.b?.c?.s
// JVM_IR_TEMPLATES
// 0 ASTORE
// 1 IFNULL
// 3 IFNULL
// 0 IFNONNULL
// 1 ACONST_NULL
@@ -13,5 +13,5 @@ object Host {
// JVM_IR_TEMPLATES
// 0 ASTORE
// 1 ACONST_NULL
// 1 IFNULL
// 3 IFNULL
// 0 IFNONNULL
@@ -17,5 +17,5 @@ fun test(an: A?) = an?.b?.c?.s
// JVM_IR_TEMPLATES
// 0 ASTORE
// 1 ACONST_NULL
// 1 IFNULL
// 3 IFNULL
// 0 IFNONNULL
@@ -3,7 +3,7 @@ fun test(a: Any?, b: Any?, c: String) =
// JVM_IR_TEMPLATES
// 2 IFNULL
// 0 IFNONNULL
// 1 IFNONNULL
// 0 ACONST_NULL
// JVM_TEMPLATES
@@ -9,8 +9,8 @@ fun test(a: Any?) =
// 0 valueOf
// JVM_IR_TEMPLATES
// 1 DUP
// 1 IFNULL
// 2 DUP
// 2 IFNULL
// 0 ACONST_NULL
// 0 IFNONNULL