[pypy-issue] Issue #2165: Default branch arm backend translation fails (unknown asm registers) (pypy/pypy)

Pete Vine issues-reply at bitbucket.org
Mon Oct 19 12:47:42 CEST 2015


New issue 2165: Default branch arm backend translation fails (unknown asm registers)
https://bitbucket.org/pypy/pypy/issues/2165/default-branch-arm-backend-translation

Pete Vine:

Trying to translate the latest default branch of pypy natively on an armv7 linux platform using gcc 4.9.2 and pypy 2.6.1,

 `PYPY_GC_MAX_DELTA=200MB pypy --jit loop_longevity=300 ../../rpython/bin/rpython --source -Ojit --jit-backend=arm targetpypystandalone`

 fails with:

```
#!python

[platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused -O3 -mcpu=cortex-a5 -I/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/stacklet.c -o /tmp/usession-default-0/rpython/translator/c/src/stacklet/stacklet.o
[a918] translation-task}

[Timer] Timings:
[Timer] annotate                       --- 1395.2 s
[Timer] ===========================================
[Timer] Total:                         --- 1395.2 s
[translation:info] Error:
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/goal/translate.py", line 318, in main
[translation:info]     drv.proceed(goals)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/driver.py", line 551, in proceed
[translation:info]     return self._execute(goals, task_skip = self._maybe_skip())
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/tool/taskengine.py", line 114, in _execute
[translation:info]     res = self._do(goal, taskcallable, *args, **kwds)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/driver.py", line 279, in _do
[translation:info]     res = func()
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/driver.py", line 316, in task_annotate
[translation:info]     s = annotator.build_types(self.entry_point, self.inputtypes)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/annrpython.py", line 86, in build_types
[translation:info]     return self.build_graph_types(flowgraph, inputs_s, complete_now=complete_now)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/annrpython.py", line 132, in build_graph_types
[translation:info]     self.complete()
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/annrpython.py", line 186, in complete
[translation:info]     self.complete_pending_blocks()
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/annrpython.py", line 181, in complete_pending_blocks
[translation:info]     self.processblock(graph, block)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/annrpython.py", line 344, in processblock
[translation:info]     self.flowin(graph, block)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/annrpython.py", line 415, in flowin
[translation:info]     self.consider_op(op)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/annrpython.py", line 587, in consider_op
[translation:info]     resultcell = op.consider(self)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/flowspace/operation.py", line 104, in consider
[translation:info]     return spec(annotator, *self.args)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/flowspace/operation.py", line 204, in specialized
[translation:info]     return impl(*[annotator.annotation(x) for x in other_args])
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/unaryop.py", line 882, in getattr
[translation:info]     return bookkeeper.pbc_getattr(self, s_attr)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/bookkeeper.py", line 465, in pbc_getattr
[translation:info]     return first.s_read_attribute(attr)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/description.py", line 1029, in s_read_attribute
[translation:info]     return self.bookkeeper.immutablevalue(value)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/bookkeeper.py", line 286, in immutablevalue
[translation:info]     result.dictdef.generalize_value(self.immutablevalue(ev))
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/bookkeeper.py", line 336, in immutablevalue
[translation:info]     x._cleanup_()
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/pypy/interpreter/mixedmodule.py", line 129, in _cleanup_
[translation:info]     self.getdict(self.space)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/pypy/interpreter/mixedmodule.py", line 122, in getdict
[translation:info]     w_value = self.get(name)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/pypy/interpreter/mixedmodule.py", line 75, in get
[translation:info]     w_value = self.getdictvalue(space, name)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/pypy/interpreter/mixedmodule.py", line 87, in getdictvalue
[translation:info]     return self._load_lazily(space, name)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/pypy/interpreter/mixedmodule.py", line 97, in _load_lazily
[translation:info]     w_value = loader(space)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/pypy/interpreter/mixedmodule.py", line 180, in ifileloader
[translation:info]     d[name] = __import__(pkgroot+'.'+name, None, None, [name])
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/pypy/module/_continuation/interp_continuation.py", line 1, in <module>
[translation:info]     from rpython.rlib.rstacklet import StackletThread
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/rlib/rstacklet.py", line 2, in <module>
[translation:info]     from rpython.rlib import _rffi_stacklet as _c
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/rlib/_rffi_stacklet.py", line 23, in <module>
[translation:info]     rffi_platform.verify_eci(eci.convert_sources_to_files())
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/rtyper/tool/rffi_platform.py", line 94, in verify_eci
[translation:info]     configure(CConfig)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/rtyper/tool/rffi_platform.py", line 251, in configure
[translation:info]     res[key] = value.question(writer.ask_gcc)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/rtyper/tool/rffi_platform.py", line 556, in question
[translation:info]     ask_gcc("")
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/rtyper/tool/rffi_platform.py", line 198, in ask_gcc
[translation:info]     try_compile_cache([self.path], eci)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/tool/gcc_cache.py", line 68, in try_compile_cache
[translation:info]     platform.compile(c_files, eci)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/platform/__init__.py", line 53, in compile
[translation:info]     ofiles = self._compile_o_files(cfiles, eci, standalone)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/platform/__init__.py", line 75, in _compile_o_files
[translation:info]     ofiles.append(self._compile_c_file(self.cc, cfile, compile_args))
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/platform/posix.py", line 40, in _compile_c_file
[translation:info]     cwd=str(cfile.dirpath()))
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/platform/__init__.py", line 139, in _execute_c_compiler
[translation:info]     self._handle_error(returncode, stdout, stderr, outname)
[translation:info]    File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/platform/__init__.py", line 151, in _handle_error
[translation:info]     raise CompilationError(stdout, stderr)
[translation:ERROR] CompilationError: CompilationError(err="""
[translation:ERROR]     In file included from /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/slp_platformselect.h:12:0,
[translation:ERROR]                      from /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/stacklet.c:20:
[translation:ERROR]     /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/switch_arm_gcc.h: In function ‘slp_switch’:
[translation:ERROR]     /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/switch_arm_gcc.h:19:3: error: unknown register name ‘f7’ in ‘asm’
[translation:ERROR]        __asm__ volatile (
[translation:ERROR]        ^
[translation:ERROR]     /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/switch_arm_gcc.h:19:3: error: unknown register name ‘f6’ in ‘asm’
[translation:ERROR]     /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/switch_arm_gcc.h:19:3: error: unknown register name ‘f5’ in ‘asm’
[translation:ERROR]     /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/switch_arm_gcc.h:19:3: error: unknown register name ‘f4’ in ‘asm’
[translation:ERROR]     /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/switch_arm_gcc.h:19:3: error: unknown register name ‘f3’ in ‘asm’
[translation:ERROR]     /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/switch_arm_gcc.h:19:3: error: unknown register name ‘f2’ in ‘asm’
[translation:ERROR]     /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/switch_arm_gcc.h:19:3: error: unknown register name ‘f1’ in ‘asm’
[translation:ERROR]     /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/switch_arm_gcc.h:19:3: error: unknown register name ‘f0’ in ‘asm’
[translation:ERROR]     """)
[translation:ERROR] Processing block:
[translation:ERROR]  block at 128 is a <class 'rpython.flowspace.flowcontext.SpamBlock'>
[translation:ERROR]  in (pypy.interpreter.baseobjspace:470)getbuiltinmodule
[translation:ERROR]  containing the following operations:
[translation:ERROR]        v0 = getattr(self_0, ('builtin_modules'))
[translation:ERROR]        w_mod_0 = getitem(v0, name_0)
[translation:ERROR]  --end--
```





More information about the pypy-issue mailing list