Beispiel #1
0
    def test_on_optimize(self):
        import pypyjit
        l = []

        def hook(name, looptype, tuple_or_guard_no, ops, *args):
            l.append(ops)

        def optimize_hook(name, looptype, tuple_or_guard_no, ops):
            return []

        pypyjit.set_compile_hook(hook)
        pypyjit.set_optimize_hook(optimize_hook)
        self.on_optimize()
        self.on_compile()
        assert l == [[]]
Beispiel #2
0
    def test_on_optimize(self):
        import pypyjit
        l = []

        def hook(name, looptype, tuple_or_guard_no, ops, *args):
            l.append(ops)

        def optimize_hook(name, looptype, tuple_or_guard_no, ops):
            return []

        pypyjit.set_compile_hook(hook)
        pypyjit.set_optimize_hook(optimize_hook)
        self.on_optimize()
        self.on_compile()
        assert l == [[]]
Beispiel #3
0
    def test_on_optimize(self):
        import pypyjit
        l = []

        def hook(info):
            l.append(info.jitdriver_name)

        def optimize_hook(info):
            return []

        pypyjit.set_compile_hook(hook)
        pypyjit.set_optimize_hook(optimize_hook)
        self.on_optimize()
        self.on_compile()
        assert l == ['pypyjit']
Beispiel #4
0
    def test_on_optimize(self):
        import pypyjit
        l = []

        def hook(info):
            l.append(info.jitdriver_name)

        def optimize_hook(info):
            return []

        pypyjit.set_compile_hook(hook)
        pypyjit.set_optimize_hook(optimize_hook)
        self.on_optimize()
        self.on_compile()
        assert l == ['pypyjit']
        if op.name == "debug_merge_point":
            print dir(op.pycode)
            print op.pycode.co_code
        print dir(op)


def hook2(*args):
    l2.append(args)


def hook3(*args):
    l3.append(args)


pypyjit.set_compile_hook(hook)
pypyjit.set_optimize_hook(hook2)
pypyjit.set_abort_hook(hook3)
runpy.run_path(sys.argv[1])
pypyjit.set_compile_hook(None)
pypyjit.set_optimize_hook(None)
pypyjit.set_abort_hook(None)

for jitdriver_name, loop_type, greenkey, operations, assembler_addr, assembler_length in l:
    storage = LoopStorage()
    try:
        code = storage.load_code(loop.filename)[(loop.startlineno, loop.name)]
        if code.co_name == "<module>" and code.co_firstlineno == 1:
            with open(code.co_filename) as f:
                source = CodeRepr(f.read(), code, loop)
        else:
            source = CodeRepr(inspect.getsource(code), code, loop)
Beispiel #6
0
    logging.debug("%d, Elapsed TPS: %d, Elapsed: %f" % (count, int(count/(t1 - tstart)), (t1-tstart)))

import sys

def bork(name, greenkey, reason):
    print "ABORTED: ", name, greenkey,reason
def optimize(name, loop, greenkey, operations):
    print "OPTIMIZE: ", name, loop, greenkey
def chook(jitdriver_name, loop_type, greenkey, operations, assembler_addr, assembler_length):
    if loop_type == 'entry bridge':
        print "COMPILE: ", loop_type, greenkey

if __name__ == '__main__':

    if False:
        import pypyjit
        pypyjit.set_abort_hook(bork)
        pypyjit.set_optimize_hook(optimize)
        pypyjit.set_compile_hook(chook)

    #dumbtest()
    #sys.exit(0)

    logging.basicConfig(level=logging.DEBUG)
    fd = sys.stdin
    outfd = sys.stdout
    byline(fd, outfd)
    #at = SQLexer()
    #for i in range(128):
    #    print i, chr(i), at.map_main_alt[i]