turnidge@google.com
afb008d480
Edits to protocol.md.
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//493893002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39433 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-20 22:09:58 +00:00
johnmccutchan@google.com
fbb31fb54d
Tweaks to perf jitdump support
...
BUG=
R=asiva@google.com , vegorov@google.com
Review URL: https://codereview.chromium.org//489923002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39427 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-20 20:43:54 +00:00
turnidge@google.com
23bed26ecb
Initial commit of service/protocol.md
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//466363008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39425 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-20 20:12:18 +00:00
turnidge@google.com
c48496b873
Refactor isolate startup code in preparation for making isolate spawning more truly non-blocking.
...
Instead of passing a startup message to the new isolate, pass all
necessary information in to _startIsolate directly. The new isolate
sends its control port and capabilities back to the parent.
R=iposva@google.com
Review URL: https://codereview.chromium.org//456983002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39423 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-20 19:57:09 +00:00
iposva@google.com
03e8b14ed9
- Address review comments from https://codereview.chromium.org/474913004/
...
- Clearly mark overrides of ThreadPool::Task::Run as virtual.
Review URL: https://codereview.chromium.org//480343003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39418 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-20 18:37:29 +00:00
zra@google.com
77157f09eb
Moves SingleStepHandler runtime calls
...
to match the NArgsCheckInlineCache stub.
Gives a small improvement in unoptimized code.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//496483002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39417 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-20 18:21:47 +00:00
koda@google.com
015211b474
Track per-class promotion stats.
...
This will be useful for allocation policy and heap growth policy.
Also include these stats in the VM service.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//487973002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39415 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-20 17:57:12 +00:00
iposva@google.com
9cc85d0ca2
- Address code review comment from https://codereview.chromium.org/488943002/
...
Review URL: https://codereview.chromium.org//468913011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39406 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-20 14:11:00 +00:00
iposva@google.com
131a381020
- Stop-the-world sweep uses pre-locked free list access.
...
Review URL: https://codereview.chromium.org//488943002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39399 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-20 07:11:17 +00:00
iposva@google.com
4835041da9
- Account for number of pending tasks in old-space collections.
...
- Protect access to the free lists.
- MutexLocker/MonitorLocker do not need to be StackResources.
R=koda@google.com
Review URL: https://codereview.chromium.org//474913004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39396 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-20 03:54:14 +00:00
hausner@google.com
549f9d467c
Detect compile errors when setting breakpoint
...
When the VM is started with the —-debug option, it compiles the main
function eagerly to set a one-shot breakpoint. So far we silently
dropped errors during the compilation, which is wrong. This change
propagates the error to the caller.
Fixes issue https://code.google.com/p/dart/issues/detail?id=20558
R=regis@google.com
Review URL: https://codereview.chromium.org//470353003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39390 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-19 22:34:07 +00:00
hausner@google.com
0bbf6c5b16
Runtime support for evaluation of static field initializer expressions
...
Eliminates the generation of field initializer functions by the parser.
Adds a runtime call that creates a one-shot function to evaluate the
initializer of a static field. The runtime function gets called from
the implicit static getter function for the field.
R=srdjan@google.com , zra@google.com
Review URL: https://codereview.chromium.org//471283002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39387 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-19 21:53:44 +00:00
johnmccutchan@google.com
c1a7a9b1d2
Update to latest jitdump file format
...
BUG=
R=vegorov@google.com
Review URL: https://codereview.chromium.org//493493003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39384 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-19 21:28:40 +00:00
koda@google.com
c22d3cf74a
Avoid UTF-8 decoding in num.toString.
...
4-7% speedup on SplayHarder.
Introduce _Num class to make Dart and VM hierarchies match and enable sharing code between integers and doubles.
R=iposva@google.com
Review URL: https://codereview.chromium.org//473673004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39383 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-19 21:15:39 +00:00
mlippautz@google.com
661ed0608f
Fix leftovers from await CL.
...
* Regenerating snapshot and commiting using SVN
* int -> int32_t (format %d stays, as similar examplces in object.cc/.h exist)
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39351 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-18 20:31:26 +00:00
mlippautz@google.com
8cba29ad18
Fix broken build due to integer formatting.
...
BUG=
Review URL: https://codereview.chromium.org//478423002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39346 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-18 18:53:08 +00:00
mlippautz@google.com
5f02ceed86
Introduce await.
...
This CL adds basic infrastructure needed for awaitable expressions. Implementation of continuations is not part of this CL.
Expressions containing ``await'' are transformed into a series of operations on intermediates, effectively getting rid
of the temporary expression stack. Currently only expressions evaluating to an actual value (read: non-future) are supported.
Also, not all kinds of statements support awaitable expressions yet.
Missing:
* Capturing all (needed) variables
* Continuations (connecting a preamble with await statements; re-adding the closure to the run queue)
BUG=
R=hausner@google.com
Review URL: https://codereview.chromium.org//447003003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39345 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-18 18:41:12 +00:00
fschneider@google.com
87ef61e055
Fix polymorphic inlining of non-native recognized methods.
...
R=vegorov@google.com
Review URL: https://codereview.chromium.org//481023002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39335 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-18 15:58:54 +00:00
koda@google.com
5d5deec4e6
Optional binary payloads in VM service events.
...
Allow an event to send a binary blob in addition to its JSON message.
For testing, add _Echo event type that is triggered by an _echo/event request.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//474633002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39332 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-18 15:35:03 +00:00
vegorov@google.com
a8e81404e7
Don't check for reaching type in the RangeAnalysis::GetRange.
...
Canonicalizer rewrites
v1 = _Int32Array._new(v0)
v2 = v1.length
use(v2)
as
v1 = _Int32Array._new(v0)
use(v0)
without changing reaching type of v0 to Smi at the use.
This means right now we can't expect that uses at Smi operations have propagated smi type.
BUG=
R=fschneider@google.com
Review URL: https://codereview.chromium.org//484693002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39331 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-18 15:04:46 +00:00
vegorov@google.com
336dbd4cbf
Reland r39293.
...
Switch to a fix-point based range analysis to improve its precision.
Dominator based algorithm was very imprecise for loop phis.
Use widening to ensure fast convergence and narrowing to improve precision.
Fixed compared to r39293:
Type propagation is more sophisticated now compared to the time
when range analysis was originally implemented and is able to derive Smi-ness
from more than just CheckSmi instruction (e.g. GuardFieldClass). This creates
situations when use's reaching type is Smi but definition itself is not a Smi
and thus will never have range assigned to it.
It is incorrect to treat ranges of such uses as unknown (_|_), because unknown
means "not yet computed". Instead we must use the widest possible approximation:
full smi range.
InferRange methods were rewritten to use a newly introduced GetRange helper
instead of accessing value()->definition()->range() directly.
As a side-effect we no longer need to insert artificial constraints after CheckSmi instructions.
R=fschneider@google.com
Review URL: https://codereview.chromium.org//477193002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39327 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-18 11:06:27 +00:00
johnmccutchan@google.com
3299ed4a81
- Add VMMetric and some sample metrics
...
- Per isolate:
* heap.old.used
* heap.old.capacity
* heap.old.external
* heap.new.used
* heap.new.capacity
* heap.new.external
- VM:
* vm.isolate.count
- New metrics service namespace: /metrics/vm/...
R=koda@google.com
Review URL: https://codereview.chromium.org//464953002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39305 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-15 17:35:00 +00:00
vegorov@google.com
f2c3859068
Revert "Switch to a fix-point based range analysis to improve its precision."
...
This reverts r39293.
The dart2js part of the tree is on fire.
TBR=fschneider@google.com
Review URL: https://codereview.chromium.org//472303002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39296 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-15 15:44:31 +00:00
vegorov@google.com
2b42387699
Switch to a fix-point based range analysis to improve its precision.
...
Dominator based algorithm was very imprecise for loop phis.
Use widening to ensure fast convergence and narrowing to improve precision.
BUG=
R=fschneider@google.com
Review URL: https://codereview.chromium.org//470413002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39293 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-15 15:29:31 +00:00
fschneider@google.com
b0a1da2971
Fix bugs from my last CL in intrinsics code.
...
x64 and ARM64: No PP register is set up in intrinsics code (use kNoPP instead)
x64: Can't use near jump for slow-path jump because of code size.
Removed duplicate call to update allocation stats on all platforms.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//478653002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39289 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-15 14:06:04 +00:00
fschneider@google.com
6fe6eb46be
VM: Small cleanup in optimizer and intrinsics code.
...
1. Use macro-assembler instructions for allocation in intrinsics.
2. Refactor two helpers in the optimizer that are almost identical.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//475763002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39287 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-15 12:52:51 +00:00
rmacnak@google.com
ccf8156e82
Fix clang compilation error in jscre.
...
../../dart/runtime/third_party/jscre/pcre_internal.h:412:5: error: implicit conversion of NULL constant to 'int' [-Werror,-Wnull-conversion]
ASSERT(isBracketStartOpcode(*opcodePtr) || *opcodePtr == OP_ALT);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../dart/runtime/third_party/jscre/pcre_internal.h:86:72: note: expanded from macro 'ASSERT'
#define ASSERT(x) if (!(x)) *(reinterpret_cast<volatile int*>(NULL)) = NULL
BUG=http://dartbug.com/19324
R=iposva@google.com
Review URL: https://codereview.chromium.org//469423004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39276 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-14 23:19:05 +00:00
johnmccutchan@google.com
1fdd5af122
Update path to Observatory in HACKING.txt
...
BUG=
R=koda@google.com
Review URL: https://codereview.chromium.org//474083002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39273 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-14 22:42:52 +00:00
asiva@google.com
bf9906cf51
Revert r39246 which reverted r39101
...
R=koda@google.com
Review URL: https://codereview.chromium.org//474073002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39272 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-14 22:06:54 +00:00
asiva@google.com
98c5d02664
Ensure that hash for a symbol is not set to 0 when it is made external.
...
R=iposva@google.com
Review URL: https://codereview.chromium.org//474033002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39268 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-14 21:17:40 +00:00
regis@google.com
1d9986e5f5
Use class id directly in snapshot reader and avoid object store access.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//465403003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39265 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-14 20:54:16 +00:00
johnmccutchan@google.com
e182b3b5a9
Fix build by adding missing methods for MIPS
...
BUG=
Review URL: https://codereview.chromium.org//470303002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39261 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-14 18:35:24 +00:00
johnmccutchan@google.com
342e5c8e35
Inline Int32x4 constructor
...
(avoids a runtime call for every websocket message in dart:io)
R=srdjan@google.com , zra@google.com
Review URL: https://codereview.chromium.org//475563002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39255 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-14 17:27:49 +00:00
zra@google.com
5d3f4708ec
Fixes to support ARMv5 lego mindstorm.
...
1. Deopts on division when neither vfp nor idiv are present.
In a subsequent CL, I can add a leaf runtime call for this.
2. Uses a different PC read offset in STR and STM instructions.
On ARMv5 and earlier, the PC read offset is 8 except in STR
and STM instructions, where it is implementation defined. On
lego mindstorm it is 12. This requires changing
kEntryPointToPcMarkerOffset to be a function.
3. Uses a dummy struct to compute the size of a compressed
pc descriptor to avoid alignment issues. sizeof(PcDescriptorRec)
is 16 on ia32 and arm. Subtracting sizeof(int16_t) gives 14,
which creates alignment problems on ARM, i.e. poor performance on
ARMv6 and later, and wrong results on ARMv5 and earlier.
R=regis@google.com
Review URL: https://codereview.chromium.org//467103005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39250 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-14 15:42:00 +00:00
ricow@google.com
c92b022598
Revert revision 39101 "Avoid linear search for function lookup."
...
This is causing breakage of the pop pop win sample.
For details see issue 20517
This revert had a minor merge conflict for a todo comment
R=kasperl@google.com
Review URL: https://codereview.chromium.org//471843003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39246 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-14 12:39:07 +00:00
iposva@google.com
2a15350ce5
- Fix Windows standalone build again.
...
Review URL: https://codereview.chromium.org//473783002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39239 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-14 05:13:55 +00:00
iposva@google.com
e57e60c300
Fix Windows Dartium build:
...
- Cannot access dart::bin::* from Dartium build.
Review URL: https://codereview.chromium.org//473763002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39238 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-14 05:00:37 +00:00
iposva@google.com
44acd04e33
- Make sure static in bin/ is initialized.
...
Review URL: https://codereview.chromium.org//469993002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39234 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-14 00:23:42 +00:00
iposva@google.com
5a383e7add
- Make sure that the threads for dart::bin are in the correct namespace.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//471743002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39233 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-14 00:06:04 +00:00
regis@google.com
861f4a57d9
Add support for TypedData in full snapshot.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//468423002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39232 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-13 23:21:50 +00:00
koda@google.com
cc2b9ab0c4
Use function names as service IDs, rather than indices.
...
This gives more descriptive ids and removes dependency on implementation details of Class.
Special kinds of functions still use indices and oddballs still fall back to the object ring.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//466183002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39217 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-13 19:59:15 +00:00
zra@google.com
f82d4e2b7f
Fixes typo in mips causing test failures.
...
Review URL: https://codereview.chromium.org//475503002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39216 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-13 19:36:18 +00:00
zra@google.com
88ca926b7e
Adds pthread.h include to fix Android build.
...
R=srdjan@google.com
Review URL: https://codereview.chromium.org//471653002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39212 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-13 18:18:47 +00:00
koda@google.com
13f2772897
Remove unintentionally added symlink.
...
BUG=dart:20489
Review URL: https://codereview.chromium.org//468263002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39209 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-13 17:40:24 +00:00
mlippautz@google.com
8285db5d29
Fix call to completer for async closures.
...
Addressing comments from https://codereview.chromium.org/460763002/
BUG=
R=srdjan@google.com
Review URL: https://codereview.chromium.org//467323002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39207 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-13 17:14:44 +00:00
srdjan@google.com
5d27559bd4
Fix issue 20476: creating multiple LocalVariables with same name (finally_ret_val35), confuses the compiler. token_pos is not enough to guarantee unique name for inlined finally-s. Instead of uniques names per inlined return node, use one function level local.
...
R=fschneider@google.com
Review URL: https://codereview.chromium.org//467933002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39206 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-13 17:03:49 +00:00
koda@google.com
5ca1d8a984
Skip Observatory tests on dart2dart.
...
BUG=dart:20487
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//468143002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39205 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-13 16:57:04 +00:00
fschneider@google.com
36c848d1d7
VM: Optimized context allocation on all platforms.
...
This change generate inline code for context allocation and makes
the stores to initialize the parent pointer and the context variables
explicit in the optimized flow graph. This allows dead store elimination
to eliminate those stores.
Before, we only had inlined context allocation for ia32.
Furthermore:
* Added an assertion that the exit label of slow-path code
is bound when emitting deferred code. This used to cause random crashes
if forgotten.
* Fixed a bug in allocation stats on ARM.
BUG=dartbug.com/17238
R=srdjan@google.com
Review URL: https://codereview.chromium.org//346823003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39202 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-13 15:49:01 +00:00
fschneider@google.com
881060b433
Fix type propagation for signature classes.
...
After I enabled nullability tracking for checked mode type assertions,
we need to fix type propagation for signature classes: We can't use
the asserted type to infer a cid for those since it may cause unnecessary
deoptimizations.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//465343002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39197 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-13 13:45:01 +00:00
fschneider@google.com
54a7410866
Fix bug with CHA dependencies by recording a set of classes for registering code.
...
CHA is not only used with the receiver class, but also with other classes
when doing type propagation. The optimized code has to be registered with
all classes that are affected by CHA so that deoptimization occurs whenever
the set of subclasses changes for these classes.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//463103002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39194 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-13 12:43:03 +00:00