JVM KT-47613 traverse nodes backwards in backward analysis
This commit is contained in:
+2
-3
@@ -38,13 +38,12 @@ fun <F : VarFrame<F>> analyze(node: MethodNode, interpreter: BackwardAnalysisInt
|
||||
val frames = (1..insnList.size()).map { interpreter.newFrame(node.maxLocals) }.toMutableList()
|
||||
val insnArray = insnList.toArray()
|
||||
|
||||
// see Figure 9.16 from Dragon book
|
||||
var wereChanges: Boolean
|
||||
|
||||
do {
|
||||
wereChanges = false
|
||||
for (insn in insnArray) {
|
||||
val index = insnList.indexOf(insn)
|
||||
for (index in insnArray.indices.reversed()) {
|
||||
val insn = insnArray[index]
|
||||
val newFrame = interpreter.newFrame(node.maxLocals)
|
||||
for (successorIndex in graph.getSuccessorsIndices(insn)) {
|
||||
newFrame.mergeFrom(frames[successorIndex])
|
||||
|
||||
Reference in New Issue
Block a user