This CL enables snapshotting for kernel.
Basically what it does is that it writes out and reads in a few
previously missing entries in the snapshot file (from Field, Function
and Script).
Debugging from a snapshot made from kernel will not work as snapshots
does not contain sourcecode (it is normally synthesized from the
TokenStream which doesn't exist in kernel).
BUG=
R=kmillikin@google.com
Review-Url: https://codereview.chromium.org/2993613002 .
This is a part of the revert in 91662ce579.
Revert "Mark vm/cc/IsolateReload_ClassFieldRemoved as crashing on dartk-vm."
This reverts commit 51229000e3.
Revert "Mark vm/cc/IsolateReload_ClassFieldRemoved as crashing on dartk-vm."
This reverts commit 969ad4f622.
BUG=
Review-Url: https://codereview.chromium.org/2993963003 .
2. Adjust the Dart front end to not require a 'main' method when the in memory filesystem is used, this allows execution of VM unit tests which all do not necessarily have a 'main' method (integrated CL from siggi)
3. Change kernel reader to not look for a 'main' methos when Dart_LoadKernel is called.
4. Change Dart_LoadScript to also support loading of dart programs when Dart front end is used
R=aam@google.com, sigmund@google.com
Review-Url: https://codereview.chromium.org/2948273002 .
This fixes the regression caused by
1eaa3dd84b and reported in #29988.
When picking a class to set a breakpoint, instead of rejecting classes
not defined in the script, we now reject classes which do not belong to
the library to which the script belongs.
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2965673004 .
This changeset revises --limit-ints-to-64-bits option to
change range of integers from unlimited to int64.
On overflow, integer arithmetic operations silently wrap around and
discard extra bits. No Bigints are allocated in case of overflow.
This changeset is the 1st part in the series of changes, it revises the implementation of integer arithmetic operations. More changes will follow.
R=regis@google.com, zra@google.com
Issue: https://github.com/dart-lang/sdk/issues/30103
Review-Url: https://codereview.chromium.org/2974633003 .
- Add TokenPosition to AllocateObject
meaning that kernel more often has a TokenPosition available.
This might influence profiling, especially it influences some
of the vm/cc/Profiler* tests.
- Update profiler_service to also be able to find the current token
via kernel (as opposed to either returning NULL or crashing).
This makes use of the source code included in the kernel file.
BUG=
R=kmillikin@google.com, vegorov@google.com
Review-Url: https://codereview.chromium.org/2944433003 .
2. Get rid of _getMainClosure()
3. Adjust the AOT compiler to ensure it retains the function associated with
the main closure without having to include '_getMainClosure()' in the list
of embedder specified entry points
4. Get rid of the hack in kernel reader to do a delayed patch of
'_getMainClosure()' in the builtin library.
BUG=
R=aam@google.com, rmacnak@google.com
Review-Url: https://codereview.chromium.org/2933603002 .
This doesn’t touch the resulting configuration map, which is what this
is leading up to, but it cleans up the specification and parsing of the
options and removes a lot of redundancy.
Behavior should be the same as it was before, except that all options
now allow both their underscore-separated and hyphen-separated names.
So this is now valid:
test.py --hot_reload --append-logs
Where before, you use to have to do --hot-reload (OK) and
--append_logs (bad, since almost all other options expect hyphens).
R=sigmund@google.com
Review-Url: https://codereview.chromium.org/2902023002 .
For BinarySmiOpInstr and ShiftMintOpInstr we use range information to both
decide if instruction can deopt and decide which checks should be emitted
when emitting native code for this instruction.
However because range information is attached to the definition and not
uses it often gets out of sync as we mutate the graph. For example we might
first make a decision that an instruction can't deoptimize based on more
precise range information but then use less precise information in the
backend for deciding which parts of the instruction to emit (because
redifinition or a phi-instruction was removed from the graph). This mismatch
can lead to a crash if less precise information tells backend that one of the
inputs need to be checked - because there is no deoptimization label to jump
to.
This CL is addressing this problem by ensuring that range information is
cached at the use and both ComputeCanDeoptimize() and backend use the same
range information.
Additionally this CL kills overly generic MergedMath instruction and replaces it
with TruncDivModInstr.
BUG=https://github.com/dart-lang/sdk/issues/29620R=rmacnak@google.com
Review-Url: https://codereview.chromium.org/2891113002 .
Make GN run for Android configurations on supported host platforms
on a gclient runhooks. This should fix the vm-precomp-android-* bots
Review-Url: https://codereview.chromium.org/2861363002 .