Martin Kustermann
a01513c685
[VM] Allow including disassembler in product mode if FORCE_INCLUDE_DISASSEMBLER is defined
...
This helps VM developers working with product mode.
Issue https://github.com/dart-lang/sdk/issues/33274
Change-Id: I1933dea6f2d88c4745c63be772cfe301259f4a9c
Reviewed-on: https://dart-review.googlesource.com/c/82583
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Commit-Queue: Martin Kustermann <kustermann@google.com >
2018-11-02 13:02:25 +00:00
Zach Anderson
c4df463ba9
[vm] Reland kernel data library and class caches.
...
This is the same code as the previous commit, but it needs a fix
for issue #34953 to land first.
Change-Id: Id586f5e8a5ee498716e58ff44bb8a344822f73df
Reviewed-on: https://dart-review.googlesource.com/c/81840
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Zach Anderson <zra@google.com >
2018-11-01 20:25:59 +00:00
Daco Harkes
1a3bca5485
[vm] Use atomic release-acquire operations to update RawICData::ic_data_
...
Background compiler expects to see fully initialized array when it
reads RawICData::ic_data_ array - which previously was not
guaranteed on architectures with weak memory model.
Fixes https://github.com/dart-lang/sdk/issues/34999
Change-Id: Ie9544d7fc4683fb5cb145aa1a572e8939bd8dc13
Reviewed-on: https://dart-review.googlesource.com/c/82442
Commit-Queue: Daco Harkes <dacoharkes@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
2018-11-01 18:29:05 +00:00
Martin Kustermann
b0b7cdb3da
[VM] Add ArrayView class to access [Array]s which are treated as lists of tuples in a type-safe way
...
Change-Id: I0c356ba01bf3fc362d6e353285ddda7c21d56de4
Reviewed-on: https://dart-review.googlesource.com/c/81823
Commit-Queue: Martin Kustermann <kustermann@google.com >
Auto-Submit: Martin Kustermann <kustermann@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
2018-11-01 15:09:49 +00:00
Ryan Macnak
7514ce941e
[vm] Assert handles are only allocated when the thread is preventing safepoints.
...
Threads in the native or blocked states don't prevent safepoints, so they may run concurrently with a safepoint operation like GC. It is not safe for handles to be allocated while the GC is visiting them, so these threads must not allocate handles. Assert only threads in the VM or generated states, which prevent safepoints until they check in, may allocate handles. (Generated code does not allocate handles, but leaf runtime entries remain in the generated state.)
Bug: https://github.com/dart-lang/sdk/issues/34883
Change-Id: I1a211778f7ef96b53a2405f0ee9dde7871b122b6
Reviewed-on: https://dart-review.googlesource.com/c/81540
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
2018-10-31 19:51:52 +00:00
Régis Crelier
98a0309fbd
[VM compiler] Reuse function type arguments to avoid instantiation at runtime, when possible.
...
Change-Id: Icfcbd165bb96cf83b7911c6c11a7daca17c6ba12
Reviewed-on: https://dart-review.googlesource.com/c/81701
Commit-Queue: Régis Crelier <regis@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2018-10-30 18:38:37 +00:00
Martin Kustermann
70abec503d
[VM] Reland "[VM] Extract common code from Assembler to new AssemblerBase base class"
...
This reverts commit 04381d7571 .
Closes https://github.com/dart-lang/sdk/issues/34973
Change-Id: I843c3fe4cc8265fb43b6b09623e7509837a878f0
Reviewed-on: https://dart-review.googlesource.com/c/82041
Commit-Queue: Martin Kustermann <kustermann@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
2018-10-30 12:00:22 +00:00
Alexander Aprelev
04381d7571
Revert "[VM] Extract common code from Assembler to new AssemblerBase base class"
...
This reverts commit 388c41de94 as it
breaks appjit_determinism_test on arm.
Bug: dartbug.com/34973
Change-Id: I25e995d3c4c8a77f2f3b681ed717adc4f723d86c
Reviewed-on: https://dart-review.googlesource.com/c/82000
Reviewed-by: Alexander Aprelev <aam@google.com >
Commit-Queue: Alexander Aprelev <aam@google.com >
2018-10-29 23:08:34 +00:00
Alexander Markov
346f5369e4
[vm] Cleanup _int64 marker interface
...
Closes https://github.com/dart-lang/sdk/issues/34955
Change-Id: I7323e17374bfdc11d7869e4713c2818927bc4c71
Reviewed-on: https://dart-review.googlesource.com/c/81880
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Auto-Submit: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Zach Anderson <zra@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2018-10-29 23:01:44 +00:00
Martin Kustermann
388c41de94
[VM] Extract common code from Assembler to new AssemblerBase base class
...
Issue https://github.com/dart-lang/sdk/issues/33274
Change-Id: Ie7189081b3acac53a80a399b1353261c2312da79
Reviewed-on: https://dart-review.googlesource.com/c/81641
Commit-Queue: Martin Kustermann <kustermann@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
2018-10-29 15:36:22 +00:00
Zach Anderson
ae2441337a
Revert "Reland: [vm] Add a library and class cache to KernelProgramInfo"
...
This reverts commit c1e6140323 .
Reason for revert:
On Windows
.\out\DebugX64\run_vm_tests.exe --dfe=out\DebugX64\gen\kernel-service.dart.snapshot IsolateReload_TearOff_List_Set
fails with:
sdk\runtime\vm\raw_object.cc: 231: error: Size mismatch: -2459565876494606883 from class vs 112 from tags c0718
Original change's description:
> Reland: [vm] Add a library and class cache to KernelProgramInfo
>
> Relands with fixed locking to protect the caches.
>
> Original message:
> Also create fewer handles in the KernelLoader.
>
> GenKernelKernelReadAllBytecode improves a further
> 15-20% after removing the timeline event argument
> in the bytecode reader.
>
> fixes #34939
>
> Change-Id: I88c57bdb673392a7677c5c6bbb16cfed8c95c0d7
> Reviewed-on: https://dart-review.googlesource.com/c/81620
> Commit-Queue: Zach Anderson <zra@google.com >
> Reviewed-by: Alexander Markov <alexmarkov@google.com >
TBR=rmacnak@google.com ,alexmarkov@google.com ,zra@google.com ,asiva@google.com
Change-Id: I4f3ff1866db2990b512b3ee7e59bf66bdc480dcc
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/81745
Reviewed-by: Zach Anderson <zra@google.com >
Commit-Queue: Zach Anderson <zra@google.com >
2018-10-27 07:53:51 +00:00
Zach Anderson
c1e6140323
Reland: [vm] Add a library and class cache to KernelProgramInfo
...
Relands with fixed locking to protect the caches.
Original message:
Also create fewer handles in the KernelLoader.
GenKernelKernelReadAllBytecode improves a further
15-20% after removing the timeline event argument
in the bytecode reader.
fixes #34939
Change-Id: I88c57bdb673392a7677c5c6bbb16cfed8c95c0d7
Reviewed-on: https://dart-review.googlesource.com/c/81620
Commit-Queue: Zach Anderson <zra@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2018-10-26 21:36:58 +00:00
Martin Kustermann
973c9519b7
[VM] Add a "kind" field to the entries of the Code::static_calls_target_table array
...
This is preparation for adding other kinds of static calls, e.g.
pc-relative calls.
Issue https://github.com/dart-lang/sdk/issues/33274
Change-Id: Ief83aa3571036fabd72c2f82f946ca4757c76cb1
Reviewed-on: https://dart-review.googlesource.com/c/81407
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Commit-Queue: Martin Kustermann <kustermann@google.com >
2018-10-26 14:29:34 +00:00
Martin Kustermann
12fe255ff5
Revert "Reland: [vm] Add a library and class cache to KernelProgramInfo"
...
This reverts commits
- 47c55605b8
- c362e4862f .
Reason for revert:
Very likely the cause for flaky crashes where mutator and BG compiler are accessing the program info class cache concurrently without proper locking.
Issue https://github.com/dart-lang/sdk/issues/34939
Original change's description:
> Reland: [vm] Add a library and class cache to KernelProgramInfo
>
> Relands with locks to protect the caches.
>
> Original message:
> Also create fewer handles in the KernelLoader.
>
> GenKernelKernelReadAllBytecode improves a further
> 15-20% after removing the timeline event argument
> in the bytecode reader.
>
> Change-Id: I6d796986a7773938e528271033385465e4f13468
> Reviewed-on: https://dart-review.googlesource.com/c/79380
> Reviewed-by: Ryan Macnak <rmacnak@google.com >
> Commit-Queue: Zach Anderson <zra@google.com >
TBR=rmacnak@google.com ,alexmarkov@google.com ,zra@google.com ,asiva@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: Ib242ecc9ece8a233441fc4d5512e4a20ce3e0d11
Reviewed-on: https://dart-review.googlesource.com/c/81601
Commit-Queue: Martin Kustermann <kustermann@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2018-10-26 11:32:34 +00:00
Vyacheslav Egorov
c3116be12c
[vm] Instance::ToCString should use Instance::GetType
...
Instead of trying to construct type itself - because GetType is more
robust and can correctly handle cases like longer type arguments
vectors.
Fixes https://github.com/dart-lang/sdk/issues/34827
Bug: 34827
Change-Id: I93ceea0285c82325cc2a6a9acca2bfa9918e45fe
Reviewed-on: https://dart-review.googlesource.com/c/81561
Auto-Submit: Vyacheslav Egorov <vegorov@google.com >
Commit-Queue: Martin Kustermann <kustermann@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2018-10-26 08:30:29 +00:00
Ryan Macnak
8b2059946a
[vm, service] Make 'evaluate' and 'evaluateInFrame' produce RPC errors instead of crashes when no compilation service is available.
...
Bug: https://github.com/flutter/flutter/issues/23409
Change-Id: I003b176f28d650fb36e129c69ec5378942417ecd
Reviewed-on: https://dart-review.googlesource.com/c/81339
Reviewed-by: Alexander Aprelev <aam@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2018-10-25 20:33:04 +00:00
Vyacheslav Egorov
ad60d37dff
[vm] Handle null receiver at call sites that track type exactness
...
Fixes https://github.com/dart-lang/sdk/issues/34755
Bug: 34755
Change-Id: Ic7a32c8628d8c90fe10b6ca92fb2016f41b29c1d
Reviewed-on: https://dart-review.googlesource.com/c/81417
Auto-Submit: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Aart Bik <ajcbik@google.com >
Commit-Queue: Vyacheslav Egorov <vegorov@google.com >
2018-10-25 17:38:44 +00:00
Alexander Markov
d3498a81be
[vm] Cleanup int overflow checking
...
This corner case was needed by old VM parser.
Now that old VM parser is gone we can remove it.
Closes https://github.com/dart-lang/sdk/issues/31600
Change-Id: I59631102230156f6480a27e6d43d5e3fa5551c8b
Reviewed-on: https://dart-review.googlesource.com/c/81338
Commit-Queue: Zach Anderson <zra@google.com >
Auto-Submit: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Zach Anderson <zra@google.com >
2018-10-25 02:49:33 +00:00
Régis Crelier
7de2510339
[VM interpreter] Do not interpret some Bigint intrinsics ( fixes #34901 ).
...
Update status file.
Change-Id: I43b222562488c90c9438fd792dc2505b14d5d373
Reviewed-on: https://dart-review.googlesource.com/c/81334
Commit-Queue: Régis Crelier <regis@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2018-10-25 00:44:25 +00:00
Alexander Markov
58d73e08f4
[vm] Remove incorrect assert in Script::GetSnippet
...
In Dart 2, sources could be unavailable in other kinds of snapshots
besides FullAOT, so this assertion is not correct.
Fixes https://github.com/dart-lang/sdk/issues/34872
Change-Id: I1b96b353e7a2cdf9c8247cdc7c06b08e3629c78b
Reviewed-on: https://dart-review.googlesource.com/c/81283
Auto-Submit: Alexander Markov <alexmarkov@google.com >
Commit-Queue: Siva Annamalai <asiva@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
2018-10-23 20:16:07 +00:00
Vyacheslav Egorov
4c9684f735
[vm] Ignore compilation errors in CorelibCompileAll
...
Change-Id: Iffb1a3a191cd8cf9e3ecd13a495a73bda5592dfb
Reviewed-on: https://dart-review.googlesource.com/c/80621
Commit-Queue: Martin Kustermann <kustermann@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
Auto-Submit: Vyacheslav Egorov <vegorov@google.com >
2018-10-23 14:16:43 +00:00
Zach Anderson
289d2b003a
[vm] Don't re-enqueue functions after unoptimized compiles
...
Change-Id: I18ea0915971f073af14a99273fe75ed2ec32ed07
Reviewed-on: https://dart-review.googlesource.com/c/81161
Commit-Queue: Zach Anderson <zra@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2018-10-23 04:25:23 +00:00
Zach Anderson
e9b8e24891
[vm] Adds mutator thread asserts around bytecode reading
...
Change-Id: If5ee92e69f04da8c22983ccdb3d6d9006a2010a5
Reviewed-on: https://dart-review.googlesource.com/c/80562
Commit-Queue: Zach Anderson <zra@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2018-10-19 02:46:02 +00:00
Ben Konyi
7f9049991b
[ VM / Dart API ] Updated Dart_Invoke Dart_SetField tests to check error messages
...
Change-Id: I6e4de144e7c7a169b8164b549dbf3652af044b57
Reviewed-on: https://dart-review.googlesource.com/c/79824
Commit-Queue: Siva Annamalai <asiva@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
Auto-Submit: Ben Konyi <bkonyi@google.com >
2018-10-16 23:02:19 +00:00
Alexander Markov
2ed614819d
[vm] Fix MakeUnusedSpaceTraversable in the 'Instance' filler case
...
Object::MakeUnusedSpaceTraversable fills leftover with Instance
if leftover is less than TypedData::InstanceSize(0). This code is
outdated and was not working as the smallest TypedData is just
2 words. This CL updates this code to prepare for future TypedData
changes.
Also, test vm/cc/GrowableObjectArray is changed to be more flexible wrt
sizes of TypedData instances.
Change-Id: I32e21d5038163590ba618d8525aacd17e88800d9
Reviewed-on: https://dart-review.googlesource.com/c/79921
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Auto-Submit: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2018-10-15 21:20:56 +00:00
Zach Anderson
dea6c97a08
[vm] A couple more benchmark for kernel loading
...
One that measures the two existing benchmarks together, and one that
measures max RSS.
Change-Id: I2c8e383c1e7f38ea8010f3bd6a4bcbcacb999069
Reviewed-on: https://dart-review.googlesource.com/c/79822
Commit-Queue: Zach Anderson <zra@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2018-10-15 18:57:27 +00:00
Ben Konyi
9f00eec55b
[ VM / Mirrors ] Added type checking to enforce strong mode semantics when using dart:mirrors
...
Fixes issue #32232
Change-Id: Id6c9ea8e72bb66c77a2817f20c33bb405cb4c310
Reviewed-on: https://dart-review.googlesource.com/c/79081
Commit-Queue: Ben Konyi <bkonyi@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
Auto-Submit: Ben Konyi <bkonyi@google.com >
2018-10-13 16:27:40 +00:00
Zach Anderson
47c55605b8
Reland: [vm] Add a library and class cache to KernelProgramInfo
...
Relands with locks to protect the caches.
Original message:
Also create fewer handles in the KernelLoader.
GenKernelKernelReadAllBytecode improves a further
15-20% after removing the timeline event argument
in the bytecode reader.
Change-Id: I6d796986a7773938e528271033385465e4f13468
Reviewed-on: https://dart-review.googlesource.com/c/79380
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Zach Anderson <zra@google.com >
2018-10-12 14:54:48 +00:00
Alexander Markov
3cf0008b13
[vm/bytecode] Remove dependencies on ASTs when running with bytecode
...
Also, enable dropping ASTs from kernel files when testing in dartkb mode.
Change-Id: Iec82f1b76e3b8a9eb692de325d7645d8f271e03e
Reviewed-on: https://dart-review.googlesource.com/c/79087
Auto-Submit: Alexander Markov <alexmarkov@google.com >
Commit-Queue: Zach Anderson <zra@google.com >
Reviewed-by: Zach Anderson <zra@google.com >
2018-10-11 15:11:26 +00:00
Martin Kustermann
f0a30bc8d1
Revert "[vm] Add a library and class cache to KernelProgramInfo"
...
This reverts commit b99bcfd309 .
Reason for revert: Causes flaky crashes.
Issue https://github.com/dart-lang/sdk/issues/34757
Original change's description:
> [vm] Add a library and class cache to KernelProgramInfo
>
> Also create fewer handles in the KernelLoader.
>
> GenKernelKernelReadAllBytecode improves a further
> 15-20% after removing the timeline event argument
> in the bytecode reader.
>
> Change-Id: Ida7e74129ccb4c997bb74e7bb51cdae053587254
> Reviewed-on: https://dart-review.googlesource.com/c/78710
> Commit-Queue: Zach Anderson <zra@google.com >
> Reviewed-by: Alexander Markov <alexmarkov@google.com >
> Reviewed-by: Siva Annamalai <asiva@google.com >
TBR=aam@google.com ,alexmarkov@google.com ,zra@google.com ,asiva@google.com
Change-Id: I13f118862764ebc7d8d36b482b11082348b80f39
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/79204
Reviewed-by: Martin Kustermann <kustermann@google.com >
Commit-Queue: Martin Kustermann <kustermann@google.com >
2018-10-11 09:21:15 +00:00
Ryan Macnak
235a918233
[vm] Remove Dart_LoadScript, Dart_LoadLibrary, Dart_LoadSource, etc.
...
Change-Id: I9c19625702f1df48c03de2eb3a0f7bb581d2e0b3
Reviewed-on: https://dart-review.googlesource.com/c/79140
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
2018-10-11 00:38:37 +00:00
Ryan Macnak
662ff7f112
[vm] Remove TokenStream, TokenValue, CompilerStats.
...
(CompilerStats timers have been replaced with the timeline events.)
Change-Id: Iddcb752c085de9762eb802371b6d2905fa608a76
Reviewed-on: https://dart-review.googlesource.com/c/79086
Reviewed-by: Siva Annamalai <asiva@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2018-10-10 21:39:45 +00:00
Zach Anderson
b99bcfd309
[vm] Add a library and class cache to KernelProgramInfo
...
Also create fewer handles in the KernelLoader.
GenKernelKernelReadAllBytecode improves a further
15-20% after removing the timeline event argument
in the bytecode reader.
Change-Id: Ida7e74129ccb4c997bb74e7bb51cdae053587254
Reviewed-on: https://dart-review.googlesource.com/c/78710
Commit-Queue: Zach Anderson <zra@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
2018-10-10 20:19:14 +00:00
Ryan Macnak
b8760fed67
[vm, compiler] Remove ASTs and AST flow graph builder.
...
Change-Id: I4d3c6500577d5285ced327954040dab42ba92341
Reviewed-on: https://dart-review.googlesource.com/c/78823
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
2018-10-10 18:00:21 +00:00
Samir Jindel
a66cae48fc
[vm/aot] Dynamic invocation forwarders in AOT.
...
Significant improvements to several benchmarks, including Tracer, Sudoku and DeltaBlue,
see internal dashboard for details.
Flutter Gallery code size +0.7%.
Change-Id: I5df30bbfdd83a54e739ef6b64044141a80688d75
Cq-Include-Trybots: luci.dart.try:vm-kernel-win-release-x64-try, vm-kernel-optcounter-threshold-linux-release-x64-try, vm-kernel-precomp-linux-debug-x64-try, vm-kernel-precomp-linux-release-simarm-try, vm-kernel-precomp-linux-release-simarm64-try, vm-kernel-precomp-linux-release-x64-try, vm-kernel-precomp-win-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/77805
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Commit-Queue: Samir Jindel <sjindel@google.com >
2018-10-09 17:23:43 +00:00
Zach Anderson
b4b02a6bde
[vm] Include bytecode in core-jit and app-jit snapshots
...
when the --enable_interpreter flag is passed to gen_snapshot/dart.
Change-Id: I6e9481e1793e4c97fd6b14b56e55aafcb044fc23
Reviewed-on: https://dart-review.googlesource.com/c/78150
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Zach Anderson <zra@google.com >
2018-10-08 19:51:10 +00:00
asiva
af57d2a0eb
[VM] Remove dead code associated with flag '--error-on-bad-override'
...
- Remove all dead code associated with flag '--error-on-bad-override' which is currently running only under !FLAG_strong which is not valid anymore
- Not removing the flag from flag_list for now as it is used in a number of tests and removing it from all these places would be a big change, it would be a NOP flag
- removed some dead code in 'loader.dart' which was invoked from the tag handler
Change-Id: I5474b51b4dee7471e80b4081e55b996f1d75612f
Reviewed-on: https://dart-review.googlesource.com/c/78382
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2018-10-08 04:44:24 +00:00
Zach Anderson
330deaa4e1
[vm] Disable library name and exported name caches
...
Improves kernel loading time >5%
Change-Id: I1c5ed4cbb2de267b6f47c75612c09da620e9fb89
Reviewed-on: https://dart-review.googlesource.com/c/78183
Commit-Queue: Zach Anderson <zra@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
2018-10-05 17:31:20 +00:00
Zachary Anderson
aedf5127bd
[vm] Enable bump allocation scope for kernel loader
...
This shifts the bump allocation scope up to the Dart_ API
implementation so that an IsolateReloadContext won't try
to enter one. It also disables reload during the scope.
Change-Id: I3ca52f35c3a43f58e447e88b4fa91a84d3eacdd9
Reviewed-on: https://dart-review.googlesource.com/77522
Commit-Queue: Zach Anderson <zra@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2018-10-03 17:54:43 +00:00
Zach Anderson
1dfdcf3593
[vm] Add bump allocation scope
...
Use it in the kernel loader along with a
NoHeapGrowthControlScope.
Change-Id: I32e8c59298cbc5d022bc7965052d10af838b6b23
Reviewed-on: https://dart-review.googlesource.com/77024
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Zach Anderson <zra@google.com >
2018-10-01 17:19:01 +00:00
Ben Konyi
07852532e3
[ VM ] Additional cleanup in Dart_Initialize and Dart_Cleanup
...
Change-Id: I6dc02b3d9de16cc176eb97613bc0c7f0bb9b16eb
Reviewed-on: https://dart-review.googlesource.com/77013
Commit-Queue: Ben Konyi <bkonyi@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Auto-Submit: Ben Konyi <bkonyi@google.com >
2018-09-28 23:18:59 +00:00
Régis Crelier
79d639a3a8
[VM interpreter/bytecode] Modify argument order for AssertAssignable bytecode.
...
The new argument order matches the runtime call and requires less copying.
Simplify Function::HasCode()
Remove obsolete workaround when updating type test cache.
Change-Id: I57c988f97ee2259a22730f445f336cd2a085959e
Reviewed-on: https://dart-review.googlesource.com/76584
Commit-Queue: Régis Crelier <regis@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2018-09-26 21:15:16 +00:00
Ben Konyi
3c4c62d79a
Reland "[VM] Dart_Initialize no longer crashes after Dart_Cleanup"
...
This is a reland of 519ee905f9
Original change's description:
> [VM] Dart_Initialize no longer crashes after Dart_Cleanup
>
> Change-Id: I3cfdab9553aad045f024b6f9aec0b40b08234007
> Reviewed-on: https://dart-review.googlesource.com/75786
> Reviewed-by: Ryan Macnak <rmacnak@google.com >
> Commit-Queue: Ben Konyi <bkonyi@google.com >
Change-Id: Icdd901bf1ab0b675cc5f1497061a2b7b8a05d956
Reviewed-on: https://dart-review.googlesource.com/76561
Commit-Queue: Ben Konyi <bkonyi@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2018-09-26 17:54:45 +00:00
Ryan Macnak
86430cb46a
[vm] Extend AppJIT capability of gen_snapshot.
...
- Add generation of AppJIT snapshots (from a trace rather than a training run).
- Add generation of AppJIT snapshots under the constraint of not generating a new instructions segment.
- Remove generation of script snapshots (no longer used by Flutter).
Change-Id: I2a7cb4b7cd681fae5d33bc896107b3ea903f35d1
Reviewed-on: https://dart-review.googlesource.com/75390
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Stanislav Baranov <sbaranov@google.com >
2018-09-25 23:44:29 +00:00
Ben Konyi
b6284b41e3
Revert "[VM] Dart_Initialize no longer crashes after Dart_Cleanup"
...
This reverts commit 519ee905f9 .
Reason for revert: Seeing multiple crashes on Windows
Original change's description:
> [VM] Dart_Initialize no longer crashes after Dart_Cleanup
>
> Change-Id: I3cfdab9553aad045f024b6f9aec0b40b08234007
> Reviewed-on: https://dart-review.googlesource.com/75786
> Reviewed-by: Ryan Macnak <rmacnak@google.com >
> Commit-Queue: Ben Konyi <bkonyi@google.com >
TBR=bkonyi@google.com ,rmacnak@google.com ,zra@google.com
Change-Id: I33ad79dbc3fcf44f93612ff63bd2d8431f6067c8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/76342
Reviewed-by: Ben Konyi <bkonyi@google.com >
Commit-Queue: Ben Konyi <bkonyi@google.com >
2018-09-25 02:17:37 +00:00
Ryan Macnak
94481adbd4
[vm] Only include debugger/profiler slots in RawCode in product mode.
...
Saves 5 words per Code in product mode JIT.
Change-Id: I799a9c3bc1f4492d329c588ba1ea98f5b8baa304
Reviewed-on: https://dart-review.googlesource.com/75421
Reviewed-by: Zach Anderson <zra@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2018-09-25 01:30:53 +00:00
Ben Konyi
519ee905f9
[VM] Dart_Initialize no longer crashes after Dart_Cleanup
...
Change-Id: I3cfdab9553aad045f024b6f9aec0b40b08234007
Reviewed-on: https://dart-review.googlesource.com/75786
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Ben Konyi <bkonyi@google.com >
2018-09-25 01:20:24 +00:00
Zach Anderson
dba8b37d38
[vm] Benchmark for reading kernel bytecode
...
Change-Id: I07617a553193495fcc4fc0ce4a6382996ee7dc51
Reviewed-on: https://dart-review.googlesource.com/75821
Commit-Queue: Zach Anderson <zra@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
2018-09-24 15:54:49 +00:00
Ryan Macnak
93dcfaa289
[vm, gc] Concurrent marking.
...
Fall back to parallel marking
- on IA32 (barrier unimplemented)
- when write_protect_code is enabled (protection dependency on marking state unimplemented)
Bug: https://github.com/dart-lang/sdk/issues/34002
Change-Id: If093f24e4dc6bf29f407cc45e95bb2274fc53dcf
Reviewed-on: https://dart-review.googlesource.com/71389
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
2018-09-21 21:30:33 +00:00
Alexander Markov
46ec629096
[vm/bytecode] Trigger JIT-compilation from interpreter
...
Performance on Richards benchmark (no bytecode in platform, release build):
Interpreter (--enable-interpreter --compilation-counter-threshold=-1)
Richards(RunTime): 177228.34433333334 us.
Interpreter + bytecode compilation with default threshold 10 (--enable-interpreter)
Richards(RunTime): 930.8050725919032 us.
Varies from run to run, spikes up to 4178.005912317328 (no OSR yet, only background compilation).
Bytecode compilation (--use-bytecode-compiler)
Richards(RunTime): 830.1371626556016 us
Default pipeline:
Richards(RunTime): 880.1557113946327 us.
Numbers on Richards benchmark (platform with bytecode, release build):
Interpreter (--enable-interpreter --compilation-counter-threshold=-1)
Richards(RunTime): 354553.6346666667 us.
Interpreter + compilation with default threshold 10 (--enable-interpreter)
Richards(RunTime): 934.7108855140189 us.
Bytecode compilation (--use-bytecode-compiler)
Richards(RunTime): 822.74178403949 us.
Change-Id: Ic13e9f7c7d98f2930e6de4c4f74bac4d28478249
Reviewed-on: https://dart-review.googlesource.com/75781
Reviewed-by: Zach Anderson <zra@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2018-09-20 20:57:08 +00:00