[JVM] Drop StoreLoadInterpreter class
This commit is contained in:
+2
-4
@@ -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.Interpreter
|
||||||
import org.jetbrains.org.objectweb.asm.tree.analysis.Value
|
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) {
|
class StoreLoadFrame<V : Value>(val maxLocals: Int) : Frame<V>(maxLocals, 0) {
|
||||||
override fun execute(insn: AbstractInsnNode, interpreter: Interpreter<V>) {
|
override fun execute(insn: AbstractInsnNode, interpreter: Interpreter<V>) {
|
||||||
when (insn.opcode) {
|
when (insn.opcode) {
|
||||||
@@ -66,8 +64,8 @@ class StoreLoadFrame<V : Value>(val maxLocals: Int) : Frame<V>(maxLocals, 0) {
|
|||||||
class FastStoreLoadAnalyzer<V : Value>(
|
class FastStoreLoadAnalyzer<V : Value>(
|
||||||
owner: String,
|
owner: String,
|
||||||
method: MethodNode,
|
method: MethodNode,
|
||||||
interpreter: StoreLoadInterpreter<V>
|
interpreter: Interpreter<V>
|
||||||
) : FastAnalyzer<V, StoreLoadInterpreter<V>, StoreLoadFrame<V>>(owner, method, interpreter) {
|
) : FastAnalyzer<V, Interpreter<V>, StoreLoadFrame<V>>(owner, method, interpreter) {
|
||||||
private val isMergeNode = FastMethodAnalyzer.findMergeNodes(method)
|
private val isMergeNode = FastMethodAnalyzer.findMergeNodes(method)
|
||||||
|
|
||||||
override fun analyzeInstruction(
|
override fun analyzeInstruction(
|
||||||
|
|||||||
+3
-1
@@ -10,10 +10,12 @@ import org.jetbrains.kotlin.codegen.optimization.common.isMeaningful
|
|||||||
import org.jetbrains.kotlin.codegen.optimization.common.isStoreOperation
|
import org.jetbrains.kotlin.codegen.optimization.common.isStoreOperation
|
||||||
import org.jetbrains.kotlin.utils.SmartSet
|
import org.jetbrains.kotlin.utils.SmartSet
|
||||||
import org.jetbrains.org.objectweb.asm.Opcodes
|
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.Type
|
||||||
import org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode
|
import org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode
|
||||||
import org.jetbrains.org.objectweb.asm.tree.MethodNode
|
import org.jetbrains.org.objectweb.asm.tree.MethodNode
|
||||||
import org.jetbrains.org.objectweb.asm.tree.VarInsnNode
|
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
|
import org.jetbrains.org.objectweb.asm.tree.analysis.Value
|
||||||
|
|
||||||
|
|
||||||
@@ -155,7 +157,7 @@ class TemporaryValsAnalyzer {
|
|||||||
|
|
||||||
private class StoreTrackingInterpreter(
|
private class StoreTrackingInterpreter(
|
||||||
private val storeInsnToStoreData: Map<VarInsnNode, StoreData>
|
private val storeInsnToStoreData: Map<VarInsnNode, StoreData>
|
||||||
) : StoreLoadInterpreter<StoredValue>() {
|
) : Interpreter<StoredValue>(API_VERSION) {
|
||||||
|
|
||||||
override fun newEmptyValue(local: Int): StoredValue = StoredValue.Unknown
|
override fun newEmptyValue(local: Int): StoredValue = StoredValue.Unknown
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user