Commit Graph

13143 Commits

Author SHA1 Message Date
regis@google.com 5e99edcea7 Properly set the element type of literal lists.
Add test.
Keep element type consistent between growable array and backing array.
Fix snapshot reader to set the element type in growable array
Remove run time call checking rest argument.
Review URL: https://chromiumcodereview.appspot.com//10368004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7337 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-04 16:36:27 +00:00
hausner@google.com 95be46105a Beginnings of a debugger wire protocol
The debugger wire handler is implemented similarly to the io event handler.
A dedicated thread monitors the debugger port for incoming connection
requests. When a debugger is connected, the VM sends events messages
over the wire and handles debugger requests.

To start the VM with a debugger connection, use the option
--debug:<portnumber>. The VM pauses at the beginning of main()
and waits for a debugger to connect.

Subsequent changes will implement debugger commands one by one.
With this change, the VM only understands "resume" commands. 
Review URL: https://chromiumcodereview.appspot.com//10357003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7330 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-04 15:25:49 +00:00
cshapiro@google.com 3a14326da4 Revert "Implement {Int,Uint}{8,16,32,64} and Float{32,64} typed arrays."
This reverts commit 747dbeaa8f9c0dc1f49d6d6a369c6a3fe2d8b7c9.

Review URL: https://chromiumcodereview.appspot.com//10375007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7313 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-04 05:28:10 +00:00
cshapiro@google.com 537010ea16 Implement {Int,Uint}{8,16,32,64} and Float{32,64} typed arrays.
Internal and external representations of each array are provided.  A
single interface type implementing the ByteArray and List interfaces
is shared among the internal and external implementation type.

Review URL: https://chromiumcodereview.appspot.com//9958046

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7311 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-04 05:12:19 +00:00
srdjan@google.com 2c3cab0603 Removing all incr-op nodes.
Review URL: https://chromiumcodereview.appspot.com//10354019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7305 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-03 22:17:44 +00:00
srdjan@google.com 6fc1247bb6 Using SubtypeTestCache object instead of an array, that way we do not need to patch and can communicate to type tests if there is a cache to update (quicker than looking up code).
Review URL: https://chromiumcodereview.appspot.com//10352012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7304 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-03 22:00:52 +00:00
srdjan@google.com 259d099c6d Step toward eliminating increment nodes, starting with increment local. Fix a bug in evaluating side effect free nodes.
Review URL: https://chromiumcodereview.appspot.com//10350003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7300 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-03 20:27:37 +00:00
floitsch@google.com 410e6bf600 Reapply "Set the TZ env to get the UTC-ms since epoch."
This reapplies a fixed version of commit 7285.

Review URL: https://chromiumcodereview.appspot.com//10359003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7288 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-03 15:40:40 +00:00
floitsch@google.com a8e31e2a48 Revert "Set the TZ env to get the UTC-ms since epoch."
This reverts commit 7285.

Review URL: https://chromiumcodereview.appspot.com//10354011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7287 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-03 14:54:09 +00:00
floitsch@google.com 9cf8b9a36d Set the TZ env to get the UTC-ms since epoch.
Previously we tried to simply subtract the timezone difference from
the local value. Apparently this doesn't work...

Fixes issue 1268.

Review URL: https://chromiumcodereview.appspot.com//9969098

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7285 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-03 14:46:21 +00:00
kmillikin@google.com bf52684184 Automatically assign temporary indices to definitions in the IL.
When added to the graph, automatically assign a temporary index (== stack
height) to definitions.

R=srdjan@google.com
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com//10316005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7269 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-03 08:46:10 +00:00
cshapiro@google.com 7ac663acc8 Fix two semantic errors from my previous check-in.
TBR=asiva

Review URL: https://chromiumcodereview.appspot.com//10343010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7261 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-02 22:48:02 +00:00
cshapiro@google.com 3a40c3eec6 Do not externalize Dart strings as C strings for "print()".
Dart strings with embedded '\0' characters cannot be faithfully
represented as a C string.

This change adds Dart_StringToBytes to the Dart API.  This function
converts a Dart string to array of UTF-8 code units and returns a
length.  Builtin::PrintString now calls Dart_StringToBytes instead of
Dart_StringToCString and, for I/O, fwrite is called instead of fprintf
with the string format specifier.

BUG=1098

