Commit graph

6670 commits

Author SHA1 Message Date
koda@google.com 2d67774537 Avoid redundant allocation of accessor names.
Support prefixed lookup in symbol table.
Startup new gen usage after "hello world" startup is reduced by ~15%.

R=iposva@google.com

Review URL: https://codereview.chromium.org//442483002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38884 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-04 23:04:52 +00:00
whesse@google.com 19beb61abc Update mips test status.
R=ricow@google.com

Review URL: https://codereview.chromium.org//439283002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38861 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-04 15:19:10 +00:00
lrn@google.com ca66944f5a Performance tweak on int.parse.
Slower for strings with trailing, but no leading,
whitespace, but significantly faster for strings with no whitespace,
which is presumed to be the most common case.

R=floitsch@google.com, srdjan@google.com

Review URL: https://codereview.chromium.org//398813002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38848 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-04 07:56:18 +00:00
rmacnak@google.com e803f27641 Make Dart_LoadLibrary and Dart_LoadSource take line and column offsets like Dart_LoadScript.
BUG=http://dartbug.com/13460
R=hausner@google.com

Review URL: https://codereview.chromium.org//429013002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38801 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-31 21:25:23 +00:00
hausner@google.com 4258c115b4 Handle load errors in deferred code
IO errors on the URL of a deferred library are forwarded to the Future
that handles the deferred load. Syntax errors and finalization errors
are lethal, killing the isolate.

Review URL: https://codereview.chromium.org//419103003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38800 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-31 21:09:33 +00:00
koda@google.com 50bb605a6a Handle-like interface for HashTable.
A combination of two independent interface changes:
1. Constructor takes a RawArray* and allocates its own Array handle.
2. Release provides access to the entire handle, rather than just the raw.

This results in a very clean usage pattern, like:
  FooTable table(get_foo_table());
  table.Insert(obj);
  ...
  set_foo_table(table.Release());

Having the isolate inside HashTable also allows faster allocation of temporary handles.

R=iposva@google.com

Review URL: https://codereview.chromium.org//428273002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38794 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-31 19:50:23 +00:00
johnmccutchan@google.com 2e59674838 Initial backend for metrics in Observatory.
Two types of metrics:

* Counter - a measured value
* Gauge - A measured value with a min and max

Follow up CLs for the backend:

* Support for internal VM metrics (implemented in C++ but visible over the service).

Follow up CLs for the frontend:

* Query list of metrics
* Get latest value of a metric
* Collect values over time and graph them.

I'd like some feedback on the API and the data reported.

R=koda@google.com

Review URL: https://codereview.chromium.org//409213004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38793 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-31 18:27:38 +00:00
iposva@google.com b70da362b9 - Make sure to be able to deal with unaligned snapshot buffers
for length and kind.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//417093005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38759 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-30 22:52:08 +00:00
srdjan@google.com 00891583b0 Minor cleanup: remove unnecessary argument.
R=regis@google.com

Review URL: https://codereview.chromium.org//422893003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38758 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-30 22:50:38 +00:00
mlippautz@google.com 6dd6e6343b Fix usage of empty array while parsing array literals.
BUG=
R=srdjan@google.com

Review URL: https://codereview.chromium.org//430873002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38738 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-30 17:19:57 +00:00
srdjan@google.com 43832bf84f Remove flag enable_debugger as current debugging code has a very minor influence on unoptimzied code performance.
R=hausner@google.com

Review URL: https://codereview.chromium.org//426083004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38737 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-30 16:32:04 +00:00
mlippautz@google.com 0e5fd6081a Resize async function modifier bits
BUG=
R=iposva@google.com

Review URL: https://codereview.chromium.org//425163002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38717 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-30 00:27:23 +00:00
mlippautz@google.com 47c8f8b3e2 Reland transformation of async functions.
Reland https://codereview.chromium.org/362153002/

Additions:
 * Fixes for parsing async "keyword".
 * Further tests.

BUG=
R=hausner@google.com

Review URL: https://codereview.chromium.org//423213005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38715 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-29 23:50:33 +00:00
johnmccutchan@google.com ae9b2a9dd5 Add build configuration variable 'c_frame_pointers' to control whether or not frame pointers are included and which stack walker the profiler uses.
BUG=
R=iposva@google.com

Review URL: https://codereview.chromium.org//414303004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38711 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-29 22:48:57 +00:00
koda@google.com 3ddcda9ab8 Reimplement Symbols using hash table template.
In the process, add hash table support for materializing an Object key from a lookup key on demand.

Also use this to simplify CompressedTokenStream.

R=iposva@google.com

Review URL: https://codereview.chromium.org//397413002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38710 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-29 22:47:56 +00:00
srdjan@google.com 77538d6abe Use (more) xor on FP register to load it with 0.0.
R=regis@google.com

