JVM don't optimize temporary vals in old back-end
This commit is contained in:
committed by
TeamCityServer
parent
568958492a
commit
d8f6d82411
+1
-1
@@ -53,7 +53,7 @@ class OptimizationMethodVisitor(
|
||||
RedundantCheckCastEliminationMethodTransformer(),
|
||||
ConstantConditionEliminationMethodTransformer(),
|
||||
RedundantBoxingMethodTransformer(generationState),
|
||||
TemporaryVariablesEliminationTransformer(),
|
||||
TemporaryVariablesEliminationTransformer(generationState),
|
||||
StackPeepholeOptimizationsTransformer(),
|
||||
PopBackwardPropagationTransformer(),
|
||||
DeadCodeEliminationMethodTransformer(),
|
||||
|
||||
+4
-1
@@ -8,16 +8,19 @@ package org.jetbrains.kotlin.codegen.optimization.temporaryVals
|
||||
import org.jetbrains.kotlin.codegen.optimization.common.InsnSequence
|
||||
import org.jetbrains.kotlin.codegen.optimization.common.removeUnusedLocalVariables
|
||||
import org.jetbrains.kotlin.codegen.optimization.transformer.MethodTransformer
|
||||
import org.jetbrains.kotlin.codegen.state.GenerationState
|
||||
import org.jetbrains.kotlin.utils.SmartList
|
||||
import org.jetbrains.org.objectweb.asm.Opcodes
|
||||
import org.jetbrains.org.objectweb.asm.Type
|
||||
import org.jetbrains.org.objectweb.asm.tree.*
|
||||
import kotlin.math.max
|
||||
|
||||
class TemporaryVariablesEliminationTransformer : MethodTransformer() {
|
||||
class TemporaryVariablesEliminationTransformer(private val state: GenerationState) : MethodTransformer() {
|
||||
private val temporaryValsAnalyzer = TemporaryValsAnalyzer()
|
||||
|
||||
override fun transform(internalClassName: String, methodNode: MethodNode) {
|
||||
if (!state.isIrBackend) return
|
||||
|
||||
val cfg = ControlFlowGraph(methodNode)
|
||||
processLabels(cfg)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user