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

jit/backend/aarch64/test/test_ztranslation_basic.py::TestTranslationAarch64::()::test_stuff_translates

self = <rpython.jit.backend.aarch64.test.test_ztranslation_basic.TestTranslationAarch64 object at 0x0000000118087788>

    def test_stuff_translates(self):
        # this is a basic test that tries to hit a number of features and their
        # translation:
        # - jitting of loops and bridges
        # - two virtualizable types
        # - set_param interface
        # - profiler
        # - full optimizer
        # - floats neg and abs
        # - cast_int_to_float
        # - llexternal with macro=True
        # - extra place for the zero after STR instances
    
        class BasicFrame(object):
            _virtualizable_ = ['i']
    
            def __init__(self, i):
                self.i = i
    
        class Frame(BasicFrame):
            pass
    
        eci = ExternalCompilationInfo(post_include_bits=['''
    #define pypy_my_fabs(x)  fabs(x)
    '''], includes=['math.h'])
        myabs1 = rffi.llexternal('pypy_my_fabs', [lltype.Float],
                                 lltype.Float, macro=True, releasegil=False,
                                 compilation_info=eci)
        myabs2 = rffi.llexternal('pypy_my_fabs', [lltype.Float],
                                 lltype.Float, macro=True, releasegil=True,
                                 compilation_info=eci)
    
        @jl.returns(jl.MP_FILENAME,
                    jl.MP_LINENO,
                    jl.MP_INDEX)
        def get_location():
            return ("/home.py",0,0)
    
        jitdriver = JitDriver(greens = [],
                              reds = ['total', 'frame', 'prev_s', 'j'],
                              virtualizables = ['frame'],
                              get_location = get_location)
        def f(i, j):
            for param, _ in unroll_parameters:
                defl = PARAMETERS[param]
                set_param(jitdriver, param, defl)
            set_param(jitdriver, "threshold", 3)
            set_param(jitdriver, "trace_eagerness", 2)
            total = 0
            frame = Frame(i)
            j = float(j)
            prev_s = rstr.mallocstr(16)
            while frame.i > 3:
                jitdriver.can_enter_jit(frame=frame, total=total, j=j,
                                        prev_s=prev_s)
                jitdriver.jit_merge_point(frame=frame, total=total, j=j,
                                          prev_s=prev_s)
                _get_virtualizable_token(frame)
                total += frame.i
                if frame.i >= 20:
                    frame.i -= 2
                frame.i -= 1
                j *= -0.712
                if j + (-j):    raise ValueError
                j += frame.i
                k = myabs1(myabs2(j))
                if k - abs(j):  raise ValueError
                if k - abs(-j): raise ValueError
                s = rstr.mallocstr(16)
                rgc.ll_write_final_null_char(s)
                rgc.ll_write_final_null_char(prev_s)
                if (frame.i & 3) == 0:
                    prev_s = s
            return chr(total % 253)
        #
        class Virt2(object):
            _virtualizable_ = ['i']
            def __init__(self, i):
                self.i = i
        from rpython.rlib.libffi import types, CDLL, ArgChain
        from rpython.rlib.test.test_clibffi import get_libm_name
        libm_name = get_libm_name(sys.platform)
        jitdriver2 = JitDriver(greens=[], reds = ['v2', 'func', 'res', 'x'],
                               virtualizables = ['v2'])
        def libffi_stuff(i, j):
            lib = CDLL(libm_name)
            func = lib.getpointer('fabs', [types.double], types.double)
            res = 0.0
            x = float(j)
            v2 = Virt2(i)
            while v2.i > 0:
                jitdriver2.jit_merge_point(v2=v2, res=res, func=func, x=x)
                promote(func)
                argchain = ArgChain()
                argchain.arg(x)
                res = func.call(argchain, rffi.DOUBLE)
                v2.i -= 1
            return res
        #
        def main(i, j):
            a_char = f(i, j)
            a_float = libffi_stuff(i, j)
            return ord(a_char) * 10 + int(a_float)
        expected = main(40, -49)
