Home - Summaries: (main) : (py3.11) : Everything - Nightly builds - Benchmarks - RPython - Builders - About

pypy/module/pypyjit/test_pypy_c/test_jitlogparser.py::TestLogParser::()::test

self = <pypy.module.pypyjit.test_pypy_c.test_jitlogparser.TestLogParser object at 0x00000001454cd5c8>

    def test(self):
        def fn_with_bridges(N):
            def is_prime(x):
                for y in range(2, x):
                    if x % y == 0:
                        return False
                return True
            result = 0
            for x in range(N):
                if x % 3 == 0:
                    result += 5
                elif x % 5 == 0:
                    result += 3
                elif is_prime(x):
                    result += x
                elif x == 99:
                    result *= 2
            return result
        #
        N = 10000
        _log = self.run(fn_with_bridges, [N])
        log, loops = import_log(_log.logfile)
        parse_log_counts(extract_category(log, 'jit-backend-count'), loops)
    
        is_prime_loops = []
        fn_with_bridges_loops = []
        bridges = {}
    
        for loop in loops:
            if hasattr(loop, 'force_asm'):
                try:
>                   loop.force_asm()

pypy/module/pypyjit/test_pypy_c/test_jitlogparser.py:45: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpython/tool/jitlogparser/parser.py:472: in <lambda>
    dump_start=start_ofs))
rpython/tool/jitlogparser/parser.py:110: in postprocess
    backend_tp, dump_start)
rpython/tool/jitlogparser/parser.py:151: in _asm_disassemble
    return list(machine_code_dump(d, origin_addr, tp))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data = '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\...xca\x8a\xd2pR\xa0\xf20\x00\xc0\xf2\xb0\x13\x00\xf9\x10\x00\x88\xd2pR\xa0\xf20\x00\xc0\xf2\x10\x00\xe0\xf2\x00\x02?\xd6'
originaddr = 4338177632L, backend_name = 'arm', label_list = None

    def machine_code_dump(data, originaddr, backend_name, label_list=None):
        objdump_machine_option = {
            'x86': 'i386',
            'x86-without-sse2': 'i386',
            'x86_32': 'i386',
            'x86_64': 'i386:x86-64',
            'x86-64': 'i386:x86-64',
            'i386': 'i386',
            'arm': 'arm',
            'arm_32': 'arm',
            'aarch64': 'aarch64',
            'ppc' : 'powerpc:common64',
            'ppc-64' : 'powerpc:common64',
            'riscv64': 'riscv:rv64',
            's390x': 's390:64-bit',
        }
        machine_endianness = {
            # default value: 'little'
            'ppc' : sys.byteorder,     # i.e. same as the running machine...
            'ppc-64' : sys.byteorder,     # i.e. same as the running machine...
            's390x' : sys.byteorder,     # i.e. same as the running machine...
        }
        cmd = find_objdump()
        objdump = ('%(command)s -b binary -m %(machine)s '
                   '--endian=%(endianness)s '
                   '--disassembler-options=intel-mnemonics '
                   '--adjust-vma=%(origin)d -D %(file)s')
        #
        f = open(tmpfile, 'wb')
        f.write(data)
        f.close()
        p = subprocess.Popen(objdump % {
            'command': cmd,
            'file': tmpfile,
            'origin': originaddr,
            'machine': objdump_machine_option[backend_name],
            'endianness': machine_endianness.get(backend_name, 'little'),
        }, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        stdout, stderr = p.communicate()
        assert not p.returncode, ('Encountered an error running objdump: %s' %
>                                 stderr)
E       AssertionError: Encountered an error running objdump: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/objdump: error: unknown argument '-b'

rpython/jit/backend/tool/viewcode.py:82: AssertionError
---------- Captured stdout call ----------
loading symbols from /Users/matti/build-worker-arm64/pypy-c-jit-macos-arm64/build/pypy/goal/pypy3.12-c...
3 symbols found
---------- Captured stderr call ----------
0%..loaded
builder: pypy-c-jit-macos-arm64 build #1306+
test: pypy/module/pypyjit/test_pypy_c/test_jitlogparser.py::TestLogParser::()::test