[WASM] Remove unnecessary boxing/unboxing

This commit is contained in:
Igor Yakovlev
2022-10-13 16:30:40 +02:00
committed by teamcity
parent 0e16889f45
commit 8d8430cde7
5 changed files with 52 additions and 4 deletions
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.backend.common.lower.AbstractValueUsageTransformer
import org.jetbrains.kotlin.backend.common.pop
import org.jetbrains.kotlin.backend.common.push
import org.jetbrains.kotlin.ir.IrBuiltIns
import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.backend.js.JsCommonBackendContext
import org.jetbrains.kotlin.ir.backend.js.ir.JsIrBuilder
import org.jetbrains.kotlin.ir.backend.js.utils.realOverrideTarget
@@ -165,6 +166,8 @@ class AutoboxingTransformer(context: JsCommonBackendContext) : AbstractValueUsag
}
}
if (expectedType.isUnit()) return this
val actualInlinedClass = icUtils.getInlinedClass(actualType)
val expectedInlinedClass = icUtils.getInlinedClass(expectedType)
@@ -246,7 +249,6 @@ class AutoboxingTransformer(context: JsCommonBackendContext) : AbstractValueUsag
}
return true
}
}
private tailrec fun IrExpression.isGetUnit(irBuiltIns: IrBuiltIns): Boolean =