Commit Graph

15405 Commits

Author SHA1 Message Date
sgjesse@google.com 9f2a6f06a0 Fix HTTP client eviction timer bug
The HTTP client eviction timer should only be cancled and nulled out
when there are no client connections at all.

R=whesse@google.com

BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9404 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-04 12:27:35 +00:00
fschneider@google.com 767b5d4439 Add support for fixed parameters in SSA builder and fix a bug in the pre-order graph traversal.
Each fixed parameter is initially defined by a ParameterInstr as definition. This
definition is not in the instruction stream, but just in the initial environment
at the graph entry so that the live range of all parameters start at the same point.

The pre-order spanning tree was computed in the wrong way which caused test failures
when building SSA because renaming relies on the dominator tree which depends on
the preorder spanning tree.

Also change the IL printing functions to be more compatible with the visualizer tool.
Review URL: https://chromiumcodereview.appspot.com//10735002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9391 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-04 10:24:19 +00:00
regis@google.com 09d3ecf285 Compile an instance setter call when a static getter is declared, but no field
or static setter are declared (issue 3941).
Add test.
Review URL: https://chromiumcodereview.appspot.com//10689083

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9376 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-03 20:40:02 +00:00
fschneider@google.com 3dcdc79ffe Add deoptimization environments to instructions.
Each instruction that can deoptimize need to have the values of the
non-optimizing code as uses. The values are stored in an environment
(GrowableArray<Value*>) attached to the instruction when constructing
SSA form.

For now every instructions gets a deoptimization environment. It contains
the values of all locals, parameters and expression stack elements at
the start of the instruction.

The environment is not used yet, but can be printed in the flow graph
with the flag --print-environments.
Review URL: https://chromiumcodereview.appspot.com//10696090

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9345 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-03 12:54:03 +00:00
whesse@google.com d05e40212a IO: Fix error in Process exit handling.
BUG=3639
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9336 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-03 10:16:25 +00:00
vegorov@google.com 2935029239 Implement ActivationFrame::GetLocalVarValue on x64.
R=iposva@google.com
BUG=3961
TEST=Debug_ExprClosureBreakpoint

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9334 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-03 09:31:44 +00:00
fschneider@google.com bece5d05c8 Fix a bug in SSA renaming introduced when using the RemoveFromGraph helper for removing instructions.
The helper function RemoveFromGraph resets previous and next instruction pointers to NULL
when deleting an instruction.

I changed it to return the successor of the removed instruction so that the function is
more convenient to use while iterating over the list of instructions.
Review URL: https://chromiumcodereview.appspot.com//10692072

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9332 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-03 08:35:00 +00:00
iposva@google.com 65d96de4e8 - Separate store buffer data in the isolate into the StoreBufferBlock and
the actual StoreBuffer.
- Add a HashSet class to use for the StoreBuffer data.
- Fix allocation sites for definite old objects.
- Remove obsolete leaf runtime entry StoreBuffer.
Review URL: https://chromiumcodereview.appspot.com//10702067

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9323 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-03 00:10:23 +00:00
regis@google.com d95cbc8d7f Use VM type cast and save handles.
Review URL: https://chromiumcodereview.appspot.com//10693071

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9317 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-02 21:42:53 +00:00
fschneider@google.com eba7136e7b Make IL instructions a doubly-linked list within basic blocks.
In order to be able to efficiently iterate backwards over instructions
and removing or replacing instructions in the graph we want them to
be a double-linked list inside basic blocks. The list has the following

1. Block entry instructions do not have a previous instruction.
2. The last instruction in a block may or may not have a next instruction:
   - Branches have a NULL-successor.
   - Normal block exits have a block entry instructions as successor.

This CL also makes the accessor for previous and next instruction in this
list non-virtual. This avoidis the current code duplication there.
Review URL: https://chromiumcodereview.appspot.com//10665022

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9297 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-02 16:08:58 +00:00
fschneider@google.com 31dfb3d8da Fix bailing out of SSA compilation and enable --use-ssa on x64 by default.
We need to re-parse the function when retrying compilation after bailing out
because of the side-effects to the AST (break-, continue-labels).

To improve test coverage I'm enbabling building of SSA on x64 now.
Review URL: https://chromiumcodereview.appspot.com//10694053

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9291 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-02 15:41:37 +00:00
ager@google.com 485bf8d10b Deal with special cmd.exe environment variables that have keys that start with an equals sign.
I have attempted to deal with them correctly instead of ignoring
them so that they can be passed on unchanged to subprocesses.

