在ASM Tree API中,我有一个InsnList,其中包含方法中的指令列表。
我想将其拆分为基本块:一系列指令,使得除最后一个指令之外的每个指令都只有一个后继,并且除了第一个指令之外没有指令可以成为跳转的目标。
我将如何做到这一点?
答案 0 :(得分:2)
在Java 7+堆栈帧中将包含在方法操作码中。迭代一个方法的InsnList,并按每个FrameInsn分割块。
示例:
let questionsArray: [AnyObject] = Array(zip(iN, nS).map {xx, yy in ["x": xx, "y": yy]}.shuffle().prefix(10))