Vyacheslav Egorov
2fb6cd9f5f
[vm] Fix Service::RequestAssets
...
Unwrapping of API handles can only occur when thread is in the VM
execution state.
Change-Id: I14183f4553d0dd972b4bafb1e3771cf2655c1867
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96040
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Commit-Queue: Vyacheslav Egorov <vegorov@google.com >
2019-03-08 07:19:47 +00:00
Ben Konyi
585eb7f507
[ VM / Service ] Added disableBreakpoints parameter to evaluate, evaluateInFrame and invoke RPCs
...
- Setting the `disableBreakpoints` parameter to true will result in any
breakpoints hit during execution resulting from an evaluate or invoke
call to be ignored.
- Default behavior is the same (break on breakpoints).
- Updated Observatory eval box to disable breakpoints.
- Added tests
Change-Id: Ibf40f8a8de018718435118e13cc2e969f8ed7944
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95320
Commit-Queue: Ben Konyi <bkonyi@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Jacob Richman <jacobr@google.com >
2019-03-08 02:19:06 +00:00
Ryan Macnak
93d42679f0
[vm, arm64, fuchsia] Check for stack overflow / interrupts based on DSP instead of CSP.
...
Broken by b2d22be0f3 , which skips kicking CSP forward to save on code size.
Change-Id: I8fda8631d94c9a696039545b83425b799cabde46
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95962
Reviewed-by: Zach Anderson <zra@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2019-03-08 01:01:47 +00:00
Vyacheslav Egorov
1dd4559271
[vm] Add Native->VM transitions when dereferencing API handles.
...
For example setting return value unwraps handles and stores
raw pointer values to the stack which might race with GC
in another thread.
This CL adds assertions in helper methods from Api class which
unwrap API handles and fixes all places that were revealed by
those assertions.
Caveat: we still permit to check whether handle contains
Smi or not without entering VM state - because GC does not
change this property.
Bug: b/127482366
Change-Id: I59f08c2a91935995514fb70607c2777aa2844d94
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95654
Commit-Queue: Siva Annamalai <asiva@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2019-03-08 00:06:37 +00:00
Zach Anderson
8332fb0631
[vm] Adds an API call to dump the CPU profile to the timeline
...
Used in https://fuchsia-review.googlesource.com/c/topaz/+/258655
Change-Id: I79b102e0d318d7be3bae44fb88f81bb8086a10d4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/94400
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Zach Anderson <zra@google.com >
2019-03-07 21:28:26 +00:00
Aart Bik
5c7b07f783
[dart/vm] Fix bug in kernel binary flow graph builder
...
Rationale:
Found by DartFuzz. One of the trickier bugs I had to debug.
While building the flow graph from kernel, the finalizer
builder expects the program context to be in the same state
as when the finalizer was seen first, not the context seen
by the breaking/continuing statement. This was done partially,
but only partially. Finding loop context or breakable
and switchable blocks was missing. Something only
a fuzzer can find :-)
https://github.com/dart-lang/sdk/issues/36076
Change-Id: Ie63912c5fad4d3c15f6559b60cc102b237949957
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95720
Commit-Queue: Aart Bik <ajcbik@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2019-03-07 20:16:18 +00:00
Adam Barth
07b2f82203
[fuchsia] Remove unused header
...
This header is no longer needed and will be removed soon.
Change-Id: I5d96b725bc2a7c6695bb5248377075b00fe7fc6c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95880
Commit-Queue: Zach Anderson <zra@google.com >
Auto-Submit: Adam Barth <abarth@google.com >
Reviewed-by: Zach Anderson <zra@google.com >
2019-03-07 20:10:21 +00:00
Alexander Markov
f2a8e71ff9
[vm] Decouple flow graph building of implicit closure functions from kernel reading
...
Change-Id: I6bf5ad6ed76c363904ae1765d8303eff4a799363
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95706
Reviewed-by: Martin Kustermann <kustermann@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2019-03-07 18:09:48 +00:00
Liam Appelbe
924a934fe1
Shrink the stack headroom if the stack is very small
...
Bug: https://github.com/dart-lang/sdk/issues/36100
Change-Id: I9d887e74c7f888dbeebaf02556522d375e30b97f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95703
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Liam Appelbe <liama@google.com >
2019-03-07 17:32:59 +00:00
Martin Kustermann
72548cde13
Revert "[vm, gc] The mutator's TLAB and the interpreter's lookup cache must be visited even if the mutator is unscheduled."
...
This reverts commit 253499fe68 .
Reason for revert: This seems to have caused new heap verification failures, e.g.
python tools/test.py -n dartkp-linux-debug-x64 lib_2/convert/streamed_conversion_json_utf8_decode_test
...
stderr:
Verifying before Scavenge...../../runtime/vm/raw_object.cc: 36: error: New object missing kNewBit: f3f3f3f3
version=2.2.1-edge.253499fe68b1efaed5c2be699b4e59af3703c0f3 (Thu Mar 7 01:01:02 2019 +0000) on "linux_x64"
thread=219499, isolate=isolate(0x55efd3734900)
[0x000055efd10532e6] dart::Profiler::DumpStackTrace(bool)
[0x000055efd10532e6] dart::Profiler::DumpStackTrace(bool)
[0x000055efd1053224] dart::Profiler::DumpStackTrace(void*)
[0x000055efd13a6805] Dart_DumpNativeStackTrace
[0x000055efd13b7313] dart::Assert::Fail(char const*, ...)
[0x000055efd1073ac8] dart::RawObject::Validate(dart::Isolate*) const
[0x000055efd1379c51] dart::VerifyObjectVisitor::VisitObject(dart::RawObject*)
[0x000055efd1376a43] dart::Scavenger::VisitObjects(dart::ObjectVisitor*) const
[0x000055efd136098b] dart::Heap::VisitObjectsNoImagePages(dart::ObjectVisitor*) const
[0x000055efd13632f3] dart::Heap::CreateAllocatedObjectSet(dart::Zone*, dart::MarkExpectation) const
[0x000055efd1363522] dart::Heap::VerifyGC(dart::MarkExpectation) const
[0x000055efd1377144] dart::Scavenger::Scavenge()
[0x000055efd1361b06] dart::Heap::CollectNewSpaceGarbage(dart::Thread*, dart::Heap::GCReason)
[0x000055efd1360330] dart::Heap::CollectMostGarbage(dart::Heap::GCReason)
[0x000055efd135fff5] dart::Heap::AllocateOld(long, dart::HeapPage::PageType)
Original change's description:
> [vm, gc] The mutator's TLAB and the interpreter's lookup cache must be visited even if the mutator is unscheduled.
>
> Bug: TC-384
> Change-Id: Ic3dcc2fea3e80ef181f8891ccb00a8e2e33fc077
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95670
> Reviewed-by: Alexander Aprelev <aam@google.com >
> Commit-Queue: Ryan Macnak <rmacnak@google.com >
TBR=aam@google.com ,rmacnak@google.com ,alexmarkov@google.com ,regis@google.com
Change-Id: Ia1e2cbf7c059e22a2c71f28cb641f07ccd3dddab
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: TC-384
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95821
Reviewed-by: Martin Kustermann <kustermann@google.com >
Commit-Queue: Martin Kustermann <kustermann@google.com >
2019-03-07 16:56:20 +00:00
Samir Jindel
bdb07f4a1f
[vm/ffi] Fix garbage collection of ffi.Pointer subtypes.
...
Fixes https://github.com/dart-lang/sdk/issues/36125 .
Change-Id: Ib9069d1e15684c785b86954ed8c14e5fdde35fec
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95652
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Daco Harkes <dacoharkes@google.com >
2019-03-07 15:56:08 +00:00
Zichang Guo
4ec72c1eb1
[VM-Runtime]Fix source report coverage to not include field without function initializer
...
Fix issue created by 89173. Also rename HasInitializer to HasInitializerFunction to distinguish from has_initializer.
Bug= https://github.com/flutter/flutter/issues/28542
Change-Id: Id9f898937c2f4f350a6d619019dc12611505801f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95680
Reviewed-by: Siva Annamalai <asiva@google.com >
Commit-Queue: Zichang Guo <zichangguo@google.com >
2019-03-07 02:04:41 +00:00
Ryan Macnak
253499fe68
[vm, gc] The mutator's TLAB and the interpreter's lookup cache must be visited even if the mutator is unscheduled.
...
Bug: TC-384
Change-Id: Ic3dcc2fea3e80ef181f8891ccb00a8e2e33fc077
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95670
Reviewed-by: Alexander Aprelev <aam@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2019-03-07 01:01:02 +00:00
Ryan Macnak
980e5c7b57
[vm] Mark VM isolate objects at heap finalization instead of allocation.
...
Avoids unnecessary branching in allocation.
Also, rename the VMHeap bit to ReadOnly to reflect its current usage.
Change-Id: Ic6060eec263cef0a3fc92f253dff976cea45bdb2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95063
Reviewed-by: Siva Annamalai <asiva@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
2019-03-07 00:20:30 +00:00
Ryan Macnak
e48ad45fbd
[vm, interpreter] Enable field guards.
...
Bug: https://github.com/dart-lang/sdk/issues/36131
Change-Id: I8aa538bc96d10d14322c875228dbd7a97ddf114b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95491
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
2019-03-07 00:19:40 +00:00
Adam Barth
6988347b53
[fuchsia] Migrate to lib/sys/cpp
...
We now use lib/sys/cpp, which is part of the Fuchsia SDK, rather than
lib/component/cpp, which is being deleted.
Change-Id: I3eaae74cc0403923886f9872d4327e46ec8915c2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95700
Auto-Submit: Adam Barth <abarth@google.com >
Reviewed-by: Zach Anderson <zra@google.com >
Commit-Queue: Zach Anderson <zra@google.com >
2019-03-06 21:16:30 +00:00
Ryan Macnak
975cc65c17
[vm, interpreter] Implement interpreter stubs for IA32.
...
Change-Id: I7bb7e51cb46868abcc10c7dcc7cbf1db1ccdc35c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95264
Reviewed-by: Régis Crelier <regis@google.com >
2019-03-06 21:09:30 +00:00
Ryan Macnak
68946df573
[vm] Also print version information in assertion failures, not just faults.
...
Populate the dynamic symbol table for gen_snapshot.
Change-Id: Ib4712d2f481948f646ba4f5e353e0837b6391eab
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95682
Reviewed-by: Régis Crelier <regis@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2019-03-06 20:02:18 +00:00
Zach Anderson
825d03c585
[vm] Remove malloc_hooks support for jemalloc
...
Fuchsia is switching/has switched to scudo.
Change-Id: I0c829518652053243bf3f8db675e562ccfb448f9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95663
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Zach Anderson <zra@google.com >
2019-03-06 19:16:27 +00:00
Daco Harkes
7a98559781
[vm/ffi] make Pointer.toString() uniform on all operating systems
...
Change-Id: I805c8b3c56a18a253c5005945cab47d5a6aa26cc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95648
Commit-Queue: Daco Harkes <dacoharkes@google.com >
Reviewed-by: Samir Jindel <sjindel@google.com >
Auto-Submit: Daco Harkes <dacoharkes@google.com >
2019-03-06 16:48:09 +00:00
Alexander Markov
dc1f2bd087
[vm] Avoid assertion for non-finalized type parameter of expression evaluation function
...
This is the follow-up for https://dart-review.googlesource.com/c/sdk/+/95061 .
Fixes https://github.com/dart-lang/sdk/issues/36117
Change-Id: I70d7a753fcb4d4063510548e74d635a35447b3dd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95540
Auto-Submit: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
Commit-Queue: Régis Crelier <regis@google.com >
2019-03-06 00:35:34 +00:00
Ryan Macnak
2922878ce9
[vm, compiler] Fix GuardFieldTypeInstr to update the original field.
...
Change-Id: I698b6f3315e76f6d491f514333cf38e035ad6e79
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95423
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2019-03-05 23:06:22 +00:00
Ryan Macnak
60de5b4983
[vm] Avoid quadratic growth in (Malloc)TextBuffer and ZoneTextBuffer.
...
In particular, avoid quadratic memory use in ZoneTextBuffer.
Change-Id: I8d2ea77d35cd3c2c353ae557a2ee676ee8413653
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95483
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2019-03-05 22:32:22 +00:00
Alexander Markov
51a334caa7
[vm] Remove kernel reading from BuildArgumentTypeChecks
...
This change is a preparation for decoupling flow graph building of
special functions from kernel reading.
Change-Id: Ied90bc6894cdfa48f49c71e980079967c8c4fbb9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95061
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Auto-Submit: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2019-03-05 18:48:51 +00:00
Daco Harkes
2071d1284d
[vm/ffi] Fix crash on toString for dart:ffi trampoline functions
...
Change-Id: I8af3373619dca690a2f5e60f737714e1ac413408
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95500
Auto-Submit: Daco Harkes <dacoharkes@google.com >
Reviewed-by: Samir Jindel <sjindel@google.com >
Commit-Queue: Samir Jindel <sjindel@google.com >
2019-03-05 17:43:56 +00:00
Liam Appelbe
cc455ecc1d
Add use_abi_version flag, and plumb ABI version to version.h
...
Bug: https://github.com/dart-lang/sdk/issues/36047
Change-Id: Ie810cbd5079e1939bf190e06f6c2494bb4ab0805
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95282
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Liam Appelbe <liama@google.com >
2019-03-05 17:16:11 +00:00
Aart Bik
571ea80e11
[vm/compiler] added assert to kernel flowgraph builder
...
Rationale:
Yields a more gentle crash in debug mode for
bug under investigation (found by DartFuzz)
https://github.com/dart-lang/sdk/issues/36076
Change-Id: I497fbef1ec2100b9701848c3454bef5ad7518d2b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95280
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Commit-Queue: Aart Bik <ajcbik@google.com >
2019-03-04 19:30:53 +00:00
Aske Simon Christensen
2b2e71770c
[kernel] Add SetConstant node to Kernel.
...
Change-Id: I83da1afc9f15009c650a871a51ca8171b482d4df
Reviewed-on: https://dart-review.googlesource.com/c/94863
Reviewed-by: Kevin Millikin <kmillikin@google.com >
2019-03-04 10:20:56 +00:00
Martin Kustermann
084e98e3a3
[VM] Ensure that a newly allocated object is either new or added to remembered set if we want to eliminate write barriers to it
...
For all non-generic classes the AllocateObject runtime call would not
guarantee that the returned object is new or marked as remembered. If
such an object is subject to a store with an eliminated write-barrier,
we have incorrect remembered set, which causes flaky crashes.
This CL fixes the AllocateObject runtime call to always ensure the
object is new or added to the remembered set if write-barrier
elimination is enabled for those.
Furthermore the conditions for when the write barrier can be eliminated
is centralized in one place instead of duplicated (in runtime_entry.cc
and il.h) to avoid future divergence of the two.
Similarly the condition to when an array uses card marking is put into
one place.
Fixes https://github.com/dart-lang/sdk/issues/36011
Change-Id: I270f3618a267a35fa6ea63dcf4092488c0319328
Reviewed-on: https://dart-review.googlesource.com/c/95022
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Samir Jindel <sjindel@google.com >
Commit-Queue: Martin Kustermann <kustermann@google.com >
2019-03-04 09:09:56 +00:00
Régis Crelier
0491d5cde7
Revert "[VM runtime] Dual mapping of executable pages."
...
This reverts commit 44186dfdcd .
Reason for revert: not working on vm-kernel-precomp-android-release-arm
Original change's description:
> [VM runtime] Dual mapping of executable pages.
>
> Change-Id: Iaad78d324e25462ce951f4df26974a6a368c50b7
> Reviewed-on: https://dart-review.googlesource.com/c/93377
> Commit-Queue: Régis Crelier <regis@google.com >
> Reviewed-by: Ryan Macnak <rmacnak@google.com >
TBR=rmacnak@google.com ,regis@google.com
Change-Id: I793ceee6252111eafbcbfe6e28268f4f6f2d7215
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/94989
Reviewed-by: Régis Crelier <regis@google.com >
Commit-Queue: Régis Crelier <regis@google.com >
2019-03-01 22:55:14 +00:00
Liam Appelbe
df59b09756
Fail early if a thread has no stack headroom
...
Bug: https://github.com/dart-lang/sdk/issues/35745
Change-Id: I6a9dff8608385d4dde74a16b6d4dea42fe91460f
Reviewed-on: https://dart-review.googlesource.com/c/95041
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Liam Appelbe <liama@google.com >
2019-03-01 22:34:21 +00:00
Régis Crelier
44186dfdcd
[VM runtime] Dual mapping of executable pages.
...
Change-Id: Iaad78d324e25462ce951f4df26974a6a368c50b7
Reviewed-on: https://dart-review.googlesource.com/c/93377
Commit-Queue: Régis Crelier <regis@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2019-03-01 22:19:31 +00:00
Ben Konyi
1a9f40b1c5
[VM] Remove unnecessary assert to fix cc/PrintJSON test
...
Change-Id: If6f44a3136002cd4c682f6b88bbd772db8f467b3
Reviewed-on: https://dart-review.googlesource.com/c/94984
Auto-Submit: Ben Konyi <bkonyi@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2019-03-01 19:07:30 +00:00
Ryan Macnak
dc555eb9a7
[vm] On Fuchsia, enable timeline streams based on the state of system trace categories.
...
Allows categories to be selected through arguments to `trace` instead of changing VM flags and rebuilding.
Change-Id: Ia1ec6b58ca0b765c3d675b7d4938acc5f624b768
Reviewed-on: https://dart-review.googlesource.com/c/91860
Reviewed-by: Zach Anderson <zra@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2019-03-01 18:05:40 +00:00
Alexander Markov
c35304ef18
[vm/simdbc,interpreter] Preserve arguments descriptor around call to inline cache miss handler
...
InlineCacheMissHandler* runtime entries may cause class finalization and
potentially run more Dart code (for example, to evaluate pragma annotations).
That could clobber arguments descriptor in simulator/interpreter.
Usually classes are finalized before their instances are allocated.
However, VM creates instances of certain built-in classes "magically",
without finalizing classes. For such classes finalization can occur
on the first method invocation.
Change-Id: I247197baf36858bfa43812aaaed02b10584762e0
Reviewed-on: https://dart-review.googlesource.com/c/94960
Auto-Submit: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2019-03-01 17:24:40 +00:00
Ian McKellar
16fc751e49
[fuchsia] Clean-up after the FIDL string/vector types transition
...
This cleans up what was introduced in:
https://dart-review.googlesource.com/c/88122
Change-Id: If7596a3dd57af25d91fe880104e5aafd301c57f4
Reviewed-on: https://dart-review.googlesource.com/c/94922
Auto-Submit: Ian McKellar <ianloic@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2019-03-01 02:01:19 +00:00
Ryan Macnak
24df9cc588
[vm] Implement interpreter stubs for ARM, SIMARM and SIMARM64.
...
Change-Id: If49e656bb3c016d42bc5588c6026116f2aff5076
Reviewed-on: https://dart-review.googlesource.com/c/94682
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
2019-03-01 01:25:19 +00:00
Ben Konyi
e8d6e2f704
[ VM ] Updated SourceReport tests with correct token positions
...
Change-Id: I6aa49e715043a1ba463425e53018c5078a272129
Reviewed-on: https://dart-review.googlesource.com/c/94962
Reviewed-by: Siva Annamalai <asiva@google.com >
Commit-Queue: Ben Konyi <bkonyi@google.com >
2019-03-01 00:48:59 +00:00
Aart Bik
a10b0d8763
[vm/compiler] LICM and CSE improvements
...
Several improvements
(1) makes implicit control dependence of a null check
explicit by means of data dependence (already
done for bounds checks); also see the doc in
runtime/docs/compiler/data_dep_for_control_dep.md
(2) improves CSE properties of various IL nodes
(3) allows LICM on invariant code that may-throw
as long as the visible behavior is preserved
https://github.com/dart-lang/sdk/issues/35323
https://github.com/dart-lang/sdk/issues/34684
Change-Id: Icb4520a649da38eddc3d7c85af21427d3c64d22e
Reviewed-on: https://dart-review.googlesource.com/c/93822
Commit-Queue: Aart Bik <ajcbik@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2019-02-28 19:29:06 +00:00
Alexander Markov
bab9d2ad05
[vm] Remember GenericCovariantImpl in TypeParameter
...
Previously, in order to get GenericCovariantImpl property of a type
parameter we had to (re-)read kernel.
This change is a preparation for decoupling flow graph building of
special functions from kernel reading.
Change-Id: I48b45d2cece683ac3a3bd0ed506ddfcc3c526826
Reviewed-on: https://dart-review.googlesource.com/c/94641
Commit-Queue: Régis Crelier <regis@google.com >
Auto-Submit: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
2019-02-28 17:38:19 +00:00
Ryan Macnak
a3ab6b6514
[vm, gc] Reduce cost of maintaining allocation stats during scavenges.
...
Change-Id: If44fe99c87b96f4f370efb3716009e230b5c4f25
Reviewed-on: https://dart-review.googlesource.com/c/94583
Reviewed-by: Siva Annamalai <asiva@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2019-02-27 22:01:00 +00:00
Alexander Markov
ab10fb12dc
[vm/interpreter] Reduce stack usage of interpreter
...
Bug: FLK-46
Change-Id: Ia596f46629ad32492b460a2ae54501f55b7e6ed4
Reviewed-on: https://dart-review.googlesource.com/c/94600
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2019-02-27 19:18:27 +00:00
Ryan Macnak
603678e46c
[vm, gc] Streamline the promotion allocation fast path.
...
dart2js-compile geomean -0.8362% (Time)
Change-Id: I98dbbed2e7b96c8ff4950cc59421aef6bceef23b
Reviewed-on: https://dart-review.googlesource.com/c/94345
Reviewed-by: Siva Annamalai <asiva@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2019-02-27 01:53:45 +00:00
Ryan Macnak
8fd09304b6
[vm, gc] Force inline MarkObject into its sole caller.
...
Cf. e38e5aae46
Change-Id: Ibf9dad7358368eba2c20ba552fe6f83e2ce6ddc5
Reviewed-on: https://dart-review.googlesource.com/c/94466
Reviewed-by: Siva Annamalai <asiva@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2019-02-27 01:46:16 +00:00
Alexander Aprelev
fb88c983e7
[vm/compiler] Switch kernel helper for background compiler to use new space.
...
Now that TLAB is enabled, background compiler can use new space for short-lived data created during kernel loading.
Change-Id: I0a05510bcc73be268895f093cd1422d80d6e39bf
Reviewed-on: https://dart-review.googlesource.com/c/94361
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Alexander Aprelev <aam@google.com >
2019-02-27 00:50:07 +00:00
Aart Bik
6d575152c9
[vm/compiler] Changes in Cid range computation
...
Rationale:
An incorrect edit slipped into the JIT version, which
had some performance regression. Also we now make
the null optional when not excluded explicitly, since
this results in no ranges for a few cases.
https://github.com/flutter/flutter/issues/28260
Change-Id: I799683d938287661321033d6839fcf2f471b2bc4
Reviewed-on: https://dart-review.googlesource.com/c/94349
Commit-Queue: Aart Bik <ajcbik@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2019-02-26 23:05:15 +00:00
Ryan Macnak
fba89f9f64
[vm] Don't change the content of the VM isolate's snapshot based on what was loading into a core or app snapshot.
...
Ensures, by default, multiple core or app snapshots are capable of being loaded into the same process. Flags that affect stub generation can still create incompatibilities. A later CL will internalize VM isolate snapshot generation to the VM build and ensure compatibility.
Change-Id: I247063d5a3a611b04963b8e8ab2ac8a1f20ea57a
Reviewed-on: https://dart-review.googlesource.com/c/93962
Reviewed-by: Zach Anderson <zra@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2019-02-26 19:04:50 +00:00
Samir Jindel
f0042a3225
[vm/ffi] Factor out FFI code shared between compiler and runtime.
...
Change-Id: I0b4af9cb36fd5ebc163621951486333a68baa890
Reviewed-on: https://dart-review.googlesource.com/c/93503
Commit-Queue: Samir Jindel <sjindel@google.com >
Auto-Submit: Samir Jindel <sjindel@google.com >
Reviewed-by: Daco Harkes <dacoharkes@google.com >
2019-02-26 12:48:32 +00:00
Ben Konyi
f7e435ac26
[ VM / Windows ] Removed call to SetThreadDescription which is only supported in new Win 10 builds
...
This (hopefully) unblocks the Dart SDK roll into Flutter.
Change-Id: I5616fb2ace879f3a0c4532706d472f2cb488267d
Reviewed-on: https://dart-review.googlesource.com/c/94347
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Ben Konyi <bkonyi@google.com >
2019-02-26 01:00:26 +00:00
Ryan Macnak
bf7ecc40f9
[vm] Fix some compilation events to respect SUPPORT_TIMELINE instead of PRODUCT.
...
Cf. d6caaeeebb
Change-Id: I1b1db807113f38a3a3205b33d523c5db0961bd41
Reviewed-on: https://dart-review.googlesource.com/c/94360
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Zach Anderson <zra@google.com >
2019-02-26 00:02:06 +00:00