- Rename accessors of class Field to make it more apparent as to what is being accessed (static field values or instance field offsets
- Use precompiled initializer state (Used only during precompilation) to also store saved initial value of static fields (Used only during application snapshot generation)
BUG=
R=hausner@google.com, rmacnak@google.com
Review URL: https://codereview.chromium.org//1289643005 .
- Update usage counter to optimization threshold or 0 depending on whether optimized code exists for the Function
- Do not serialize the resolved names cache and loaded scripts cache when doing script snapshots
BUG=
R=srdjan@google.com
Review URL: https://codereview.chromium.org//1329503002 .
- Create singleton empty context scope object
- Add an implicit field in the context scope so we can distinguish implict context scope objects
- Allow serialization of extractor_parameter_types, extractor_parameter_names
BUG=
R=regis@google.com
Review URL: https://codereview.chromium.org//1323813004 .
Prepares for parallel marking by encapsulating the skipped code functions set, and moving the finalization out to the GCMarker, after all marking is done.
Also changes the interface in the visitor interface to make it less coupled with the representation of the set.
BUG=
R=iposva@google.com
Review URL: https://codereview.chromium.org//1287463003 .
- Don't answer retaining paths that go through ICData.
- Associate edge labels with the referer instead of the referent.
- Give edge labels for VM classes (offsets only).
- Make is possible to distinguish closures and functions from their refs.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//1246073005 .
Prepare it for actual parallelism:
* add synchronization
* abstract out the header check/update (will become one CAS)
Use two separate marking visitors (sharing the delay set), with the main marking visitor in a separate thread (while mutator is paused), just to show we can.
Review URL: https://codereview.chromium.org//1176183002.
This adds meta-information to object pool entries to allow storing
untagged immediates or code addresses (ExternalLabel) directly.
This eliminates the need to generate extra code to preserve the LSB
when storing immediates as smis (x64, arm64).
BUG=
Review URL: https://codereview.chromium.org//1175523002.
Re-generate the indices after deserialization.
This is a more compact representation, and also fixes the issue with identity hash codes not being portable between isolates.
BUG=21675
R=asiva@google.com
Review URL: https://codereview.chromium.org//1151013005
Make the compact linked hash map, which is the default implementation for Map
(including map literals), a VM-internal class.
This makes it easy to have more efficient serialization of maps (although for
now, the implementation is straight-forward).
Refactor the compact hash class hierarchy to enable the VM-internal class and
the rest (also the Set classes) to share a maximal amount of code, by using
two different bases for implicit/explicit fields.
Remove existing proof-of-concept, C++-based internal VM-class.
BUG=http://dartbug.com/22982R=asiva@google.com
Review URL: https://codereview.chromium.org//1151523002
kClosureCall and kOptStaticCall are not needed anymore.
Closure calls are implemented as instance calls - the ClosureCall instruction
only occurs in the synthetic FunctionImpl.call dispatcher - and does not correspond
to a source location where breakpoints can be set.
kOptStaticCall is not needed because breakpoints can only be set in unoptimized
code. kOther is used instead.
This also removes an unused PC descriptor at closure calls from unoptimized
code.
BUG=
R=vegorov@google.com
Review URL: https://codereview.chromium.org//1160063002
Before the change:
Size of isolate snapshot = 780799
New space (0k of 1024k) Old space (758k of 1024k)
After the change:
Size of isolate snapshot = 279696
New space (0k of 1024k) Old space (602k of 1024k)
BUG=
R=hausner@google.com
Review URL: https://codereview.chromium.org//1151113002
- Remember the prologue offset in the Code object.
- Size of Code object does not change.
- Use the prologue offset to assist in locating the return address of the current frame.
- Prologue offset + instruction pattern matching will be accurate for all Dart code, most intrinsic prefixed Dart code, and some stub code.
- By default only collect Dart frames (normal Dart developers only care about Dart frames)
R=srdjan@google.com
Review URL: https://codereview.chromium.org//1150633002
Lack of pointer validation made issues 22549 and 22621 more difficult to track down.
Before this change, ScavengePointer would ignore any sufficiently large garbage values, even if they were obviously not well-formed pointers.
Remove obsolete unit test with "foreign" pointers; the zero-size scavenger case is already thoroughly exercised by the VM isolate.
BUG=22621
R=iposva@google.com
Review URL: https://codereview.chromium.org//975443003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44147 260f80e4-7a28-3924-810f-c04153c831b5