Commit Graph

15405 Commits

Author SHA1 Message Date
srdjan@google.com 4bb866d2f8 Expand ia32 intrinsic for integer modulo, implement it for x64. Next step will be to emit it directly.
Review URL: https://chromiumcodereview.appspot.com//10663006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9048 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 23:28:34 +00:00
cshapiro@google.com 18381ac8d5 Log growth policy decisions when verbose gc is enabled.
This change also rationalizes some use of signed and unsigned types and
corrects the use of time values recorded for analysis.

BUG=3535

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9045 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 21:17:38 +00:00
srdjan@google.com f7a999dc34 Do not issue Mint/Smi code sequence if we have only Smi/Smi comnbination.
Review URL: https://chromiumcodereview.appspot.com//10642026

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9044 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 21:07:03 +00:00
asiva@google.com 5cbd276939 Make the parser agnostic to the TokenStream implementation. This is the first step towards compacting the token stream.
Pull the data stream writer/reader code out of snapshot into a generic file so that it can be reused into the token stream compaction implementation.
Review URL: https://chromiumcodereview.appspot.com//10632009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9043 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 20:37:01 +00:00
srdjan@google.com 8ee92c41d6 Fixed a typo, one more reason to get rid of StrictCompare vs StrictCompareComp distinction.
Review URL: https://chromiumcodereview.appspot.com//10634032

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9039 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 18:28:16 +00:00
whesse@google.com 1bc6b99ce6 Add methods to dart:io Path.
Add .append, which adds a segment to the end of a Path, and
.pathWithoutExtension, which removes the extension (part after .),
from the filename at the end of a path, and returns the new path.

BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9028 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 11:02:49 +00:00
fschneider@google.com 63d4ad7d5f Add new files and data structures for the new register allocator.
This CL adds new files to hold the new register allocator and
adds a parallel-move instructions that will be used to insert
moves for register constraints, spills and phi-resolution.

No new functionality added yet.
Review URL: https://chromiumcodereview.appspot.com//10635020

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9027 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 10:59:06 +00:00
whesse@google.com 015c40188c Add .fromPath constructors to File and Directory.
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9024 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 10:36:20 +00:00
ajohnsen@google.com c0870d4e78 Document the HttpClient uses KeepAlive, keeping sockets open for up to 60 seconds after a connection is complete.
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9017 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 09:13:18 +00:00
iposva@google.com 936e659da1 - Remove extra jumps from store barrier on x64.
Review URL: https://chromiumcodereview.appspot.com//10641018

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9014 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 07:57:11 +00:00
cshapiro@google.com 00b6963338 Fix some warnings in the core library identified by the static analyzer.
This foray uncovered a latent bug in the byte array view constructor and
its use of default arguments.  That bug has been corrected and new tests
have been added to the test suite.

BUG=2136

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9013 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 04:27:57 +00:00
regis@google.com 2262d6e9e3 Minimize differences between ia32 and x64 sources to facilitate maintenance.
Review URL: https://chromiumcodereview.appspot.com//10651008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9012 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 01:24:36 +00:00
asiva@google.com 9126cb7b77 Add pprof symbol generation option to run_vm_tests so that we can use pprof in the vm benchmark framework as well.
Review URL: https://chromiumcodereview.appspot.com//10643003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9011 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 23:33:31 +00:00
asiva@google.com e1fb3a72b1 Fix benchmark script to account for the recent executable directory name change.
Review URL: https://chromiumcodereview.appspot.com//10634018

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9010 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 23:12:42 +00:00
srdjan@google.com 0e445c937e Fix excessive deoptimizations in Meteor: kSHL on two Smi-s can easily overflow, which led to deoptimization. In case of overflow call the IC target directly in case instead of deoptimizing. Necessary only for IA32.
Review URL: https://chromiumcodereview.appspot.com//10632010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9009 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 23:02:30 +00:00
regis@google.com df25e13d4c Improve inlining of bit_and operation for Mint and Smi in new compilers.
Review URL: https://chromiumcodereview.appspot.com//10592028

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8998 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 19:37:15 +00:00
fschneider@google.com da7d212fef Correctly reset global isolate state after bailout from the flow-graph compiler.
This CL fixes a bug where the global ic_data_array was not reset when a bailout happened.
Review URL: https://chromiumcodereview.appspot.com//10636004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8997 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 18:58:23 +00:00
hausner@google.com 7d00d4b2e6 Do not collect stack trace unnecessarily
The debugger collected stack traces on each exception throw
even when the debugger client specifies "no pause on exception".
This fixes the asserts that Anton saw in some tests.
Review URL: https://chromiumcodereview.appspot.com//10645003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8996 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 18:48:20 +00:00
efortuna@google.com f89032cd13 Add dart:web to VM.
Review URL: https://chromiumcodereview.appspot.com//10574037

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8993 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 17:11:02 +00:00
iposva@google.com 0fd25118b9 - Move the Timer interface to the dart:isolate library so that it
is accessible from both client and standalone program.
- Enable a way for the embedder to provide the implementation of
  the Timer interface.
