Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
    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