Review URL: https://chromiumcodereview.appspot.com//10306002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7260 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-02 22:40:48 +00:00
srdjan@google.com a53d7c1d03 Temporary fix for GrowableArray type arguments: use the type arguments stores in GrowableArray instead of the one in the data container (there is a bug that Regis is fixing where data container is always null). Fix assembly subtype cache lookup lookup.
Review URL: https://chromiumcodereview.appspot.com//10345003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7255 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-02 20:49:46 +00:00
iposva@google.com a59c00c448 - Grow the class table as needed instead of preallocating.
Review URL: https://chromiumcodereview.appspot.com//10311006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7235 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-02 13:22:02 +00:00
regis@google.com 7793191032 Check upper bounds of type arguments when allocating objects of a generic type
at run time when they cannot be checked at compile time.
Review URL: https://chromiumcodereview.appspot.com//10280007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7211 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-02 01:57:22 +00:00
srdjan@google.com 071e9240b9 - Fix another side effect issue: never add AstNode to sequence unless they are a statement. Added tests. LoadLocal has now an optional pseudo input.
Review URL: https://chromiumcodereview.appspot.com//10283003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7210 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-01 23:35:17 +00:00
asiva@google.com cdc9b0cc60 Set up a variable so that the compiler script can be imported using an import map.
Review URL: https://chromiumcodereview.appspot.com//10280003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7208 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-01 22:15:26 +00:00
srdjan@google.com 137c0167e7 Switch from AST node ids to computation ids (cid). In addition to computations, some instructions need it as well (Return, Throw, ReThrow). Currently added to all Instructions and Computations.
Review URL: https://chromiumcodereview.appspot.com//10264031

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7205 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-01 21:23:00 +00:00
srdjan@google.com bfebc9cca3 Merge two functions that create side effect free compound load nodes.
Review URL: https://chromiumcodereview.appspot.com//10272031

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7201 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-01 18:43:57 +00:00
asiva@google.com ea8e3b386d Fix stack pointer reset bug in entry to catch blocks.
Review URL: https://chromiumcodereview.appspot.com//10262033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7200 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-01 18:27:19 +00:00
iposva@google.com 4d3c2b94a2 - Add extra checking when validating objects.
- Properly set the class tags when converting growable arrays
  to fixed length arrays.
- Set the class tag when allocating instantiated type arguments. 
Review URL: https://chromiumcodereview.appspot.com//10271032

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7190 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-01 15:16:02 +00:00
iposva@google.com 3b2781bbc8 - Increase number of classes possible.
Review URL: https://chromiumcodereview.appspot.com//10269026

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7186 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-01 12:54:49 +00:00
iposva@google.com d8c7c1ada6 - Add a class index to the classes.
- Add a class table which assigns individual ids to classes.
Review URL: https://chromiumcodereview.appspot.com//9965042

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7183 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-01 09:20:40 +00:00
kmillikin@google.com ca0668bbbe Materialize all constant operands on the stack in the non-optimizing compiler.
This eliminates the distinction between 'value' and 'argument value'.

R=srdjan@google.com
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com//10264011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7181 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-01 08:59:54 +00:00
asiva@google.com 78c16e4c09 Fix build break.
Review URL: https://chromiumcodereview.appspot.com//10269020

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7176 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-01 01:14:23 +00:00
asiva@google.com f0043a78a7 Added lib/compiler compile all VM benchmark.
Added frame lookup VM benchmark.
Review URL: https://chromiumcodereview.appspot.com//10178030

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7175 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-01 01:00:04 +00:00
srdjan@google.com 3eabbdd7dc Fix wrong order of execution in compound assignment nodes (located by Kevin).
Review URL: https://chromiumcodereview.appspot.com//10270028

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7173 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-01 00:38:02 +00:00
srdjan@google.com 328dadcbbf Fix disassembler crash.
Review URL: https://chromiumcodereview.appspot.com//10272017

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7167 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-30 20:46:51 +00:00
kmillikin@google.com a4466eaf81 Remove some more uses of named temporaries.
Remove all uses of TempVal except those used in expressions with
control flow (&&, ||, and ?:).

R=srdjan@google.com