Review URL: https://codereview.chromium.org//425083003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38706 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-29 22:11:35 +00:00
iposva@google.com f34efcd2a2 - Force growth when allocating objects from a snapshot.
- Remove unused Code::ObjectExistsInArea.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//423193003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38698 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-29 20:56:26 +00:00
mlippautz@google.com be3e426f27 Revert async changes.
Revert "Transform functions marked as async"
This reverts commit 79cbaaf60143babcb29bb0ed74a0da87fd998c39.

Revert "Fix snapshot test"
This reverts commit ee892aa105daccc74c734eb18934814b76a415bb.

BUG=

Review URL: https://codereview.chromium.org//428993002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38690 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-29 18:42:53 +00:00
turnidge@google.com 57a043903c Remove stray debug output.
R=koda@google.com

Review URL: https://codereview.chromium.org//426993003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38682 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-29 17:33:21 +00:00
mlippautz@google.com dfc33496a4 Transform functions marked as async
In a nutshell:

  foo(params) async { <body> return result; }

transforms to

  foo(params) async {
    var c = new Completer();
    var async_body = () { <body> completer.complete(result); }
    new Future(async_body);
    return c.future;
  }

BUG=
R=hausner@google.com

Review URL: https://codereview.chromium.org//362153002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38681 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-29 17:16:00 +00:00
ajohnsen@google.com d3e183b91a Be sure we don't delete a ClientSocket, until 'connect' is completed.
BUG=

Review URL: https://codereview.chromium.org//426923003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38671 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-29 13:40:51 +00:00
ajohnsen@google.com 1984326985 In Socket:connect, start connecting to next address, after 250 (25 for loopback).
BUG=https://code.google.com/p/dart/issues/detail?id=19871
R=whesse@google.com

Review URL: https://codereview.chromium.org//429543002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38662 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-29 11:26:49 +00:00
ajohnsen@google.com 343ee141f2 Don't print errors to stderr in socket_*.
BUG=https://code.google.com/p/dart/issues/detail?id=20070
R=ricow@google.com

Review URL: https://codereview.chromium.org//426833004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38660 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-29 07:13:58 +00:00
koda@google.com 1efe114f05 Enable using the service library from dart:io applications.
Handle WebSocket differences between dart:html and dart:io.
Create simple command-line shell as an example.
This will enable standalone unit tests that use the service library.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//428613002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38655 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-29 00:44:28 +00:00
turnidge@google.com 7595f9e69e Add breakpoints and single-stepping to Observatory.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//381383010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38654 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-28 23:08:47 +00:00
srdjan@google.com 79f2ca4896 Fix issue 20190: Mark Uint32/Int32 typed data load to produce a Mint always on 32-bit architectures, but also to have a deopt_id associates in case we may be able to optimize it to allow Smi as result. No deopt-id needs to be provided/allocated on 64-bit architectures.
R=vegorov@google.com

Review URL: https://codereview.chromium.org//414163003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38635 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-28 18:11:54 +00:00
ajohnsen@google.com f560436366 Fix two other issues, with my previous commit.
BUG=

Review URL: https://codereview.chromium.org//425733002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38619 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-28 13:12:22 +00:00
ajohnsen@google.com d56b11bf59 Compute absolute script path at isolate startup.
BUG=https://code.google.com/p/dart/issues/detail?id=20119
R=whesse@google.com

Review URL: https://codereview.chromium.org//423843002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38616 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-28 12:31:29 +00:00
ajohnsen@google.com d481c8b61c Start accepting incoming sockets earlier on Windows, to associate a at AcceptEx error to 'ServerSocket.bind'.
Note that I have not been able to reproduce the error, thus no test is added for this case.

BUG=http://code.google.com/p/dart/issues/detail?id=19815
R=whesse@google.com

Review URL: https://codereview.chromium.org//426613002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38606 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-28 11:36:35 +00:00
whesse@google.com 000f84c16d Remove new check that crashes on android.
Check was added in r38499

BUG=dartbug.com/20181
R=ricow@google.com

Review URL: https://codereview.chromium.org//424693002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38603 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-28 09:15:55 +00:00
koda@google.com 1cdcb12b4e Add VM class for Map/LinkedHashMap.
Introduces a new internal class for the most common case, the default Map.

Passes all functionality tests.
Slow: Dart side simply calls into runtime for now.
Hidden behind "--use_internal_hash_map".

Add copies of hash map tests to exercise this implementation.

R=asiva@google.com

Review URL: https://codereview.chromium.org//380333002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38588 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-25 20:04:11 +00:00
rmacnak@google.com 9c2b650c15 Increase the size of the getter/setter closure caches.
TBR=asiva@google.com
BUG=http://dartbug.com/20196

