Reviewers: Jakob, Michael Starzinger,

Message:
PTAL.

Michael: please have a look at transition array zapping and trimming (clear
non-live transitions).

Description:
Separating transitions from descriptors.

In this design maps contain descriptor arrays, which in turn can contain
transition arrays. If transitions are needed when no descriptor array is
present, a descriptor array without real descriptors is inserted just so it can
point at the transition array.

The transition array does not contain details about the field it transitions to. In order to weed out transitions to FIELDs from CONSTANT_FUNCTION (what used to be MAP_TRANSITION vs CONSTANT_TRANSITION), the transition needs to be followed and the details need to be looked up in the target map. CALLBACKS transitions
are still easy to recognize since the transition targets are stored as an
AccessorPair containing the maps, rather than the maps directly.

Currently AccessorPairs containing a transition and an accessor are shared
between the descriptor array and the transition array. This simplifies lookup since we only have to look in one of both arrays. This will change in subsequent
revisions, when descriptor arrays will become shared between multiple maps,
since transitions cannot be shared.


Please review this at https://chromiumcodereview.appspot.com/10697015/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/SConscript
  M src/arm/lithium-codegen-arm.cc
  M src/ast.cc
  M src/bootstrapper.cc
  M src/factory.cc
  M src/handles.cc
  M src/hydrogen-instructions.cc
  M src/hydrogen.cc
  M src/ia32/lithium-codegen-ia32.cc
  M src/ic.cc
  M src/mark-compact.h
  M src/mark-compact.cc
  M src/mips/lithium-codegen-mips.cc
  M src/mirror-debugger.js
  M src/objects-debug.cc
  M src/objects-inl.h
  M src/objects-printer.cc
  M src/objects.h
  M src/objects.cc
  M src/profile-generator.cc
  M src/property-details.h
  M src/property.h
  M src/property.cc
  M src/runtime.cc
  A src/transitions-inl.h
  A src/transitions.h
  A src/transitions.cc
  M src/v8globals.h
  M src/x64/lithium-codegen-x64.cc
  M test/cctest/test-debug.cc
  M test/cctest/test-heap.cc
  M tools/grokdump.py
  M tools/gyp/v8.gyp
  M tools/linux-tick-processor


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to