From f7f253d2bf1ca845a9a5102f579c907a75cb20ac Mon Sep 17 00:00:00 2001 From: Ivan Kylchik Date: Wed, 6 Sep 2023 11:43:59 +0200 Subject: [PATCH] [JVM] Move `isTcbStart` computation in `FastAnalyzer` --- .../codegen/optimization/common/FastAnalyzer.kt | 11 ++++++++--- .../codegen/optimization/common/FastMethodAnalyzer.kt | 6 ------ 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/FastAnalyzer.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/FastAnalyzer.kt index b16cffa0fb0..50644a2a981 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/FastAnalyzer.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/FastAnalyzer.kt @@ -17,15 +17,15 @@ import org.jetbrains.org.objectweb.asm.tree.analysis.Value abstract class FastAnalyzer, F : Frame>( private val owner: String, - protected val method: MethodNode, + private val method: MethodNode, private val interpreter: I, private val pruneExceptionEdges: Boolean, ) { private val nInsns = method.instructions.size() private val frames: Array?> = arrayOfNulls(nInsns) - protected val handlers: Array?> = arrayOfNulls(nInsns) - protected val isTcbStart = BooleanArray(nInsns) + private val handlers: Array?> = arrayOfNulls(nInsns) + private val isTcbStart = BooleanArray(nInsns) private val isMergeNode = findMergeNodes(method) private val queued = BooleanArray(nInsns) @@ -39,6 +39,11 @@ abstract class FastAnalyzer, F : Frame>( checkAssertions() computeExceptionHandlers(method) + + for (tcb in method.tryCatchBlocks) { + isTcbStart[tcb.start.indexOf() + 1] = true + } + beforeAnalyze() analyzeMainLoop() diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/FastMethodAnalyzer.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/FastMethodAnalyzer.kt index 3449d0602c8..67dda9e5bfe 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/FastMethodAnalyzer.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/FastMethodAnalyzer.kt @@ -50,10 +50,4 @@ class FastMethodAnalyzer private val createFrame: (Int, Int) -> Frame = { nLocals, nStack -> Frame(nLocals, nStack) } ) : FastAnalyzer, Frame>(owner, method, interpreter, pruneExceptionEdges) { override fun newFrame(nLocals: Int, nStack: Int): Frame = createFrame(nLocals, nStack) - - override fun beforeAnalyze() { - for (tcb in method.tryCatchBlocks) { - isTcbStart[tcb.start.indexOf() + 1] = true - } - } }