Review URL: https://codereview.chromium.org//416283002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38568 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-25 00:55:52 +00:00
vegorov@google.com 36cddbd749 Use shorter TryAllocate instruction sequence on ARM/ARM64/MIPS.
On these architectures it's preferable to load Scavenger address into the register and then access top/end fields through this register instead of loading addresses of those fields as immediates --- which takes either two instructions or a memory load through a pool pointer.

Cleanup boxing slow-paths in the optimizing compiler. We had tons of duplicated code that was essentially doing the same thing.

BUG=
R=johnmccutchan@google.com, regis@google.com

Review URL: https://codereview.chromium.org//410333003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38539 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-24 12:04:21 +00:00
johnmccutchan@google.com 6f0b2bb2a9 Profiler tweaks
* Rename Script tag to Dart tag.
* Respect ignore bit on samples.
* Mark samples collected with an exit frame.
* Don't give exclusive CPU ticks to top frame on samples collected from an exit frame (because CPU usage is in the native code we've called out to not the function waiting to return).

R=asiva@google.com

Review URL: https://codereview.chromium.org//418433002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38522 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-23 21:09:25 +00:00
asiva@google.com d63cc843b6 Fix invalid handle scope error when Dart_IsClosure is used.
dart/runtime/vm/handles_impl.h:98: error: expected: isolate->top_handle_scope() != NULL

R=srdjan@google.com

Review URL: https://codereview.chromium.org//416663003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38520 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-23 20:32:07 +00:00
asiva@google.com bba79810d5 Fix for the load error that is happening with dart_no_snapshot.
R=hausner@google.com

Review URL: https://codereview.chromium.org//411793003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38519 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-23 20:31:23 +00:00
iposva@google.com ced3bc242c - Fix build.
Review URL: https://codereview.chromium.org//413723002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38503 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-23 14:43:36 +00:00
iposva@google.com 28c8553cb6 - Fix a lot of warnings generated by -Wshorten-64-to-32
when compiling for ia32 on Mac.

R=vegorov@google.com

Review URL: https://codereview.chromium.org//415513002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38499 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-23 14:10:13 +00:00
zra@google.com b73310c2c2 Adds intrinsics for Float64Array [] and []=.
Improves performance in unoptimized code.

R=regis@google.com, srdjan@google.com

Review URL: https://codereview.chromium.org//408373002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38483 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-22 23:16:07 +00:00
asiva@google.com e921f8c416 Fix dartium build break.
R=hausner@google.com

Review URL: https://codereview.chromium.org//407073005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38479 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-22 22:45:38 +00:00
johnmccutchan@google.com 2abbaca938 Add Dart stack walker that relies on frame pointers.
* It is used only when we don't have a top exit frame and we have the script tag set.
* Steps across exit frames and only collects Dart frames.

R=asiva@google.com

Review URL: https://codereview.chromium.org//408663004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38475 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-22 21:08:22 +00:00
asiva@google.com 97b903c665 Fix for issue 19817
- do not try to finalize classes on every Dart API call which could
  potentially result in calls to dart code
- Invoke Dart_FinalizeLoading after all loads are done to ensure that
  classes are finalized

R=hausner@google.com

Review URL: https://codereview.chromium.org//411633002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38471 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-22 20:08:15 +00:00
regis@google.com 7800e258ca Finalize the redirection type of a redirecting factory when the class of the
factory is finalized.

R=asiva@google.com

Review URL: https://codereview.chromium.org//412543003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38468 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-22 18:17:24 +00:00
srdjan@google.com 32e259a8af In code comments print also deopt reason for deoptimization stubs.
R=zra@google.com

Review URL: https://codereview.chromium.org//409183003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38467 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-22 18:16:22 +00:00
asiva@google.com a8195aeb5c Change the Dart API call Dart_FInalizeLoading to accept an additional argument
which makes completion of deferred library futures optional.

R=hausner@google.com

Review URL: https://codereview.chromium.org//407143004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38463 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-22 16:56:14 +00:00
koda@google.com aca839c54f Allocate fewer empty arrays.
Use VM isolate's canonical, untyped, empty array when possible.

Takes Dart2JS benchmark from ~9000 empty arrays to ~200.

R=asiva@google.com

Review URL: https://codereview.chromium.org//381483002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38435 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-21 16:41:05 +00:00
srdjan@google.com 599da188a7 Small tuning of unboxing heuristic.
Review URL: https://codereview.chromium.org//403043002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38414 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-18 22:42:28 +00:00
johnmccutchan@google.com 98a959ff35 Really fix the build
BUG=

Review URL: https://codereview.chromium.org//408493004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38412 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-18 21:11:45 +00:00
johnmccutchan@google.com 597caa1754 Fix build breakage introduced in r38409
BUG=

Review URL: https://codereview.chromium.org//403003003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38411 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-18 21:04:36 +00:00
johnmccutchan@google.com 86bf7bb898 Profiler cleanup
BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org//397163002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38409 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-18 20:55:24 +00:00