IR: inline some transformChildren calls in IrElementTransformer{,Void}

IrElementTransformer.visitDeclaration/visitExpression are very prominent
hotspots, and it seems that HotSpot doesn't optimize the inlined Kotlin
bytecode there well enough. Reduce the bytecode in these and similar
methods by inlining calls to also/apply/transformChildrenVoid.
This commit is contained in:
Alexander Udalov
2020-07-23 21:57:14 +02:00
parent 3a883e1236
commit 4f0585950e
3 changed files with 94 additions and 40 deletions
@@ -439,7 +439,7 @@ class BlockDecomposerTransformer(
private inner class ExpressionTransformer : IrElementTransformerVoid() {
override fun visitExpression(expression: IrExpression) = expression.transformChildren()
override fun visitExpression(expression: IrExpression) = expression.apply { transformChildrenVoid() }
override fun visitGetField(expression: IrGetField): IrExpression {
expression.transformChildrenVoid(expressionTransformer)