mu-client-pypy issueshttps://gitlab.anu.edu.au/mu/mu-client-pypy/-/issues2017-11-11T00:35:27+11:00https://gitlab.anu.edu.au/mu/mu-client-pypy/-/issues/19PyPy-JIT meta issue2017-11-11T00:35:27+11:00Zixian CaiPyPy-JIT meta issue* [ ] AOT and JIT should map a lltype to same mutype.
* [ ] High level type information should be accessible during runtime.
* [ ] Efficient way to encode/decode type information in JitCode. #4
* [ ] CCALL a ufuncptr of an expos...* [ ] AOT and JIT should map a lltype to same mutype.
* [ ] High level type information should be accessible during runtime.
* [ ] Efficient way to encode/decode type information in JitCode. #4
* [ ] CCALL a ufuncptr of an exposed Mu function. #15
* [ ] How to model guards, loops and bridges in Mu.Zixian CaiZixian Caihttps://gitlab.anu.edu.au/mu/mu-client-pypy/-/issues/14Translation fails on mu-rewrite-aot-jitsupport with -Ojit2018-06-18T22:18:37+10:00Timm Allmantallman@cs.umass.eduTranslation fails on mu-rewrite-aot-jitsupport with -OjitI can't commit to mu-rewrite-aot-jitsupport so code is on mu-jit-2.
Translation fails in a bunch of places looking for attributes that don't exist.I can't commit to mu-rewrite-aot-jitsupport so code is on mu-jit-2.
Translation fails in a bunch of places looking for attributes that don't exist.Zixian CaiZixian Caihttps://gitlab.anu.edu.au/mu/mu-client-pypy/-/issues/4Loss of type information in JitCode2017-10-05T22:02:35+11:00John ZhangLoss of type information in JitCode# Problem Description
RPython contains a meta-interpreter that produces trace of JitCode as the interpreter runs.
JitCode is a flattened representation of the control flow graph of the source RPython program processed by the ahead-of...# Problem Description
RPython contains a meta-interpreter that produces trace of JitCode as the interpreter runs.
JitCode is a flattened representation of the control flow graph of the source RPython program processed by the ahead-of-time compiler.
Due to the C oriented design and the complexity of Python objects representating the types in RPython program,
the flattening process generally throws away type information.
In the case of `malloc`, the type is replaced by the size in bytes of the allocated object.
This poses a problem for Mu, since `NEW` instruction requires type information.
It is neccessary then, to do some 'hacking' in the flattening process to preserve some sort of type information,
with possible addition to some special JitCode instructions.
Research still needs to be done on the flattening process,
the representation of JitCode,
and the coordination with the AoT chain,
so to propose possible solutions.
# Files of interest
- `rpython/jit/codewriter/codewriter.py:31` -- `transform_graph_to_jitcode` function is a key function that compiles RTyped graph into JitCode. It is a multi-step process. The documentation in the function gives an overview of the steps.
- `rpython/jit/codewriter/jtransform.py:231` -- the operations in the RTyped graph are rewritten to prepare to be encoded to JitCode. It is at this step that the type information in malloc is lost (see `rewrite_op_malloc()` at line 940).