Commit Graph

9119 Commits

Author SHA1 Message Date
Siva Annamalai 956d02f22d Make no_handle_scope_depth_ an int32_t field as that is what the accessor returns and there is check to ensure it;s value is < INT_MAX.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1530543002 .
2015-12-14 17:28:03 -08:00
John McCutchan a1ed9c6d17 Remove public dart:isolate dependency from dart:developer
- Move code from sdk/lib into runtime/lib.
- Remove dependency on dart:isolate from dart:developer.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1522203002 .
2015-12-14 13:26:05 -08:00
John McCutchan cc9b72411d Add TimelineBeginEndScope helper class
- Refactor TimelineDurationScope into TimelineEventScope.
- Reintroduce TimelineDurationScope based on TimelineEventScope.
- Add TimelineBeginEndScope.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1529613002 .
2015-12-14 12:45:39 -08:00
Regis Crelier 1c7f0a4d60 Finalizing an upper bound during a compile-time type test may lead to cycles.
Fail the test instead, requiring a runtime test.
This was introduced last week as https://codereview.chromium.org/1513493002/
in order to fix #25122.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1528523002 .
2015-12-14 11:38:19 -08:00
Zachary Anderson fa8a0613a3 Fold ApiObjectConverter use into ApiMessageReader
TODO from change on Friday.

R=turnidge@google.com

Review URL: https://codereview.chromium.org/1523013002 .
2015-12-14 11:12:25 -08:00
Todd Turnidge 08ce763e26 Update observatory_pub_packages_rev.
I want to pick up the new version of charted to drop some build warnings.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1519183003 .
2015-12-14 10:36:40 -08:00
Ryan Macnak 1481dde862 No gcc, please don't optimize away the stack overflow check.
Fixes language/issue22159_test for release + noopt.

BUG=http://dartbug.com/24659
R=regis@google.com

Review URL: https://codereview.chromium.org/1518253002 .
2015-12-14 09:20:10 -08:00
Zachary Anderson ad0e9622e9 Fix build
TBR

Review URL: https://codereview.chromium.org/1519333002 .
2015-12-11 19:45:17 -08:00
Ryan Macnak 2bfdde5c36 Also adjust the event handler's timer_fd to the monotonic clock.
Should fix timeouts on pkg-linux-debug-be.

Cf. 9387fead15.

BUG=http://dartbug.com/25055
BUG=http://dartbug.com/25216
TBR=iposva@google.com

Review URL: https://codereview.chromium.org/1513843007 .
2015-12-11 17:37:35 -08:00
Zachary Anderson a0970835f0 Adds a special case for sending an int over a port with the native API.
This improves dart <=> C++ IPC round-trip-times for Mojo by 10-20%.

BUG=

Review URL: https://codereview.chromium.org/1499853004 .
2015-12-11 16:07:16 -08:00
Ryan Macnak 1a333dcdd2 Also copy the fallback code.
Review URL: https://codereview.chromium.org/1519073003 .
2015-12-11 13:35:06 -08:00
Ivan Posva 6d0453594a - Prevent running of the dart_bootstrap script by default.
- Fix argument handling in Python: argparse does not properly handle booleans.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1519063004 .
2015-12-11 13:23:12 -08:00
Ryan Macnak fc551b6f33 Remove stray copy of OS::AlignedAllocate.
Review URL: https://codereview.chromium.org/1518113002 .
2015-12-11 13:13:52 -08:00
Ryan Macnak 9387fead15 Use a monotonic clock in the implementation of Timer.
Ask the embedder for the current time, since it is the embedder who later compares the deadline with current time when deciding when to send a wake up message.

BUG=http://dartbug.com/25055
BUG=http://dartbug.com/25216
R=iposva@google.com, zra@google.com

Review URL: https://codereview.chromium.org/1519563003 .
2015-12-11 12:39:56 -08:00
Ryan Macnak 5111482ab9 Fix stack overflow check in InvokeClosure.
Isolate::saved_stack_limit() answers the limit of the Dart stack, which
is different from the C stack when using the simulators. Since we are
recursing in C, we want to check against the C stack's limit.

This overflow check is only needed to support --no-lazy-dispatchers,
which is part of precompilation.

BUG=http://dartbug.com/24659
R=regis@google.com

Review URL: https://codereview.chromium.org/1513993004 .
2015-12-10 14:06:19 -08:00
Florian Schneider 12155b1920 VM: Add missing source line info in await-for statements.
When an exception occurs in the constructor of the steam iterator, the
stack trace was missing the source position.

BUG=#24084
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1516493002 .
2015-12-10 18:58:12 +01:00
Ryan Macnak dfa715727b Record OSThread::trace_id() instead of OSThread::id() in profile samples.
The profiler only uses the thread id to check if two samples with the
same timestamp belong to the same thread. Using trace_id() allows
profile samples to be correctly grouped with timeline events.

