[JVM] Drop StoreLoadInterpreter class

This commit is contained in:
Ivan Kylchik
2023-09-06 10:26:33 +02:00
committed by Space Team
parent 364faa9506
commit e9019e9fb3
2 changed files with 5 additions and 5 deletions
@@ -42,8 +42,6 @@ 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
abstract class StoreLoadInterpreter<V : Value> : Interpreter<V>(API_VERSION)
class StoreLoadFrame<V : Value>(val maxLocals: Int) : Frame<V>(maxLocals, 0) {
override fun execute(insn: AbstractInsnNode, interpreter: Interpreter<V>) {
when (insn.opcode) {
@@ -66,8 +64,8 @@ class StoreLoadFrame<V : Value>(val maxLocals: Int) : Frame<V>(maxLocals, 0) {
class FastStoreLoadAnalyzer<V : Value>(
owner: String,
method: MethodNode,
interpreter: StoreLoadInterpreter<V>
) : FastAnalyzer<V, StoreLoadInterpreter<V>, StoreLoadFrame<V>>(owner, method, interpreter) {
interpreter: Interpreter<V>
) : FastAnalyzer<V, Interpreter<V>, StoreLoadFrame<V>>(owner, method, interpreter) {
private val isMergeNode = FastMethodAnalyzer.findMergeNodes(method)
override fun analyzeInstruction(
@@ -10,10 +10,12 @@ import org.jetbrains.kotlin.codegen.optimization.common.isMeaningful
import org.jetbrains.kotlin.codegen.optimization.common.isStoreOperation
import org.jetbrains.kotlin.utils.SmartSet
import org.jetbrains.org.objectweb.asm.Opcodes
import org.jetbrains.org.objectweb.asm.Opcodes.API_VERSION
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.Interpreter
import org.jetbrains.org.objectweb.asm.tree.analysis.Value
@@ -155,7 +157,7 @@ class TemporaryValsAnalyzer {
private class StoreTrackingInterpreter(
private val storeInsnToStoreData: Map<VarInsnNode, StoreData>
) : StoreLoadInterpreter<StoredValue>() {
) : Interpreter<StoredValue>(API_VERSION) {
override fun newEmptyValue(local: Int): StoredValue = StoredValue.Unknown