def makeGraph(opts, m): v = verifyBytecode(m.code) s = Krakatau.ssa.ssaFromVerified(m.code, v, opts) if s.procs: # s.mergeSingleSuccessorBlocks() # s.removeUnusedVariables() s.inlineSubprocs() # print(_stats(s)) s.condenseBlocks() s.mergeSingleSuccessorBlocks() s.removeUnusedVariables() # print(_stats(s)) s.copyPropagation() s.abstractInterpert() s.disconnectConstantVariables() s.simplifyThrows() s.simplifyCatchIgnored() s.mergeSingleSuccessorBlocks() s.mergeSingleSuccessorBlocks() s.removeUnusedVariables() # print(_stats(s)) return s
def makeGraph(m): v = verifyBytecode(m.code) s = Krakatau.ssa.ssaFromVerified(m.code, v) if s.procs: # s.mergeSingleSuccessorBlocks() # s.removeUnusedVariables() s.inlineSubprocs() # print _stats(s) s.condenseBlocks() s.mergeSingleSuccessorBlocks() s.removeUnusedVariables() # print _stats(s) s.copyPropagation() s.abstractInterpert() s.disconnectConstantVariables() s.simplifyThrows() s.simplifyCatchIgnored() s.mergeSingleSuccessorBlocks() s.mergeSingleSuccessorBlocks() s.removeUnusedVariables() # print _stats(s) return s
def makeGraph(m): v = verifyBytecode(m.code) s = Krakatau.ssa.ssaFromVerified(m.code, v) if s.procs: s.mergeSingleSuccessorBlocks() s.removeUnusedVariables() s.inlineSubprocs() s.condenseBlocks() s.mergeSingleSuccessorBlocks() s.removeUnusedVariables() s.pessimisticPropagation() #WARNING - currently does not work if any output variables have been pruned already s.disconnectConstantVariables() s.simplifyJumps() s.mergeSingleSuccessorBlocks() s.removeUnusedVariables() #todo - make this a loop return s
def makeGraph(m): v = verifyBytecode(m.code) s = Krakatau.ssa.ssaFromVerified(m.code, v) if s.procs: # s.mergeSingleSuccessorBlocks() # s.removeUnusedVariables() s.inlineSubprocs() # print _stats(s) s.condenseBlocks() s.mergeSingleSuccessorBlocks() s.removeUnusedVariables() # print _stats(s) s.constraintPropagation() s.disconnectConstantVariables() s.simplifyJumps() s.mergeSingleSuccessorBlocks() s.removeUnusedVariables() # print _stats(s) return s
def makeGraph(m): v = verifyBytecode(m.code) s = Krakatau.ssa.ssaFromVerified(m.code, v) for func in funcs: func(graph=s) if s.procs: s.mergeSingleSuccessorBlocks() s.removeUnusedVariables() s.inlineSubprocs() # print _stats(s) s.condenseBlocks() s.mergeSingleSuccessorBlocks() s.removeUnusedVariables() # print _stats(s) s.constraintPropagation() s.disconnectConstantVariables() s.simplifyJumps() s.mergeSingleSuccessorBlocks() s.removeUnusedVariables() # print _stats(s) return s