- Update tests.
Review URL: https://chromiumcodereview.appspot.com//10532123

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8987 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 16:17:21 +00:00
srdjan@google.com b8a988924d Switch to the new compiler onIA32, making --use-new-compiler default true on IA32 as well.
Review URL: https://chromiumcodereview.appspot.com//10641002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8986 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 16:14:48 +00:00
iposva@google.com 26cc4ee58b - Remove a few jumps from store barrier code.
Review URL: https://chromiumcodereview.appspot.com//10607002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8959 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 00:52:49 +00:00
srdjan@google.com a48c5b9bb9 Fix bug in inlined Math.sqrt.
Review URL: https://chromiumcodereview.appspot.com//10603004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8958 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 00:43:58 +00:00
hausner@google.com 56bc7ca48a Fix stuff
Fix for issue 3781: don't hang on to deleted breakpoints (manually tested).
Fix for issue 3390: allow function names in all string interpolation expressions.
Review URL: https://chromiumcodereview.appspot.com//10603003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8956 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 00:16:27 +00:00
asiva@google.com 85ae592bc6 - Use NoHandleScope in leaf methods
- have a no parameter constructor for NoHandleScope so that we can use that
  in optimized mode when the Isolate is not available.
Review URL: https://chromiumcodereview.appspot.com//10579035

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8955 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 00:02:55 +00:00
iposva@google.com 5e52657f33 - Implement the filtering store barrier on x64.
Review URL: https://chromiumcodereview.appspot.com//10581049

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8953 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-20 23:48:26 +00:00
srdjan@google.com 5f509dc665 Removing more IC calls in optimized code.
Review URL: https://chromiumcodereview.appspot.com//10572050

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8950 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-20 23:19:02 +00:00
cshapiro@google.com 2f3f42e3dc Check that the C string passed to Dart_NewString is valid UTF-8.
BUG=2663

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8942 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-20 22:09:20 +00:00
iposva@google.com efb7f31053 - Fix the barrier code when low bits of Smi are zeroes.
- Harden the assembler test for StoreIntoObject to test a variety of Smi values.
Review URL: https://chromiumcodereview.appspot.com//10592023

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8939 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-20 20:37:22 +00:00
iposva@google.com dbd08016de - Inline the store buffer update into a stub instead of
calling out into the C++ runtime.
Review URL: https://chromiumcodereview.appspot.com//10578046

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8929 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-20 18:05:51 +00:00
srdjan@google.com 3b0fd96a70 Fuse Comparison->BooleanNegate->Branch.
Review URL: https://chromiumcodereview.appspot.com//10559072

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8914 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-20 16:25:11 +00:00
hausner@google.com 3a7485dfa0 Implement the linux debugger wire protocol.
Platform-dependent code of the Linux version of the debugger wire
protocol.
Review URL: https://chromiumcodereview.appspot.com//10572028

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8913 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-20 16:09:39 +00:00
whesse@google.com c5d1431241 Add Path class to dart:io, add tests for it to standalone/io.
Just a preliminary implementation - make suggestions for changes.

BUG=
TEST=standalone/io/path_test

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8909 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-20 15:21:01 +00:00
floitsch@google.com a51dc25968 Make isUtc a getter, change some method names in Date. Weekday is now 1 based.
isUtc is now a getter.
Date.hours -> Date.hour
Date.minutes -> Date.minute
Date.seconds -> Date.second
Date.milliseconds -> Date.millisecond
Date.fromEpoch -> Date.fromMillisecondsSinceEpoch
Date.value -> Date.millisecondsSinceEpoch
Date.MON == 1 (up to Date.SUN == 7).

Fixes issue 3444, 1985.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8899 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-20 11:43:46 +00:00
fschneider@google.com b42a49f107 Fix a bug in SSA renaming.
This CL changes the order of step 2a and 2b in the SSA renaming: Uses of
LoadLocal/StoreLocal must be renamed first so that the environment is correctly
updated for StoreLocal instructions.

A simple example showing the bug:

test_xy() {
  var x = 1;
  var y = 2;
  var z = 3;
  for (var i = 0; i < 5; i++) {
    y = z = x;
    x++;
  }
  return x + y + z;
}

