From 364faa9506196061a2242f03fe3cb4e1b003a43e Mon Sep 17 00:00:00 2001 From: Ivan Kylchik Date: Wed, 6 Sep 2023 10:25:33 +0200 Subject: [PATCH] [JVM] Drop `StoreLoadValue` interface --- .../optimization/temporaryVals/FastStoreLoadAnalyzer.kt | 8 +++----- .../codegen/optimization/temporaryVals/TemporaryVals.kt | 3 ++- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/temporaryVals/FastStoreLoadAnalyzer.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/temporaryVals/FastStoreLoadAnalyzer.kt index f27e1af5ce0..c00400ca998 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/temporaryVals/FastStoreLoadAnalyzer.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/temporaryVals/FastStoreLoadAnalyzer.kt @@ -42,11 +42,9 @@ import org.jetbrains.org.objectweb.asm.tree.analysis.Frame import org.jetbrains.org.objectweb.asm.tree.analysis.Interpreter import org.jetbrains.org.objectweb.asm.tree.analysis.Value -interface StoreLoadValue : Value +abstract class StoreLoadInterpreter : Interpreter(API_VERSION) -abstract class StoreLoadInterpreter : Interpreter(API_VERSION) - -class StoreLoadFrame(val maxLocals: Int) : Frame(maxLocals, 0) { +class StoreLoadFrame(val maxLocals: Int) : Frame(maxLocals, 0) { override fun execute(insn: AbstractInsnNode, interpreter: Interpreter) { when (insn.opcode) { in Opcodes.ISTORE..Opcodes.ASTORE -> { @@ -65,7 +63,7 @@ class StoreLoadFrame(val maxLocals: Int) : Frame(maxLocal } } -class FastStoreLoadAnalyzer( +class FastStoreLoadAnalyzer( owner: String, method: MethodNode, interpreter: StoreLoadInterpreter diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/temporaryVals/TemporaryVals.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/temporaryVals/TemporaryVals.kt index 2acc01925be..7007435c95a 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/temporaryVals/TemporaryVals.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/temporaryVals/TemporaryVals.kt @@ -14,6 +14,7 @@ import org.jetbrains.org.objectweb.asm.Type import org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode import org.jetbrains.org.objectweb.asm.tree.MethodNode import org.jetbrains.org.objectweb.asm.tree.VarInsnNode +import org.jetbrains.org.objectweb.asm.tree.analysis.Value // A temporary val is a local variables that is: @@ -128,7 +129,7 @@ class TemporaryValsAnalyzer { val loads = LinkedHashSet() } - private sealed class StoredValue : StoreLoadValue { + private sealed class StoredValue : Value { // `StoredValue` represent some abstract value that doesn't really have a definition of size. // `getSize` can return either 1 or 2, so we use 1 here. override fun getSize(): Int = 1