R=iposva@google.com

Review URL: https://codereview.chromium.org/1508233003 .
2015-12-10 09:46:42 -08:00
Ivan Posva f887b03b5b - Assert that we do not hold the timeline lock while entering
potential safepoints.
- Enable timeline for existing test as a regression test.
- Fix allocation with timeline lock held during deoptimization to
  prevent deadlock.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1514653002 .
2015-12-09 13:41:42 -08:00
Zachary Anderson bd20ef507f Load Observatory assets lazily
BUG=
R=turnidge@google.com

Review URL: https://codereview.chromium.org/1500073003 .
2015-12-09 10:09:45 -08:00
Florian Schneider 12b0aa1ba8 VM: Don't inline array allocation in precompiled code
This reduces generated code size by around 3-4% on ARM and x64.

Performance impact is mostly neutral because precompiled code is generally
dominated by other factors, and especially ARM often benefits from smaller
generated code.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1512513002 .
2015-12-09 11:40:32 +01:00
Florian Loitsch 6c84c42e67 Add microsecond support to DateTime.
R=iposva@google.com, lrn@google.com

Review URL: https://codereview.chromium.org/1493033003 .
2015-12-09 00:46:46 +01:00
Matthias Hausner d68a7de36a Fix mismatched parenthesis error message
'file:xxxx.dart': error: line 2 pos 4: unterminated '('
foo(state { // <= missing closing parenthesis
   ^

Also include a couple of postscripts from previous change.

BUG=5830
R=iposva@google.com

Review URL: https://codereview.chromium.org/1504313003 .
2015-12-08 15:36:10 -08:00
Ryan Macnak bf1724948f Add timeline events for CompileClass and CompileTopLevel.
R=iposva@google.com

Review URL: https://codereview.chromium.org/1513503003 .
2015-12-08 15:26:07 -08:00
Ryan Macnak 3c3d3e23af Update standalone help message for removed legacy debugger protocol options.
Cf. 6249c2bcf3

R=hausner@google.com

Review URL: https://codereview.chromium.org/1505253003 .
2015-12-08 14:48:50 -08:00
Regis Crelier 173c1aed51 Improve upper bound finalization in VM and fix #25122.
Add regression test.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1513493002 .
2015-12-08 14:38:27 -08:00
Ryan Macnak 4d9a399f53 Standalone: Null out _packagesPort after close.
Fixes crash in precompilation attempting to serialize a receive port.

BUG=http://dartbug.com/25075
R=iposva@google.com

Review URL: https://codereview.chromium.org/1505193003 .
2015-12-08 10:53:21 -08:00
Ryan Macnak c99df050b1 Use a monotonic clock in the implementation of Stopwatch.
Rename OS::GetCurrentTraceMicros() to OS::GetCurrentMonotonicMicros().

BUG=http://dartbug.com/477
BUG=http://dartbug.com/12383
R=iposva@google.com

Review URL: https://codereview.chromium.org/1504523002 .
2015-12-08 10:12:05 -08:00
Ivan Posva 5805cba963 - Make sure the tar file for Observatory resources only contains
forward slashes.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1507923002 .
2015-12-07 15:27:28 -08:00
Matthias Hausner 23bfa8163d Strip meta-data when VM runs with --enable-mirrors=false
When the mirrors system is unavailable, there is no need to create the fields for metadata annotations in code.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1504673004 .
2015-12-07 12:49:08 -08:00
Srdjan Mitrovic a9ea73b60b --collect_dynamic_function_names (default false): find unique virtual function names and use them to populate ICData (precompilation only) Measured some performance improvement, some performance loss. Next: tune inlining of getters/setters, check heuristics.
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1496713002 .
2015-12-04 13:19:00 -08:00
Matthias Hausner 0bbfe1e23b There are about 60 patch classes in the libraries. Running dart2js causes about 25 of them to be compiled and applied, so we get rid of 25 of 60 Class objects.
Review URL: https://codereview.chromium.org/1498933002 .
2015-12-04 13:11:25 -08:00
Ryan Macnak 688d5cfcc3 Precompilation/mips: Fix SwitchableCalls to use patchable object pool entries for the lookup stubs.
R=srdjan@google.com

Review URL: https://codereview.chromium.org/1500083002 .
2015-12-04 12:40:25 -08:00
Ryan Macnak f380c23711 Throw an exception when attempting to use Isolate.spawnUri under precompilation.
R=srdjan@google.com

Review URL: https://codereview.chromium.org/1502473002 .
2015-12-04 10:13:15 -08:00
Ryan Macnak 3e7212e194 Reapply "Precompilation/x64: Load float vector constants via Thread."
Fix unbalanced Enter/LeaveTestFrame in TestObjectCompare. Crashed on release + clang with the original change, and was failing on ASAN before that.

BUG=http://dartbug.com/24450
BUG=http://dartbug.com/25002
R=fschneider@google.com

Review URL: https://codereview.chromium.org/1499763002 .
2015-12-04 09:46:21 -08:00
Florian Schneider eee0e6d8c3 Fix optimizations on static fields in precompiled code.
Don't perform LICM / or load elimination of static fields in precompiled
code since they may not be initialized and we don't record an explicit
dependency between the initialization and the load of a static field.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1497783002 .
2015-12-04 12:42:39 +01:00
Ivan Posva 6249c2bcf3 - Remove the legacy debug protocol.
BUG=
R=hausner@google.com

Review URL: https://codereview.chromium.org/1497033003 .
2015-12-03 17:46:02 -08:00
Ryan Macnak 7dfb517618 Revert "Precompilation/x64: Load float vector constants via Thread."
This reverts commit 9cf30c9697.

Review URL: https://codereview.chromium.org/1494323002 .
2015-12-03 14:19:21 -08:00
Ryan Macnak 9cf30c9697 Precompilation/x64: Load float vector constants via Thread.
Cannot put these in the object pool because some of these instructions
are used in intrinsics.

BUG=http://dartbug.com/24450
R=fschneider@google.com

Review URL: https://codereview.chromium.org/1488403002 .
2015-12-03 13:35:31 -08:00
Florian Schneider d9b1301821 VM: Fix crash in profile signal handler.
The profile signal handler may interrupt when the current Thread
is in an inconsistent state.

Members of the Thread that is unscheduled are NULLed out before
OSThread::SetCurrent sets a new current Thread. Fix this by resetting
the current Thread's fields after a new Thread is set as current.

BUG=#25702
R=iposva@google.com

Review URL: https://codereview.chromium.org/1491283002 .
2015-12-03 22:00:24 +01:00
Florian Schneider dff13bef8d VM: Fix bug in type propagation at conditionals.
Propagating type/cid at conditional branches is not possible because
it may cause invalid code motion.

For this to be safe we need to explicitly represent the dependency
between checks eliminated in a branch and the condition that constrains the type/cid.

BUG=
R=vegorov@google.com

Review URL: https://codereview.chromium.org/1491373005 .
2015-12-03 21:14:35 +01:00
Ryan Macnak d94b68cb41 Precompilation: Don't drop an uncompiled function if it has a compiled implicit closure function.
This ensures the implicit closure function is enumerated in later steps. Fixes crash in co19 test reducible as

import 'dart:math';
main() {
  print(const [1, 2.0, "3"].fold(0, max));
}

Also enumerate invocation dispatchers to avoid a similar situation there, though I cannot find a crashing example involving them.

R=fschneider@google.com

Review URL: https://codereview.chromium.org/1489203004 .
2015-12-03 11:03:23 -08:00
Matthias Hausner 4733386ca8 Reset top-level class finalization
BUG=
R=regis@google.com

Review URL: https://codereview.chromium.org/1493533002 .
2015-12-02 09:59:32 -08:00
Ryan Macnak 56239b1476 Use the same clock for the profiler samples and timeline events.
Preparation for overlaying samples in the timeline.

BUG=
R=iposva@google.com

Review URL: https://codereview.chromium.org/1492653002 .
2015-12-02 09:37:23 -08:00
Srdjan Mitrovic abef5cb3ed Correct overflow check; signed integer overflow is undefined in C++.
BUG=
R=fschneider@google.com

Review URL: https://codereview.chromium.org/1490853002 .
2015-12-02 08:45:41 -08:00
Florian Schneider 46f3e7bfe7 VM: Reduce size of AST-nodes vtables.
Make Is## methods of AST nodes non-virtual, like we do for IL instruction nodes.

This saves around 10k in vtables on ia32.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1482153006 .
2015-12-02 13:38:26 +01:00
Florian Schneider dd095404b7 Fix Windows SDK build.
TBR=srdjan@google.com

BUG=

Review URL: https://codereview.chromium.org/1493703002 .
2015-12-02 13:18:06 +01:00
Florian Schneider 59fd6c8397 VM: Small clean up and const-ness fix for Thread/OSThread constants.
BUG=
R=srdjan@google.com

Review URL: https://codereview.chromium.org/1482243006 .
2015-12-02 12:30:12 +01:00
Florian Schneider 5f073e7be0 VM: More read-only handles for constant null-objects/-instances.
Use Object::null_## for null-constants where possible.

BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/1488773004 .
2015-12-02 11:36:30 +01:00
Ryan Macnak 6fc5018282 Standalone: Use new support in dart:core for decoding data uris.
R=iposva@google.com

Review URL: https://codereview.chromium.org/1489603002 .
2015-12-01 13:46:20 -08:00
Matthias Hausner 1df143b6b6 Removing an assert that trips after the TL class removal.
I will look into why the assertion fails in a follow-on change.

Review URL: https://codereview.chromium.org/1486923005 .
2015-12-01 13:04:32 -08:00