Also in this change:
- changed the printing of SSA operands to v0, v1, .. instead
of t0, t1 to better distinguish them from non-SSA operands.
- make sure that UseVal are always copied when renaming phi 
input operands. 
Review URL: https://chromiumcodereview.appspot.com//10583014

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8893 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-20 10:08:01 +00:00
asiva@google.com 517cd6e6bb - Fix the type test failure for implicit native closures.
- Turn the test back on.
Review URL: https://chromiumcodereview.appspot.com//10572029

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8885 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-20 02:15:08 +00:00
regis@google.com 24a061c279 Fix type test elimination of function types using static type propagation in
new compiler.
Add test.
Review URL: https://chromiumcodereview.appspot.com//10579033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8884 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-20 01:33:04 +00:00
asiva@google.com 88243dfce2 Rework leaf calls as just simple C calls with a signature and not the NativeArgumentDescriptor.
Review URL: https://chromiumcodereview.appspot.com//10592006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8881 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-19 23:57:40 +00:00
cshapiro@google.com c8a40cbdbf Ensure the ByteArray subtypes are known to implement List.
BUG=3319

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8880 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-19 23:38:05 +00:00
srdjan@google.com 60fa0b27ca More ICData cleanups: try to use ICData instead of converting it to another intermediate representation. This sets the stage for more & simpler optimizations based on collected type feedback.
Review URL: https://chromiumcodereview.appspot.com//10594002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8877 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-19 21:49:11 +00:00
srdjan@google.com 7f8cbb12b7 This is https://chromiumcodereview.appspot.com/10581006/ that I forgot to submit, and messed up the original accidentally. Submitting as TBR
Review URL: https://chromiumcodereview.appspot.com//10580024

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8871 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-19 21:19:00 +00:00
regis@google.com 9f47fe603b Fix type test elimination using static type propagation in new compiler.
Review URL: https://chromiumcodereview.appspot.com//10578018

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8868 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-19 20:32:44 +00:00
hausner@google.com 5fb638b575 Support captured variables in debugger
- Add context level ranges to LocalVarDescriptors
- Add callee-saved context chain register to LocalVarDescriptors
- Add context level and context offset of captured variables
  to LocalVarDescriptors
- Add context chain to ActivationFrame
- Add current context level to ActivationFrame
Review URL: https://chromiumcodereview.appspot.com//10579020

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8863 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-19 18:52:34 +00:00
fschneider@google.com 123bfe4e08 Second step for computing SSA: renaming.
This CL adds the renaming step to the SSA construction. The renaming pass
initializes a start environment with the initial values of all locals (#null)
 and parameters and removes LoadLocal and StoreLocal instructions from the
 graph.

Right now the renaming does not support functions with parameters yet.
I added a TODO for this. The SSA form for a simple function with an if-statement:

function foo() {
  var v = 0;
  var x;
  if (v == 0) {
    x = 42;
  }
  return x;
}

looks as follows:

 0: [graph]
  #null
  #null
 1: [target]
    t0 <- #0
    t1 <- #null
    t2 <- #0
    t3 <- EqualityCompare(t0 == t2)
    Branch if t3 goto (2, 3)
 2: [target]
    t5 <- #42 goto 4
 3: [target] goto 4
 4: [join]
    t4 <- phi(t1,t5)
    Return t4
Review URL: https://chromiumcodereview.appspot.com//10544206

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8839 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-19 11:39:02 +00:00
asiva@google.com f84e302326 Temporarily disable store buffer assertion check as it is causing crashes.
Will reenable after fixing it.
Review URL: https://chromiumcodereview.appspot.com//10574012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8834 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-19 06:56:39 +00:00
cshapiro@google.com 9f6dd29570 Correct the masks and conditions used to filter cross generation stores.
Review URL: https://chromiumcodereview.appspot.com//10581007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8831 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-18 23:24:30 +00:00
regis@google.com 1207cc2010 Fix bad assert in static type propagation.
Review URL: https://chromiumcodereview.appspot.com//10578004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8828 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-18 22:42:39 +00:00
regis@google.com 030a798c9f Inline binary And operation for Mint and Smi in new compilers.
Review URL: https://chromiumcodereview.appspot.com//10553040

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8825 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-18 21:55:52 +00:00
iposva@google.com 944d6b1c84 - Reenable disassembly of stubs: No comments are 0 length.
Review URL: https://chromiumcodereview.appspot.com//10579005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8824 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-18 21:05:58 +00:00
srdjan@google.com 718554fde4 Temporary fix for static type check elimination in new compiler. Enable tests.
Review URL: https://chromiumcodereview.appspot.com//10580003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8823 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-18 21:04:28 +00:00