Ryan Macnak
53f7bb175e
Revert "Make --sync-async the default for the VM."
...
This reverts commit 1ddf553eb6 .
Reason for revert: Failing service tests
Original change's description:
> Make --sync-async the default for the VM.
>
> Change-Id: Ic6d7bbc27835ea7b197cccf05724adb99e95dd51
> Reviewed-on: https://dart-review.googlesource.com/57580
> Commit-Queue: Vyacheslav Egorov <vegorov@google.com >
> Reviewed-by: Martin Kustermann <kustermann@google.com >
TBR=vegorov@google.com ,kustermann@google.com ,floitsch@google.com
Change-Id: I062cb40badf0d1cf1808bee152fdd4074b00179d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/58380
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2018-06-04 21:04:20 +00:00
Alexander Markov
c3b5939965
[vm] Remove --limit-ints-to-64-bits option and old _Bigint class
...
Closes https://github.com/dart-lang/sdk/issues/33306
Change-Id: I7088d8b7143edbe24f5cefe4be037ad2006e0625
Reviewed-on: https://dart-review.googlesource.com/58101
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2018-06-04 20:10:40 +00:00
Florian Loitsch
1ddf553eb6
Make --sync-async the default for the VM.
...
Change-Id: Ic6d7bbc27835ea7b197cccf05724adb99e95dd51
Reviewed-on: https://dart-review.googlesource.com/57580
Commit-Queue: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2018-06-04 18:05:20 +00:00
Zach Anderson
0bec11a4f2
[vm] Control growth of external allocations
...
Previously, GC would only be triggered by external allocations on
reaching a limit indicated by a flag. This limit was too large
and not set thoughtfully by anyone.
This CL triggers GC when external allocations in old gen grow
larger than some limit based on results of previous GC, similar
to how Dart heap growth triggers GC. GC is triggered for new gen
when external allocations reach 4x the current new gen
capacity.
FL-61
Change-Id: I1d4da467bc2aab64058f25296aefdd73eebc38e6
Reviewed-on: https://dart-review.googlesource.com/58100
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Zach Anderson <zra@google.com >
2018-06-04 17:24:18 +00:00
Samir Jindel
12c65eaeb4
[vm/kernel] Add flag to disable Kernel-based expression compilation.
...
Change-Id: Ibaa2ccd282b467e2b5ecda09fb86620409d7214b
Reviewed-on: https://dart-review.googlesource.com/55220
Reviewed-by: Alexander Aprelev <aam@google.com >
Commit-Queue: Samir Jindel <sjindel@google.com >
2018-05-15 14:55:37 +00:00
Ryan Macnak
3db2338283
[vm] Remove old --break_at_isolate_spawn.
...
This has long been replaced with --pause_isolates_on_start.
Change-Id: Ibf5850473b0d2090ec8ff244897a214149fb250c
Reviewed-on: https://dart-review.googlesource.com/48882
Reviewed-by: Siva Annamalai <asiva@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2018-03-30 22:52:02 +00:00
Alexander Markov
111ea256ad
[vm/kernel/aot] Generate list of precompiler entry points during build
...
This CL adds auto-generation of entry points JSON file for standalone VM
during build (in runtime_kernel target, as it is only used for
kernel-based transformation).
pkg/vm/tool/precompiler2 script is changed to automatically pass
auto-generated entry points to gen_kernel.
New option --entry-points is added to pkg/vm/bin/gen_kernel.dart in order to
specify custom entry points files.
Checked-in entry_points.json is still used for testing and in gen_kernel
if --entry-points is not specified.
Issue: https://github.com/dart-lang/sdk/issues/30480
Change-Id: I39c4461e48763f40d7565656dc33e23fc5d9c2cb
Reviewed-on: https://dart-review.googlesource.com/42521
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Zach Anderson <zra@google.com >
2018-02-23 18:30:46 +00:00
Ben Konyi
b853cfdbb1
[VM] Removed old space heap size limit for Kernel and Service isolates.
...
Change-Id: Ib19cc5ca22f319e41c21e6553e6228dfe0c34809
Reviewed-on: https://dart-review.googlesource.com/39420
Reviewed-by: Siva Annamalai <asiva@google.com >
2018-02-07 00:19:25 +00:00
Florian Loitsch
3b8e4d41a7
Reapply "Run async functions immediately."
...
Which was reverted in commit 032be73dbe .
Originally commited in commit 67bac0bce6 .
Original review URL: https://dart-review.googlesource.com/5263
Change-Id: Ic7333c29e502a3924dc6aade8ffa46fc8aa5b04a
Reviewed-on: https://dart-review.googlesource.com/38120
Commit-Queue: Florian Loitsch <floitsch@google.com >
Reviewed-by: William Hesse <whesse@google.com >
2018-02-02 15:50:16 +00:00
Florian Loitsch
032be73dbe
Revert "Run async functions immediately."
...
This reverts commit 67bac0bce6 .
Reason for revert: broke the bot.
Original change's description:
> Run async functions immediately.
>
> Migrated from https://codereview.chromium.org/2478703003/
>
> Change-Id: I1d678c01ba5876490b12c676c500171328361d31
> Reviewed-on: https://dart-review.googlesource.com/5263
> Commit-Queue: Florian Loitsch <floitsch@google.com >
> Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
> Reviewed-by: Vijay Menon <vsm@google.com >
> Reviewed-by: William Hesse <whesse@google.com >
> Reviewed-by: Martin Kustermann <kustermann@google.com >
> Reviewed-by: Régis Crelier <regis@google.com >
TBR=whesse@google.com ,rnystrom@google.com ,vegorov@google.com ,kustermann@google.com ,zra@google.com ,floitsch@google.com ,jmesserly@google.com ,vsm@google.com ,regis@google.com ,sigmund@google.com
Change-Id: I20c948057423c3fa5aa8c72843f8f2a17e086ad5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/37981
Reviewed-by: Florian Loitsch <floitsch@google.com >
Reviewed-by: William Hesse <whesse@google.com >
2018-02-01 15:01:21 +00:00
Florian Loitsch
67bac0bce6
Run async functions immediately.
...
Migrated from https://codereview.chromium.org/2478703003/
Change-Id: I1d678c01ba5876490b12c676c500171328361d31
Reviewed-on: https://dart-review.googlesource.com/5263
Commit-Queue: Florian Loitsch <floitsch@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Vijay Menon <vsm@google.com >
Reviewed-by: William Hesse <whesse@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
2018-02-01 14:08:57 +00:00
Ryan Macnak
880b5b4af5
Idle notification for isolates running on the thread pool.
...
If a thread pool isolate has not processed a message in FLAG_idle_timeout_micros, run idle tasks.
Change-Id: If506d7805eb1213c3d1f9383d835226822012fff
Reviewed-on: https://dart-review.googlesource.com/26004
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Zach Anderson <zra@google.com >
2018-01-17 22:01:28 +00:00
Alexander Markov
c051a0b905
[VM, Tests] Turn Dart 2.0 fixed-size integers ON by default, v2
...
Dart 2.0 fixed-size integers are enabled in Dart VM in all modes.
Status of legacy tests is updated.
This CL includes ff9fc413a7 with fixes.
Change-Id: I632d8177e9d07cd82ecea75ab6c325681b3a25c9
Reviewed-on: https://dart-review.googlesource.com/32443
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2018-01-05 01:44:56 +00:00
Alexander Markov
90551f6aa5
Revert "[VM, Tests] Turn Dart 2.0 fixed-size integers ON by default"
...
This reverts commit ff9fc413a7 .
Reason: buildbot failures.
Change-Id: I68ffde271c8ba3b212e3bf015e2e550c8c891441
Reviewed-on: https://dart-review.googlesource.com/32442
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2018-01-04 19:04:44 +00:00
Alexander Markov
ff9fc413a7
[VM, Tests] Turn Dart 2.0 fixed-size integers ON by default
...
Dart 2.0 fixed-size integers are enabled in Dart VM in all modes.
Status of legacy tests is updated.
Change-Id: I967a413c0b81eb92cf6be78ad3ee324798288bd2
Reviewed-on: https://dart-review.googlesource.com/31406
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2018-01-04 18:02:57 +00:00
Régis Crelier
2e3a4f8723
[VM] Ignore flag --error-on-bad-override in strong mode ( fixes #31646 ).
...
Change-Id: Idabd0108a69b37a9181c6bb260a25b3ebae2ba63
Reviewed-on: https://dart-review.googlesource.com/32003
Reviewed-by: Siva Annamalai <asiva@google.com >
Commit-Queue: Régis Crelier <regis@google.com >
2018-01-03 15:40:36 +00:00
Alexander Markov
d8f27c3841
[VM] Enable optimizations based on strong mode types
...
Strong mode types are queried from:
* Return types of interface targets of instance calls.
* Return types of static calls.
* Types of instance and static fields.
* Types of local variables (for initial types of phis).
The strong mode types are used to specialize int and double operations
and optimize 'is' checks.
https://github.com/dart-lang/sdk/issues/30480
Change-Id: I2302509f396eacfcab8ed41e3f50e8c74dd662fd
Reviewed-on: https://dart-review.googlesource.com/30386
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
2017-12-19 19:23:22 +00:00
Ryan Macnak
62ae8cda0a
Parallel compaction.
...
Divide the heap by pages into k tasks. Use ThreadBarrier to ensure
planning -> sliding and non-stack forwarding -> stack forwarding.
Bug: https://github.com/dart-lang/sdk/issues/30978
Change-Id: I2c9fcec0a0794bfea96ca1a0fb509a9f93242b65
Reviewed-on: https://dart-review.googlesource.com/29444
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Erik Corry <erikcorry@google.com >
2017-12-15 01:38:42 +00:00
Ryan Macnak
d366f9619a
[vm] Toward deterministic builds.
...
- Remove random build-id.
- Replace build time in embedded version string with commit time.
- Remove timestamps from Observatory tarball.
- Zero-initialize skipped bytes in snapshot streams.
- Fix uninitialized fields in PatchClass, Script and Library.
- Disable (under flag) random identity hashes and concurrent GC.
Bug: https://github.com/dart-lang/sdk/issues/31427
Change-Id: I3e95de679c8372841cd27ca60df78d9b00ffbfe1
Reviewed-on: https://dart-review.googlesource.com/22901
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Zach Anderson <zra@google.com >
2017-11-23 00:07:56 +00:00
Ryan Macnak
e4d01aa323
[vm, gc] Remove the evacuating compactor.
...
This was a temporary measure to verify the VM could handle moving old-space objects before we had the sliding compactor.
Bug: https://github.com/dart-lang/sdk/issues/30978
Change-Id: I4ffec413918481c0af4828d126930455f620935d
Reviewed-on: https://dart-review.googlesource.com/22663
Reviewed-by: Siva Annamalai <asiva@google.com >
Reviewed-by: Erik Corry <erikcorry@google.com >
2017-11-22 18:12:02 +00:00
Ryan Macnak
b7a509e98a
[vm] Add --print-snapshot-sizes-verbose.
...
E.g.,
Cluster Size Fraction Cumulative
Array 1079963 0.206635 0.206635
ObjectPool 1063564 0.203497 0.410132
Function 961383 0.183946 0.594079
Code 802081 0.153466 0.747545
ROData 379720 0.072654 0.820199
Class 185324 0.035459 0.855658
Bug:
Change-Id: I948877963b467263d399fa14ef32eedace02d6a5
Reviewed-on: https://dart-review.googlesource.com/19840
Reviewed-by: Siva Chandra <sivachandra@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2017-11-10 00:23:42 +00:00
Alexander Markov
28793ea130
[VM] Add option to print precompiler entry points
...
Change-Id: Ieba8d086e34e669c0789db96ddbb00932a764cfa
Reviewed-on: https://dart-review.googlesource.com/18511
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
2017-11-07 19:41:09 +00:00
Ryan Macnak
d965998d1c
[vm] Begin a sliding compactor.
...
Improves the space overhead of compaction from O(size of live objects) to O(number of live objects).
Future work includes:
- a smaller, faster representation the forwarding table via a bitmap of used allocation units
- sorting class sizes off-heap to allow sliding classes
- running forwarding in parallel
Removes unnecessary sweep from evacuating compactor.
Change-Id: If0991bfb75573201c6e8feed142ca0cc69fccab4
Bug: https://github.com/dart-lang/sdk/issues/30978
Reviewed-on: https://dart-review.googlesource.com/15988
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Erik Corry <erikcorry@google.com >
2017-10-25 21:57:08 +00:00
Ryan Macnak
6d3549ed56
Reapply "[vm] Add a simple compactor."
...
This is a subset of the previous attempt; the other part was fixed in 2994f60298 .
Bug: https://github.com/dart-lang/sdk/issues/30978
Change-Id: Ica22eb0d81e75378f4b528f8ca77504ef3e09c84
Reviewed-on: https://dart-review.googlesource.com/15769
Reviewed-by: Zach Anderson <zra@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2017-10-23 18:51:47 +00:00
Ryan Macnak
80e3fed6df
Revert "Reapply "[vm] Add a simple compactor.""
...
This reverts commit 6451ce078f .
Reason for revert: Crashes on some reload bots
Original change's description:
> Reapply "[vm] Add a simple compactor."
>
> - Update capacity when freeing pages to prevent confusing the growth policy.
> - Test with fragmentation_test instead of mirrors_reader_test to fit within time limits on the reload and opt-counter-threshold bots.
>
> Bug: https://github.com/dart-lang/sdk/issues/30978
> Change-Id: I50488230bf5a0ed3b663ce555ff6ed62f2e5acca
> Reviewed-on: https://dart-review.googlesource.com/15011
> Reviewed-by: Erik Corry <erikcorry@google.com >
> Commit-Queue: Ryan Macnak <rmacnak@google.com >
TBR=rmacnak@google.com ,asiva@google.com ,erikcorry@google.com
Change-Id: I93e57d4b0b71ce87f7ca04cd35a87d6205864bba
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: https://github.com/dart-lang/sdk/issues/30978
Reviewed-on: https://dart-review.googlesource.com/15300
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2017-10-19 19:51:05 +00:00
Ryan Macnak
6451ce078f
Reapply "[vm] Add a simple compactor."
...
- Update capacity when freeing pages to prevent confusing the growth policy.
- Test with fragmentation_test instead of mirrors_reader_test to fit within time limits on the reload and opt-counter-threshold bots.
Bug: https://github.com/dart-lang/sdk/issues/30978
Change-Id: I50488230bf5a0ed3b663ce555ff6ed62f2e5acca
Reviewed-on: https://dart-review.googlesource.com/15011
Reviewed-by: Erik Corry <erikcorry@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2017-10-19 18:08:58 +00:00
Ryan Macnak
e0c09211fc
Revert "[vm] Add a simple compactor."
...
This reverts commit 5bdffcd32e .
Reason for revert: Failures on DBC, timeouts on hot reload and opt counter stress bots.
Original change's description:
> [vm] Add a simple compactor.
>
> The compactor copies all live objects in old space to fresh pages, places forwarding pointers in the old objects, forwards all the pointers, then frees the old pages. This has a high space overhead. It is not meant for use in production, but meant to test that the VM is properly set up to handle old-space objects moving.
>
> Large page objects and instruction objects are not moved.
>
> Bug: https://github.com/dart-lang/sdk/issues/30978
> Change-Id: Ia42683fd5e27a33702aa5e83bece803a8b005a4b
> Reviewed-on: https://dart-review.googlesource.com/13624
> Commit-Queue: Ryan Macnak <rmacnak@google.com >
> Reviewed-by: Zach Anderson <zra@google.com >
> Reviewed-by: Erik Corry <erikcorry@google.com >
TBR=rmacnak@google.com ,zra@google.com ,asiva@google.com ,erikcorry@google.com
Change-Id: I4fda673561532b604d97b9b02189c030844d969d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: https://github.com/dart-lang/sdk/issues/30978
Reviewed-on: https://dart-review.googlesource.com/14680
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2017-10-17 21:57:19 +00:00
Ryan Macnak
5bdffcd32e
[vm] Add a simple compactor.
...
The compactor copies all live objects in old space to fresh pages, places forwarding pointers in the old objects, forwards all the pointers, then frees the old pages. This has a high space overhead. It is not meant for use in production, but meant to test that the VM is properly set up to handle old-space objects moving.
Large page objects and instruction objects are not moved.
Bug: https://github.com/dart-lang/sdk/issues/30978
Change-Id: Ia42683fd5e27a33702aa5e83bece803a8b005a4b
Reviewed-on: https://dart-review.googlesource.com/13624
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Zach Anderson <zra@google.com >
Reviewed-by: Erik Corry <erikcorry@google.com >
2017-10-17 20:44:02 +00:00
Régis Crelier
a73e6832fc
[VM generic functions] Remove empty_type_arguments singleton.
...
This empty vector was added in https://codereview.chromium.org/2818273002/
to properly instantiate generic signatures.
Later on, the implementation of HasInstantiatedSignature() was improved in
https://codereview.chromium.org/2965743002/ making the empty vector unnecessary.
However, the implementation of InstantiateFrom() will also need improvement
as noted by the added TODO.
Change-Id: I042a57b643390c789620b04122084db19ec445ea
Reviewed-on: https://dart-review.googlesource.com/13400
Reviewed-by: Siva Annamalai <asiva@google.com >
Commit-Queue: Régis Crelier <regis@google.com >
2017-10-12 15:21:52 +00:00
Régis Crelier
c260823921
[VM strong mode] Introduce a VM flag --strong modifying the semantics of type
...
checks to strong mode.
Note that the patched core library in runtime/lib is not yet strong mode clean.
Also, the core library requires type inference to work properly in strong mode.
Change-Id: I7b29af708f180eaa9fa95adfb6ec1b0361e2c003
Reviewed-on: https://dart-review.googlesource.com/8382
Reviewed-by: Siva Annamalai <asiva@google.com >
2017-09-27 23:03:23 +00:00
Aske Simon Christensen
8cb752f73b
Revised "Eliminate dependencies on assemblers and code stubs in precompiled runtime."
...
Explicitly clear unbox_numeric_fields flag in PRODUCT builds. Fixes code bloat introduced by previous CL. New changes in Patch Set 2.
BUG= https://github.com/dart-lang/sdk/issues/30045
R=vegorov@google.com
Review-Url: https://codereview.chromium.org/3006923002 .
2017-09-04 13:13:26 +02:00
Erik Corry
aa1a9ef686
[VM-GC] Add a flag to abort on allocation failure
...
This is added to help investigate memory usage. By setting an
old-space limit with --old-gen-heap-size and setting the new
--abort-on-oom it is possible to test whether a program can
run in a certain size. Using binary search one can determine
what the minimum size is. Without this flag the VM will slow
down to a crawl when it tries to exceed its heap limit.
R=vegorov@google.com
BUG=
Review-Url: https://codereview.chromium.org/2995063002 .
2017-09-04 12:32:30 +02:00
Alexander Markov
4743d90f3f
[vm] Use strong mode types to calculate CompileType
...
Strong mode types of fields, parameters and return types of
interface targets of calls are used to calculate more precise
CompileTypes of IL instructions.
R=rmacnak@google.com
Issue: https://github.com/dart-lang/sdk/issues/30480
Review-Url: https://codereview.chromium.org/3004463002 .
2017-08-22 15:54:15 -07:00
Alexander Markov
61ba2f1e9a
[vm] Read interface_target_reference from kernel binaries
...
This CL adds reading of 'interface_target_reference' from kernel
binary files and storing it in InstanceCallInstr IL instructions.
Later, it will be used to generate better code in AOT (in strong mode).
R=rmacnak@google.com
Issue: https://github.com/dart-lang/sdk/issues/30480
Review-Url: https://codereview.chromium.org/3001883002 .
2017-08-18 10:23:09 -07:00
Ryan Macnak
9ce7fb5929
Revert "Reapply "Eliminate dependencies on assemblers and code stubs in precompiled runtime.""
...
This reverts commit 8ee4436355 .
This change caused a 63% increase in AOT snapshot size of Flutter Gallery.
Issue #30472
Review-Url: https://codereview.chromium.org/2997993002 .
2017-08-17 13:33:37 -07:00
Aske Simon Christensen
8ee4436355
Reapply "Eliminate dependencies on assemblers and code stubs in precompiled runtime."
...
Also exclude references to disassembler in precompiled mode.
New edits are in patch set #2 .
BUG= https://github.com/dart-lang/sdk/issues/30045
R=rmacnak@google.com
Review-Url: https://codereview.chromium.org/2994863002 .
2017-08-12 02:15:23 +02:00
Ryan Macnak
3afd223f90
[gardening] Revert "Eliminate dependencies on assemblers and code stubs in precompiled runtime."
...
This reverts commit 46c53882cc .
This changes introduced link errors on Windows.
Review-Url: https://codereview.chromium.org/3001463002 .
2017-08-09 15:49:51 -07:00
Aske Simon Christensen
46c53882cc
Eliminate dependencies on assemblers and code stubs in precompiled runtime.
...
Guard all excluded code behind conditional compilation.
Removed precompiled runtime flag. Only preprocessor flag remains.
BUG= https://github.com/dart-lang/sdk/issues/30045
R=rmacnak@google.com , zra@google.com
Review-Url: https://codereview.chromium.org/2976723003 .
2017-08-09 22:21:34 +02:00
Ryan Macnak
f8e47a9e26
Reapply "[vm] Don't enable the profiler by default. Enable the profiler at startup with --observe, or later through Observatory."
...
Ensure we still start NativeSymbolResolver even if the profiler is off, since it is also used name weak handler finalizer functions and to produce stack traces for crashes.
R=bkonyi@google.com
Review-Url: https://codereview.chromium.org/2992893002 .
2017-08-09 11:20:58 -07:00
Dmitry Stefantsov
eddc456f29
Revert "[vm] Don't enable the profiler by default. Enable the profiler at startup with --observe, or later through Observatory."
...
This reverts commit cc08f2ddd8 .
R=whesse@google.com
Review-Url: https://codereview.chromium.org/2990173002 .
2017-08-02 11:30:16 +02:00
Ryan Macnak
cc08f2ddd8
[vm] Don't enable the profiler by default. Enable the profiler at startup with --observe, or later through Observatory.
...
Note there is no option to disable the profiler. The profiler on Mac, Linux, and Android is based on SIGPROF, and there is no way to wait for all the outstanding signals as required to be able to safely free the sample buffer.
Saves ~20MB on 64-bit VMs.
R=cbernaschina@google.com , zra@google.com
Review-Url: https://codereview.chromium.org/2989093002 .
2017-08-01 17:57:08 -07:00
Zachary Anderson
8d6bc876f0
Reland "Remove fields from Isolate in Product mode"
...
In my reordering of the fields in Isolate, I omitted the initialization
of a few fields in the constroctor. This CL will reland the change with
the initialization added back.
R=danunez@google.com , rmacnak@google.com
Review-Url: https://codereview.chromium.org/2983403002 .
2017-07-25 13:24:30 -07:00
Zachary Anderson
211604d7a0
Revert "Remove fields from Isolate in Product mode"
...
This reverts commit 13558442ab .
The above change caused a timeout in a vm test:
FAILED: none-vm-checked release_x64 vm/cc/SafepointTestDart
Expected: Pass
Actual: Timeout
CommandOutput[run_vm_unittest]:
diagnostics: Process list including children: [28397]
Trying to capture stack trace for pid 28397
PID 28397 - process
TID 28397:
#0 0x00007efedf216404 pthread_cond_wait@@GLIBC_2.3.2
#1 0x0000000002b9a315 dart::Monitor::WaitMicros(long)
#2 0x0000000002af3496 dart::MonitorLocker::WaitWithSafepointCheck(dart::Thread*, long)
#3 0x0000000002a8724d dart::Heap::AllocateOld(long, dart::HeapPage::PageType)
#4 0x0000000002b07de3 dart::Object::Allocate(long, long, dart::Heap::Space)
#5 0x0000000002b26eab dart::UnresolvedClass::New(dart::Object const&, dart::String const&, dart::TokenPosition)
#6 0x0000000002be6358 dart::Parser::ParseType(dart::ClassFinalizer::FinalizationKind, bool, bool, dart::LibraryPrefix*)
#7 0x0000000002ba9cc4 dart::Parser::ParseNewOperator(dart::Token::Kind)
#8 0x0000000002bac7dc dart::Parser::ParsePrimary()
#9 0x0000000002be19c1 dart::Parser::ParsePostfixExpr()
#10 0x0000000002bdf1c4 dart::Parser::ParseUnaryExpr()
#11 0x0000000002bb618c dart::Parser::ParseBinaryExpr(int)
#12 0x0000000002bb869f dart::Parser::ParseConditionalExpr()
#13 0x0000000002bae224 dart::Parser::ParseExpr(bool, bool)
#14 0x0000000002bbeb79 dart::Parser::ParseAwaitableExpr(bool, bool, dart::SequenceNode**)
#15 0x0000000002bd5273 dart::Parser::ParseStatement()
#16 0x0000000002bbcce0 dart::Parser::ParseStatementSequence()
#17 0x0000000002ba64e8 dart::Parser::ParseFunc(dart::Function const&, bool)
#18 0x0000000002ba3e31 dart::Parser::ParseFunction(dart::ParsedFunction*)
#19 0x00000000029e0725 dart::DartCompilationPipeline::ParseFunction(dart::ParsedFunction*)
#20 0x00000000029e4898 dart::CompileFunctionHelper(dart::CompilationPipeline*, dart::Function const&, bool, long)
#21 0x00000000029e5716 dart::Compiler::CompileOptimizedFunction(dart::Thread*, dart::Function const&, long)
#22 0x0000000002c8d3a4 dart::DRT_StackOverflow(dart::NativeArguments)
#23 0x00007efedf6ad61b
TID 28421:
#0 0x00007efedf2167be pthread_cond_timedwait@@GLIBC_2.3.2
#1 0x0000000002b9a2ff dart::Monitor::WaitMicros(long)
#2 0x0000000002cc6f8f dart::ThreadInterrupter::ThreadMain(unsigned long)
#3 0x0000000002b999d9 dart::ThreadStart(void*)
#4 0x00007efedf212184 start_thread
#5 0x00007efede51737d __clone
TID 28430:
#0 0x00007efedf216404 pthread_cond_wait@@GLIBC_2.3.2
#1 0x0000000002b9a315 dart::Monitor::WaitMicros(long)
#2 0x0000000002af3496 dart::MonitorLocker::WaitWithSafepointCheck(dart::Thread*, long)
#3 0x0000000002a8789e dart::HeapIterationScope::HeapIterationScope(bool)
#4 0x0000000002ad4966 dart::Isolate::IterateObjectPointers(dart::ObjectPointerVisitor*, bool)
#5 0x00000000027ed02a dart::SafepointTestTask::Run()
#6 0x0000000002cc7cbd dart::ThreadPool::Worker::Loop()
#7 0x0000000002cc7b6a dart::ThreadPool::Worker::Main(unsigned long)
#8 0x0000000002b999d9 dart::ThreadStart(void*)
#9 0x00007efedf212184 start_thread
#10 0x00007efede51737d __clone
TID 28431:
#0 0x00007efedf216404 pthread_cond_wait@@GLIBC_2.3.2
#1 0x0000000002b9a315 dart::Monitor::WaitMicros(long)
#2 0x0000000002ad66fa dart::Isolate::ScheduleThread(bool, bool)
#3 0x0000000002cc53ea dart::Thread::EnterIsolateAsHelper(dart::Isolate*, dart::Thread::TaskKind, bool)
#4 0x0000000002a86317 dart::SweeperTask::Run()
#5 0x0000000002cc7cbd dart::ThreadPool::Worker::Loop()
#6 0x0000000002cc7b6a dart::ThreadPool::Worker::Main(unsigned long)
#7 0x0000000002b999d9 dart::ThreadStart(void*)
#8 0x00007efedf212184 start_thread
#9 0x00007efede51737d __clone
TID 28444:
#0 0x00007efedf216404 pthread_cond_wait@@GLIBC_2.3.2
#1 0x0000000002b9a315 dart::Monitor::WaitMicros(long)
#2 0x0000000002af3496 dart::MonitorLocker::WaitWithSafepointCheck(dart::Thread*, long)
#3 0x0000000002a8724d dart::Heap::AllocateOld(long, dart::HeapPage::PageType)
#4 0x0000000002b07de3 dart::Object::Allocate(long, long, dart::Heap::Space)
#5 0x0000000002b26eab dart::UnresolvedClass::New(dart::Object const&, dart::String const&, dart::TokenPosition)
#6 0x0000000002be6358 dart::Parser::ParseType(dart::ClassFinalizer::FinalizationKind, bool, bool, dart::LibraryPrefix*)
#7 0x0000000002bb19bb dart::Parser::ParseTypeOrFunctionType(bool, dart::ClassFinalizer::FinalizationKind)
#8 0x0000000002bb204c dart::Parser::ParseFormalParameter(bool, bool, dart::ParamList*)
#9 0x0000000002bb43b3 dart::Parser::ParseFormalParameters(bool, bool, bool, dart::ParamList*)
#10 0x0000000002ba368b dart::Parser::ParseFormalParameterList(bool, bool, bool, dart::ParamList*)
#11 0x0000000002ba5a8f dart::Parser::ParseFunc(dart::Function const&, bool)
#12 0x0000000002ba3e31 dart::Parser::ParseFunction(dart::ParsedFunction*)
#13 0x00000000029e0725 dart::DartCompilationPipeline::ParseFunction(dart::ParsedFunction*)
#14 0x00000000029e4898 dart::CompileFunctionHelper(dart::CompilationPipeline*, dart::Function const&, bool, long)
#15 0x00000000029e5716 dart::Compiler::CompileOptimizedFunction(dart::Thread*, dart::Function const&, long)
#16 0x00000000029e7036 dart::BackgroundCompiler::Run()
#17 0x0000000002cc7cbd dart::ThreadPool::Worker::Loop()
#18 0x0000000002cc7b6a dart::ThreadPool::Worker::Main(unsigned long)
#19 0x0000000002b999d9 dart::ThreadStart(void*)
#20 0x00007efedf212184 start_thread
#21 0x00007efede51737d __clone
Review-Url: https://codereview.chromium.org/2988703002 .
2017-07-24 14:17:53 -07:00
Zachary Anderson
13558442ab
Remove fields from Isolate in Product mode
...
R=rmacnak@google.com
Review-Url: https://codereview.chromium.org/2984883002 .
2017-07-24 13:22:44 -07:00
Zachary Anderson
952345ff84
Remove the debugger_ field from Isolate in a PRODUCT build.
...
This is the first in a series of CL in which I am removing fields from
classes that aren't used in PRODUCT mode. This CL removes the
debugger_ field from Isolate.
R=rmacnak@google.com
Review-Url: https://codereview.chromium.org/2981173002 .
2017-07-18 13:29:40 -07:00
Ryan Macnak
f20b32b793
[vm] Enable mirrors in product mode. Allows building a product mode SDK.
...
Fixes https://github.com/dart-lang/sdk/issues/29972
R=zra@google.com
Review-Url: https://codereview.chromium.org/2972883002 .
2017-07-12 12:55:58 -07:00
Aske Simon Christensen
ab7d9a5720
Omit JIT compiler from precompiled runtime on ARM, ARM64 and IA32.
...
Saves about a megabyte on the size of the precompiled runtime VM.
Next step will be to eliminate the assemblers and code stubs as well. This requires some more disentangling.
Until then, the X64 build still includes the compiler, since its assembler has a dependency on locations.cc, which is part of the compiler.
BUG= https://github.com/dart-lang/sdk/issues/30045
R=rmacnak@google.com , zra@google.com
Review-Url: https://codereview.chromium.org/2960413002 .
2017-07-11 12:01:49 +02:00
Alexander Markov
7360dd42ee
Option --limit-ints-to-64-bits should be included into product
...
The option should be present in PRODUCT mode because it is used
in the test runtime/tests/vm/dart/truncating_ints_test.dart
(in the VMOptions specification).
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2980553002 .
2017-07-10 15:44:25 -07:00
Alexander Markov
7a20b6b8d8
Option to truncate integers to 64 bits, part 1 (core VM changes)
...
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 .
2017-07-10 15:16:40 -07:00
Ryan Macnak
26336b47a3
Allow enabling --causal-async-stacks in AOT.
...
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2944483002 .
2017-06-15 11:09:51 -07:00