>       res = self.meta_interp(main, [40, -49])

jit/backend/llsupport/test/ztranslation_test.py:127: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
jit/backend/test/support.py:75: in meta_interp
    return self._compile_and_run(t, entry_point, entry_point_graph, args)
jit/backend/test/support.py:132: in _compile_and_run
    exe_name = cbuilder.compile()
translator/c/genc.py:341: in compile
    extra_opts)
translator/platform/posix.py:277: in execute_makefile
    self._handle_error(returncode, stdout, stderr, path.join('make'))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Darwin_arm64 cc=clang>, returncode = 2
stdout = 'clang -O3 -fomit-frame-pointer -Wno-duplicate-decl-specifier -mmacosx-version-min=10.13 -arch arm64 -mdynamic-no-pic ...ld/rpython"/rlib/rjitlog/src -I"/Users/matti/build-worker-arm64/rpython-macos-arm64/build/rpython"/rlib/rvmprof/src \n'
stderr = "testing_1.c:58:2: warning: 'GC_all_interior_pointers' is deprecated [-Wdeprecated-declarations]\n   58 |         GC_a...memcpy;\n       |                  ^ ~~~~~~\n1 error generated.\nmake: *** [rpython_jit_backend_llsupport.o] Error 1\n"
outname = local('/tmp/buildbot-arm64/usession-main-7300/testing_1/make')

    def _handle_error(self, returncode, stdout, stderr, outname):
        if returncode != 0:
            errorfile = outname.new(ext='errors')
            errorfile.write(stderr, 'wb')
            if self.log_errors:
                stderrlines = stderr.splitlines()
                for line in stderrlines:
                    log.Error(line)
                # ^^^ don't use ERROR, because it might actually be fine.
                # Also, ERROR confuses lib-python/conftest.py.
>           raise CompilationError(stdout, stderr)
E           CompilationError: CompilationError(err="""
E           	testing_1.c:58:2: warning: 'GC_all_interior_pointers' is deprecated [-Wdeprecated-declarations]
E           	   58 |         GC_all_interior_pointers = 0;
E           	      |         ^
E           	/opt/homebrew/Cellar/bdw-gc/8.2.12/include/gc/gc.h:193:8: note: 'GC_all_interior_pointers' has been explicitly marked deprecated here
E           	  193 | GC_API GC_ATTR_DEPRECATED int GC_all_interior_pointers;
E           	      |        ^
E           	/opt/homebrew/Cellar/bdw-gc/8.2.12/include/gc/gc_config_macros.h:309:46: note: expanded from macro 'GC_ATTR_DEPRECATED'
E           	  309 | #   define GC_ATTR_DEPRECATED __attribute__((__deprecated__))
E           	      |                                              ^
E           	1 warning generated.
E           	rpython_jit_backend_llsupport.c:13167:11: error: incompatible function pointer types assigning to 'void (*)(void *, void *, size_t)' (aka 'void (*)(void *, void *, unsigned long)') from 'void *(void *, const void *, unsigned long)' [-Wincompatible-function-pointer-types]
E           	 13167 |         l_v30166 = memcpy;
E           	       |                  ^ ~~~~~~
E           	1 error generated.
E           	make: *** [rpython_jit_backend_llsupport.o] Error 1
E           	""")