R=johnniwinther@google.com
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9284 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-02 10:58:24 +00:00
ager@google.com 52230ca22b Support posting of external data into dart as external uint8 arrays through the Dart API.
The native ports use the snapshot reader to create the dart objects. Added support for reading external arrays from snapshots but no support for writing them. The only way an external array is written to a snapshot is through the api message writer.

This allows dart:io to avoid one copy of data read from files and sockets. This change only contains one use of the new API.

R=asiva@google.com,iposva@google.com
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9281 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-02 07:22:32 +00:00
hausner@google.com 11d2c19fc4 Make sure breakpoints are enabled
With my previous checkin it became possible that internal
code breakpoints became disabled. Now make sure that when
one of these breakpoints is re-used, it becomes enabled.
Review URL: https://chromiumcodereview.appspot.com//10690053

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9265 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-29 20:39:48 +00:00
cshapiro@google.com d0ce05d8b7 Enhance raw object validation check and enable checks in release builds.
BUG=3866

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9262 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-29 20:23:26 +00:00
hausner@google.com c4280b8b89 Fix Dart_RemoveBreakpoint
The debugger code assumed that breakpoints can only be removed
while the debugger is paused. That is not true. An embedder can
remove breakpoints while the isolate is idle and running any
Dart code.

Fix for issue 3781 (http://dartbug.com/3781)
Review URL: https://chromiumcodereview.appspot.com//10698051

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9258 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-29 18:24:35 +00:00
fschneider@google.com da315f478e Revert r9253 because of dartium test failures
TBR=vegorov
Review URL: https://chromiumcodereview.appspot.com//10693048

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9256 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-29 17:27:12 +00:00
fschneider@google.com 6e4bc9fb91 Add a goto instruction to the IL use it to terminate basic blocks.
Having an explicit control instruction at the end of each
basic block allows to easily remove instructions inside
a block because the last_instruction pointer can not change.
Review URL: https://chromiumcodereview.appspot.com//10700034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9253 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-29 16:31:37 +00:00
ager@google.com f791a12b38 Terminate event handler thread on isolate shutdown.
R=sgjesse@google.com
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9251 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-29 14:40:17 +00:00
hausner@google.com d9ba32f258 Support for lists in debugger wire protocol
Review URL: https://chromiumcodereview.appspot.com//10698039

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9235 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-29 00:52:51 +00:00
turnidge@google.com a45c6255ba Add Dart_CurrentIsolateData().
Review URL: https://chromiumcodereview.appspot.com//10690027

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9228 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-28 21:28:12 +00:00
regis@google.com c0bd7c81dd Introduce a VM type cast to avoid repeating a type test and spare a handle.
Review URL: https://chromiumcodereview.appspot.com//10713008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9226 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-28 21:12:06 +00:00
turnidge@google.com ac6dc9ecb5 Increase the iteration count for the UseDartApi benchmark.
Review URL: https://chromiumcodereview.appspot.com//10693034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9223 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-28 21:04:58 +00:00
turnidge@google.com 3f940819a7 Add a callback to inform embedders when an isolate is being shut down.
Review URL: https://chromiumcodereview.appspot.com//10450016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9211 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-28 18:15:17 +00:00
turnidge@google.com 376000a1dd Add a unit test which exercises using Dart_LoadSource to load a "late"
source file.  Seems to work...
Review URL: https://chromiumcodereview.appspot.com//10659015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9210 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-28 17:56:26 +00:00
iposva@google.com c26489d34d - Skip old objects early while scavenging.
Review URL: https://chromiumcodereview.appspot.com//10696022

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9197 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-28 05:00:49 +00:00
hausner@google.com 7a10c09bfb Include variable names with _
Include local variables that begin with _.
Review URL: https://chromiumcodereview.appspot.com//10697011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9189 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-27 21:36:42 +00:00
regis@google.com 1036a3888f Consider upper bounds of type parameters in type checks.
Fix pointer visiting in TypeParameter.
Make TypeParameter::index() non-virtual.
Review URL: https://chromiumcodereview.appspot.com//10696013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9188 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-27 20:08:30 +00:00
hausner@google.com 86b00700aa Add a platform-independent max uword value.
Review URL: https://chromiumcodereview.appspot.com//10695009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9181 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-27 17:24:41 +00:00
hausner@google.com 0300423892 Write once debug everywhere
Review URL: https://chromiumcodereview.appspot.com//10696009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9177 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-27 16:25:11 +00:00
hausner@google.com 3aedbb74e8 Better breakpoint placement
Instead of using token distance to find the first possible breakpoint
position in a line, use generated code address, so the debugger
breaks before the first call on a source line.

Fix issue 3653 
http://code.google.com/p/dart/issues/detail?id=3318
Review URL: https://chromiumcodereview.appspot.com//10686003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9176 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-27 16:13:49 +00:00
iposva@google.com 541a166410 - Premark vm_isolate objects to avoid having to test for them
during marking.
Review URL: https://chromiumcodereview.appspot.com//10675010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9143 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-27 00:08:03 +00:00
regis@google.com 8997078334 Remove old code generator.
Review URL: https://chromiumcodereview.appspot.com//10665038

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9122 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-26 17:43:44 +00:00
hausner@google.com fbeaabda52 Debugger support to display global variables
- Add library id to ActivationFrame
- Add debugger function to get all global variables visible in
  a library (including imported variables).
- Add LibraryPrefixIterator
- Fix Dart_GetLibraryImports
Review URL: https://chromiumcodereview.appspot.com//10657048

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9121 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-26 17:32:34 +00:00
whesse@google.com 0b2a9d5270 Make Path implement (extend) Hashable, and make Path.append to an empty path work right.
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9110 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-26 14:24:48 +00:00
vegorov@google.com 30288c500e Fix a bug in liveness analysis code and add more comments.
R=fschneider@google.com
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9106 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-26 12:14:02 +00:00
asiva@google.com 9e6f43e6e3 Prepare for writing token streams directly into a snapshot and reading it directly from the snapshot using memmove.
Review URL: https://chromiumcodereview.appspot.com//10665035

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9098 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-26 00:18:14 +00:00
srdjan@google.com 79cf5eb293 Forgot to save file, missed changed comment.
Review URL: https://chromiumcodereview.appspot.com//10662034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9096 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 23:54:05 +00:00
srdjan@google.com a799978f11 Recognize leaf functions: skip stack check and populating the pc slot, store the pc slot lazily in case of deoptimization.
Review URL: https://chromiumcodereview.appspot.com//10668034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9095 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 23:50:37 +00:00
iposva@google.com a5cce32a8d - Fix sorting.
Review URL: https://chromiumcodereview.appspot.com//10661046

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9092 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 23:20:31 +00:00
iposva@google.com da8c641cc4 - Sort sources in gyp files.
Review URL: https://chromiumcodereview.appspot.com//10663029

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9091 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 23:05:42 +00:00
regis@google.com 6ac43401e1 Minimize differences between ia32 and x64 sources to facilitate maintenance.
Review URL: https://chromiumcodereview.appspot.com//10636038

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9089 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 22:25:21 +00:00
srdjan@google.com 7508deeeab Intrinsify fixed and growable array allocation on x64.
Review URL: https://chromiumcodereview.appspot.com//10657012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9075 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 18:13:33 +00:00
asiva@google.com f05e3736d8 Fix issue 1968, replace usage of inline 'asm' constructs in 'stack alignment', 'jump to exception handler' and 'jump to error handler' code with calls to appropriate stubs.
Review URL: https://chromiumcodereview.appspot.com//10664004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9071 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 17:35:20 +00:00
regis@google.com 0532a90a2f Implement type cast in the VM.
Review URL: https://chromiumcodereview.appspot.com//10659005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9070 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 17:23:11 +00:00
vegorov@google.com 2f23dc4b60 Simple iterative liveness analysis over SSA.
R=fschneider@google.com
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9069 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 17:07:16 +00:00
hausner@google.com 0b403430bf Fix parent function of deeply nested closures
We got the parent of nested closures wrong if the nesting level
was > 2.

Fix for issue 3412.
Review URL: https://chromiumcodereview.appspot.com//10665009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9065 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 15:43:04 +00:00
ager@google.com b876387df2 Remove reference to non-existing classes from encodings class comment.
R=whesse@google.com
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9060 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 12:10:02 +00:00
iposva@google.com cccf112d1e - Document the store barrier.
Review URL: https://chromiumcodereview.appspot.com//10658008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9051 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-23 00:17:25 +00:00
iposva@google.com d4bd618e75 - Fix the x64 store-barrier.
- Allow assembler test drivers to be shared across architectures.
- Add a shared StoreIntoObject assembler test.
Review URL: https://chromiumcodereview.appspot.com//10636017

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9050 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 23:48:51 +00:00