Review URL: https://chromiumcodereview.appspot.com//10198028

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7144 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-30 08:53:39 +00:00
srdjan@google.com 33b4d35412 Simpler and better inlined type checks as discussed. Changed inline type test cache arrays to contain instance class, instance type argument and instantiator type argument (not yet used).
Review URL: https://chromiumcodereview.appspot.com//10243013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7113 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-28 00:06:37 +00:00
asiva@google.com d4e2aa22eb Changes to allow for -O2 compiles on macos in debug builds.
Review URL: https://chromiumcodereview.appspot.com//10180013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7052 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-27 01:10:10 +00:00
regis@google.com c2f823d92b Support cyclic types and F-bounded quantification (issue 439).
Added tests for F-bounded quantification.
Review URL: https://chromiumcodereview.appspot.com//10243001

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7047 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-26 22:39:27 +00:00
srdjan@google.com 87128e61e5 Inline type check where type argument that we check against is instantiated.
Review URL: https://chromiumcodereview.appspot.com//10134069

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7046 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-26 22:17:53 +00:00
asiva@google.com 09adb99a85 Add a stub_code_space in the heap alongside code_space so that stub code generation happens here and it is easy to determine if a PC is a stub code or not.
This gets rid of the temporary change made in code_generator.cc for fast access to the top dart frame. In addition it will not pollute the pc ==> code cache that I plan to add next as we don't have to store stub pcs in that table.
Review URL: https://chromiumcodereview.appspot.com//10223015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7033 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-26 18:00:53 +00:00
iposva@google.com 843a339045 - Improve marking performance by pre-marking RawInstructions objects,
since they are not currently being collected.
- Update svn:ignore properties.
Review URL: https://chromiumcodereview.appspot.com//10232003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6993 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-26 08:05:41 +00:00
kmillikin@google.com f6171263ea Restructure flow-graph translation of increment operations.
Remove all explicitly named temporaries.  Use the flow-graph builder
visitors to track temporary indexes.

R=srdjan@google.com
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com//10223003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6991 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-26 07:36:39 +00:00
kmillikin@google.com cb03fc4f45 Turn more explicitly named temps into uses of definitions.
R=srdjan@google.com
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com//10228001

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6989 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-26 07:28:43 +00:00
cshapiro@google.com 914bb2a8ff Explicitly initialize Bigint members after uninitialized allocations.
Review URL: https://chromiumcodereview.appspot.com//10230001

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6988 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-26 06:39:35 +00:00
srdjan@google.com f2b894eca2 Fix a typo, caught by windows compiler.
Review URL: https://chromiumcodereview.appspot.com//10161036

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6977 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-25 21:30:19 +00:00
srdjan@google.com 72e21058ee (Redoing the change 6946) Progress toward inlined type checks for classes with type arguments: factor out
code, optimize type arguments of an instance.
Review URL: https://chromiumcodereview.appspot.com//10227006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6975 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-25 21:19:08 +00:00
srdjan@google.com dc17b7338f Canonicalize type arguments lazily.
Review URL: https://chromiumcodereview.appspot.com//10161030

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6973 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-25 20:32:45 +00:00
asiva@google.com e046be3f87 Address perf regression by using the expected frame layout when traversing frames in the code generator. This is a temporary fix until we have a cache to speed up LookupCode.
Review URL: https://chromiumcodereview.appspot.com//10228010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6972 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-25 20:20:29 +00:00
srdjan@google.com be4b479d8b Revert change 6946.
Review URL: https://chromiumcodereview.appspot.com//10191020

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6953 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-25 15:43:44 +00:00
srdjan@google.com b34787b742 Progress toward inlined type checks for classes with type arguments: factor out code, optimize type arguments of an instance.
Review URL: https://chromiumcodereview.appspot.com//10209002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6946 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-25 15:21:40 +00:00
vegorov@google.com aad59d6edb Reland r6578 without changing the order of pages in the PageSpace::pages_ list.
Linking newly allocated pages into the list's head causes popular pages to move further to the end of the list.  This causes slowdown on the debug VM because method PageSpace::Contains has to do more probes for popular objects.

R=iposva@google.com
BUG=2660

Review URL: https://chromiumcodereview.appspot.com//10191014

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6940 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-25 13:37:51 +00:00
kmillikin@google.com 1c7cecee5f Introduce Definition and Use types.
Make Bind and PickTemp into definitions.  Allow values to be uses that
name a definition.  Begin converting all uses of (named) Temp into Use.

R=srdjan@google.com
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com//10201017

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6928 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-25 09:13:33 +00:00
asiva@google.com 3107319e40 Simplify representation of stack frames. Remove the special types DartFrame/StubFrame and instead use StackFrame with methods IsDartFrame and IsStubFrame for frames representing Dart or Stub Code. This eliminates all the complexity that was added to ensure that we always see only one stub frame before hitting a dart frame during iteration.
Fixes bug 6380625 which was another case when we had two stub frames before hitting the dart frame.
Review URL: https://chromiumcodereview.appspot.com//10173008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6920 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-25 01:15:28 +00:00
asiva@google.com 6f4b8bbe78 Move the dart API benchmark to the VM benchmark infrastructure so that it will get run as part of run_vm_tests --benchmarks
Review URL: https://chromiumcodereview.appspot.com//10186008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6918 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-25 00:35:15 +00:00
regis@google.com efa92f5447 Mark types as instantiated or uninstantiated upon finalization.
Review URL: https://chromiumcodereview.appspot.com//10205006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6894 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-24 16:15:37 +00:00