[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
arigo at tunes.org
Sun Jun 13 08:46:41 CEST 2010
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.
More information about the Pypy-dev