[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/memory/test rpython/test tool/algo tool/algo/test translator/c translator/c/src translator/c/test translator/tool

Armin Rigo arigo at tunes.org
Sun Jun 13 08:46:41 CEST 2010


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.



More information about the Pypy-dev mailing list