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@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--
```
_______________________________________________
pypy-issue mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-issue