Re: [pypy-dev] [pypy-svn] r75220 - in pypy/trunk/pypy: annotation annotation/test jit/backend jit/backend/llgraph jit/backend/llgraph/test jit/backend/llsupport jit/backend/llsupport/test jit/backend/test jit/backend/x86 jit/backend/x86/test jit/codewriter jit/codewriter/test jit/metainterp jit/metainterp/test jit/tl jit/tl/spli jit/tl/tla jit/tool jit/tool/test module/pypyjit module/pypyjit/test objspace/flow rpython rpython/lltypesystem rpython/lltypesystem/test rpython/memory/gctransform/test rpython/mem

On 08/06/10 23:42, arigo@codespeak.net wrote:
The number of changes is a bit huge though. The format of the static bytecodes used by the jit changed completely, and codewriter.py is now split among many files in the new directory pypy.jit.codewriter. There is also no longer ConstAddr, only ConstInt: prebuilt addresses are now turned into integers (which are symbolic, with the new class AddressAsInt, so they can be rendered by the C translation backend). Various related changes occurred here and there.
I didn't look at the branch deeply, but the last sentence looks suspiciously hard/impossible to implement in ootype. Could you explain why ConstAdrr were bad please? ciao, Anto

Hi Anto, On Thu, Jun 10, 2010 at 12:26:07AM +0200, Antonio Cuni wrote:
I didn't look at the branch deeply, but the last sentence looks suspiciously hard/impossible to implement in ootype. Could you explain why ConstAdrr were bad please?
Because the blackhole interpreter doesn't use ConstXxx at all. The constants are now encoded directly in the jitcode -- in three lists, a list of integers, a list of references, and a list of float. There is almost no ConstXxx prebuilt any more. It seemed like a waste to need a fourth list just for addresses when they would fit in the list of integer constants too, hence I did AddressAsInt. It's a rather natural thing to do for lltype, given that we could already convert between addresses and integers at runtime. I'm a bit confused, btw: I thought that ootype did not need ConstAddr at all, because it used ConstObj for all pointer-ish things. A bientot, Armin.

On 13/06/10 08:46, Armin Rigo wrote:
I'm a bit confused, btw: I thought that ootype did not need ConstAddr at all, because it used ConstObj for all pointer-ish things.
ah sorry. You wrote ConstAddr but I actually read ConstPtr (i.e., ConstObj for ootype). Indeed, ConstAddr is not used at all by ootype, so there should be no problem (at least in this respect :-)). ciao, Anto
participants (2)
-
Antonio Cuni
-
Armin Rigo