translator/platform/__init__.py:155: CompilationError
---------- Captured stdout call ----------
in get_rpath_flags, rel_libdirs is not fixed up [u'/opt/homebrew/Cellar/bdw-gc/8.2.12/lib']
---------- Captured stderr call ----------
[rtyper] specializing: 100 / 626 blocks   (15%)
[rtyper] specializing: 200 / 646 blocks   (30%)
[rtyper] specializing: 300 / 780 blocks   (38%)
[rtyper] specializing: 400 / 849 blocks   (47%)
[rtyper] specializing: 500 / 854 blocks   (58%)
[rtyper] specializing: 600 / 878 blocks   (68%)
[rtyper] specializing: 700 / 895 blocks   (78%)
[rtyper] specializing: 800 / 899 blocks   (88%)
[rtyper] -=- specialized 899 blocks -=-
[rtyper] specializing: 900 / 903 blocks   (99%)
[rtyper] -=- specialized 4 more blocks -=-
[rtyper] specializing: 1000 / 1189 blocks   (84%)
[rtyper] specializing: 1100 / 1189 blocks   (92%)
[rtyper] -=- specialized 286 more blocks -=-
[rtyper] -=- specialized 6 more blocks -=-
[rtyper] -=- specialized 2 more blocks -=-
[rtyper] specializing: 1200 / 1204 blocks   (99%)
[rtyper] -=- specialized 7 more blocks -=-
[rtyper] -=- specialized 2 more blocks -=-
[rtyper] -=- specialized 15 more blocks -=-
[rtyper] -=- specialized 2 more blocks -=-
[backendopt:inlining] phase with threshold factor: 32.4
[backendopt:inlining] heuristic: rpython.translator.backendopt.inline.inlining_heuristic
[backendopt:inlining] inlined 20 callsites.
[backendopt:malloc] starting malloc removal
[backendopt:malloc] removed 13 simple mallocs in total
[backendopt:mergeifblocks] starting to merge if blocks
[rtyper] -=- specialized 6 more blocks -=-
[jitcodewriter:info] making JitCodes...
[jitcodewriter:info] There are 5 JitCode instances.
[jitcodewriter:info] There are 34 -live- ops. Size of liveness is 110 bytes
[rtyper] replaced 0 'jit_force_virtualizable' with <* delayed!force_virtualizable_if_necessary>
[rtyper] replaced 5 'jit_force_virtualizable' with <* delayed!force_virtualizable_if_necessary>
[jitcodewriter] compute_bitstrings:
[jitcodewriter]   9 effectinfos:
[jitcodewriter]     2 descrs for arrays
[jitcodewriter]     1 descrs for fields
[jitcodewriter]     0 descrs for interiorfields
[jitcodewriter] -> 3 bitstrings, mean length 0.7, max length 1
[rtyper] specializing: 1900 / 36312 blocks   (5%)
[rtyper] specializing: 3800 / 37496 blocks   (10%)
[rtyper] specializing: 6100 / 40025 blocks   (15%)
[rtyper] specializing: 8200 / 40631 blocks   (20%)
[rtyper] specializing: 11100 / 44191 blocks   (25%)
[rtyper] specializing: 13800 / 45910 blocks   (30%)
[rtyper] specializing: 16100 / 45910 blocks   (35%)
[rtyper] specializing: 18400 / 45910 blocks   (40%)
[rtyper] specializing: 20700 / 45910 blocks   (45%)
[rtyper] specializing: 23200 / 46309 blocks   (50%)
[rtyper] specializing: 27800 / 50484 blocks   (55%)
[rtyper] specializing: 30400 / 50631 blocks   (60%)
[rtyper] specializing: 33000 / 50631 blocks   (65%)
[rtyper] specializing: 35300 / 50631 blocks   (69%)
[rtyper] specializing: 37500 / 50631 blocks   (74%)
[rtyper] specializing: 40000 / 50631 blocks   (79%)
[rtyper] specializing: 42700 / 50730 blocks   (84%)
[rtyper] specializing: 45200 / 50730 blocks   (89%)
[rtyper] specializing: 47700 / 50730 blocks   (94%)
[rtyper] specializing: 50300 / 50730 blocks   (99%)
[rtyper] specializing: 50700 / 50732 blocks   (99%)
[rtyper] -=- specialized 49503 more blocks -=-
[rtyper] -=- specialized 24 more blocks -=-
[rtyper] -=- specialized 0 more blocks -=-
[rtyper] -=- specialized 25 more blocks -=-
[rtyper] specializing: 50800 / 50845 blocks   (99%)
[rtyper] -=- specialized 64 more blocks -=-
[backendopt:inlining] phase with threshold factor: 32.4
[backendopt:inlining] heuristic: rpython.translator.backendopt.inline.inlining_heuristic
[backendopt:inlining] inlined 8 callsites.
[backendopt:malloc] starting malloc removal
[backendopt:malloc] removed 0 simple mallocs in total
[backendopt:mergeifblocks] starting to merge if blocks
[rtyper] -=- specialized 5 more blocks -=-
[rtyper] -=- specialized 0 more blocks -=-
[c]     1000 nodes  [ array: 234  boehm rtti: 45  func: 577  struct: 2641 ]
[c]     2000 nodes  [ array: 2234  boehm rtti: 45  func: 577  struct: 2641 ]
[c]     3000 nodes  [ array: 4234  boehm rtti: 45  func: 577  struct: 2641 ]
[c]     4000 nodes  [ array: 4351  boehm rtti: 52  func: 720  struct: 4356 ]
[c]     5000 nodes  [ array: 4351  boehm rtti: 52  func: 720  struct: 4356 ]
[c]     6000 nodes  [ array: 4351  boehm rtti: 52  func: 720  struct: 4356 ]
[c]     7000 nodes  [ array: 4351  boehm rtti: 52  func: 720  struct: 4356 ]
[c]     8000 nodes  [ array: 4371  boehm rtti: 81  func: 910  struct: 4429 ]
[c]     9000 nodes  [ array: 4371  boehm rtti: 219  func: 1144  struct: 4567 ]
[c]    10000 nodes  [ array: 4465  boehm rtti: 285  func: 1384  struct: 4745 ]
[c]    11000 nodes  [ array: 4656  boehm rtti: 299  func: 1612  struct: 4884 ]
[c]    12000 nodes  [ array: 4759  boehm rtti: 318  func: 2201  struct: 5716 ]
[c]    13000 nodes  [ array: 5058  boehm rtti: 331  func: 2609  struct: 6054 ]
[c]    14000 nodes  [ array: 5139  boehm rtti: 345  func: 3004  struct: 6260 ]
[c]    15000 nodes  [ array: 5199  boehm rtti: 351  func: 3564  struct: 6459 ]
[c]    16000 nodes  [ array: 5242  boehm rtti: 360  func: 4141  struct: 6586 ]
[c]    17000 nodes  [ array: 5291  boehm rtti: 383  func: 5031  struct: 6768 ]
[c]    18000 nodes  [ array: 5307  boehm rtti: 401  func: 5854  struct: 7001 ]
[c]    19000 nodes  [ array: 5367  boehm rtti: 425  func: 6884  struct: 7869 ]
[c]    20000 nodes  [ array: 5386  boehm rtti: 428  func: 8890  struct: 7918 ]
[c]    21000 nodes  [ array: 5398  boehm rtti: 430  func: 8947  struct: 7956 ]
[c]    22000 nodes  [ array: 5398  boehm rtti: 430  func: 8985  struct: 7956 ]
[c]    23000 nodes  [ array: 5431  boehm rtti: 448  func: 9229  struct: 8088 ]
[c]    24000 nodes  [ array: 5485  boehm rtti: 465  func: 9848  struct: 8222 ]
[rtyper] -=- specialized 47 more blocks -=-
[backendopt:inlining] phase with threshold factor: 32.4
[backendopt:inlining] heuristic: rpython.translator.backendopt.inline.inlining_heuristic
[backendopt:inlining] inlined 1 callsites.
[backendopt:malloc] starting malloc removal
[backendopt:malloc] removed 16 simple mallocs in total
[backendopt:mergeifblocks] starting to merge if blocks
[c:database] GC transformer: finished helpers
[c:database] GC transformer: finished tables
[c:database] Inlining GC helpers and postprocessing
[c]    24073 nodes  [ array: 5491  boehm rtti: 465  func: 9889  struct: 8228 ]
[c:database] Completed
[c:writing] structdef.h
[c:writing] forwarddecl.h
[c:writing] preimpl.h
[c:writing] data_rpython_flowspace.c
[c:writing] data_rpython_jit_backend.c
[c:writing] data_rpython_jit_backend_aarch64.c
[c:writing] data_rpython_jit_backend_arm.c
[c:writing] data_rpython_jit_backend_llsupport.c
[c:writing] data_rpython_jit_backend_llsupport_test.c
[c:writing] data_rpython_jit_codewriter.c
[c:writing] data_rpython_jit_metainterp.c
[c:writing] data_rpython_jit_metainterp_optimizeopt.c
[c:writing] data_rpython_memory_gctransform.c
[c:writing] data_rpython_rlib.c
[c:writing] data_rpython_rlib_rjitlog.c
[c:writing] data_rpython_rtyper.c
[c:writing] data_rpython_rtyper_lltypesystem.c
[c:writing] data_rpython_translator_c.c
[c:writing] nonfuncnodes.c
[c:writing] data_rpython_jit_backend_aarch64_1.c
[c:writing] data_rpython_jit_backend_llsupport_1.c
[c:writing] data_rpython_jit_codewriter_1.c
[c:writing] data_rpython_jit_metainterp_1.c
[c:writing] data_rpython_rlib_1.c
[c:writing] data_rpython_rlib_rvmprof.c
[c:writing] data_rpython_rtyper_lltypesystem_1.c
[c:writing] implement.c
[c:writing] rpython_flowspace.c
[c:writing] rpython_jit_backend.c
[c:writing] rpython_jit_backend_aarch64.c
[c:writing] rpython_jit_backend_arm.c
[c:writing] rpython_jit_backend_llsupport.c
[c:writing] rpython_jit_backend_llsupport_test.c
[c:writing] rpython_jit_codewriter.c
[c:writing] rpython_jit_metainterp.c
[c:writing] rpython_jit_metainterp_optimizeopt.c
[c:writing] rpython_memory_gctransform.c
[c:writing] rpython_rlib.c
[c:writing] rpython_rlib_rjitlog.c
[c:writing] rpython_rlib_rvmprof.c
[c:writing] rpython_rtyper.c
[c:writing] rpython_rtyper_lltypesystem.c
[c:writing] rpython_rtyper_lltypesystem_module.c
[c:writing] rpython_tool_algo.c
[c:writing] rpython_translator.c
[c:writing] rpython_translator_c.c
[platform:execute] make  in /tmp/buildbot-arm64/usession-main-7300/testing_1
[platform:Error] testing_1.c:58:2: warning: 'GC_all_interior_pointers' is deprecated [-Wdeprecated-declarations]
[platform:Error]    58 |         GC_all_interior_pointers = 0;
[platform:Error]       |         ^
[platform:Error] /opt/homebrew/Cellar/bdw-gc/8.2.12/include/gc/gc.h:193:8: note: 'GC_all_interior_pointers' has been explicitly marked deprecated here
[platform:Error]   193 | GC_API GC_ATTR_DEPRECATED int GC_all_interior_pointers;
[platform:Error]       |        ^
[platform:Error] /opt/homebrew/Cellar/bdw-gc/8.2.12/include/gc/gc_config_macros.h:309:46: note: expanded from macro 'GC_ATTR_DEPRECATED'
[platform:Error]   309 | #   define GC_ATTR_DEPRECATED __attribute__((__deprecated__))
[platform:Error]       |                                              ^
[platform:Error] 1 warning generated.
[platform:Error] rpython_jit_backend_llsupport.c:13167:11: error: incompatible function pointer types assigning to 'void (*)(void *, void *, size_t)' (aka 'void (*)(void *, void *, unsigned long)') from 'void *(void *, const void *, unsigned long)' [-Wincompatible-function-pointer-types]
[platform:Error]  13167 |         l_v30166 = memcpy;
[platform:Error]        |                  ^ ~~~~~~
[platform:Error] 1 error generated.
[platform:Error] make: *** [rpython_jit_backend_llsupport.o] Error 1
 (somefailed=True in jit/backend/aarch64/test/test_ztranslation_basic.py)
builder: rpython-macos-arm64 build #261
test: jit/backend/aarch64/test/test_ztranslation_basic/py/TestTranslationAarch64/()/test_stuff_translates