Commit Graph

552 Commits

Author SHA1 Message Date
Vyacheslav Egorov 3f9a4966e7 [VM] Fix typing issues in the typed_data.dart
Bug: https://github.com/dart-lang/sdk/issues/31052
Change-Id: I6bc0454c8c27432ee6206267c04d114d47835046
Reviewed-on: https://dart-review.googlesource.com/12660
Reviewed-by: Martin Kustermann <kustermann@google.com>
2017-10-11 10:29:05 +00:00
Vyacheslav Egorov 9678113619 [VM] Fix incorrect range assignment for Uint32 ops.
When replacing 64bit signed operations with unsigned 32bit ones
IntegerInstructionSelector::Replace would simply copy 64bit operation's
range onto uint32 op. This however is only correct for positive range,
non-positive ranges must become [0, kMaxUint32]. 

Fixes https://github.com/dart-lang/sdk/issues/30853

Bug:
Change-Id: I896b7828c29fe8f04a844cfb984295cb47ddaaf2
Reviewed-on: https://dart-review.googlesource.com/8020
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2017-09-25 10:09:32 +00:00
Alexander Markov 7a20b6b8d8 Option to truncate integers to 64 bits, part 1 (core VM changes)
This changeset revises --limit-ints-to-64-bits option to
change range of integers from unlimited to int64.
On overflow, integer arithmetic operations silently wrap around and
discard extra bits. No Bigints are allocated in case of overflow.

This changeset is the 1st part in the series of changes, it revises the implementation of integer arithmetic operations. More changes will follow.

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

Issue: https://github.com/dart-lang/sdk/issues/30103
Review-Url: https://codereview.chromium.org/2974633003 .
2017-07-10 15:16:40 -07:00
Zachary Anderson e7c96cae8c [Fuchsia] Implements NetworkInterface.list()
US-241

R=rmacnak@google.com, tkilbourn@google.com

Review-Url: https://codereview.chromium.org/2962383002 .
2017-06-30 10:54:08 -07:00
Alexander Markov 499a587003 Fix incorrect DBC code generation of range-based CheckClassId
CheckClassId IL instructions with ranges of Cids were incorrectly
generated to DBC: instead of embedding range length directly into the Nop,
a constant was added into an object pool and index of the constant was
stored in Nop.

Closes https://github.com/dart-lang/sdk/issues/29846

R=zra@google.com

Review-Url: https://codereview.chromium.org/2964583003 .
2017-06-29 15:32:44 -07:00
Vyacheslav Egorov 0eb44ec68f Use same range info when emitting code and computing if instruction can deopt.
For BinarySmiOpInstr and ShiftMintOpInstr we use range information to both
decide if instruction can deopt and decide which checks should be emitted
when emitting native code for this instruction.

However because range information is attached to the definition and not
uses it often gets out of sync as we mutate the graph. For example we might
first make a decision that an instruction can't deoptimize based on more
precise range information but then use less precise information in the
backend for deciding which parts of the instruction to emit (because
redifinition or a phi-instruction was removed from the graph). This mismatch
can lead to a crash if less precise information tells backend that one of the
inputs need to be checked - because there is no deoptimization label to jump
to.

This CL is addressing this problem by ensuring that range information is
cached at the use and both ComputeCanDeoptimize() and backend use the same
range information.

Additionally this CL kills overly generic MergedMath instruction and replaces it
with TruncDivModInstr.

BUG=https://github.com/dart-lang/sdk/issues/29620
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2891113002 .
2017-05-21 19:01:49 +02:00
Zachary Anderson 4b4b8e8783 [Fuchsia] Allows non-regular files to be opened.
Fuchsia has lots of different file types that aren't covered by all of
the things that stat() understands, so we have to switch to
blacklisting directories.

See the discussion on https://codereview.chromium.org/2844493004/

R=abarth@google.com

Review-Url: https://codereview.chromium.org/2856913004 .
2017-05-02 14:47:33 -07:00
Erik Corry aa6353b6da Dart SDK Spelling b, c, and d.
R=kmillikin@google.com
BUG=

Review-Url: https://codereview.chromium.org/2850783002 .
2017-05-01 08:28:10 +02:00
Jacob Richman 4360e99d18 Revert "Fix observatory tests broken by running dartfmt."
This reverts commit b1f7e6d94673b098c93c187fe3efc45c15f27edc.

BUG=

Committed: https://github.com/dart-lang/sdk/commit/62be0eacfbb36bdc92a05c7c35bb4506621b6a3a
Review-Url: https://codereview.chromium.org/2767533002 .
2017-03-21 10:07:26 -07:00
Jacob Richman 62be0eacfb Revert "Fix observatory tests broken by running dartfmt."
This reverts commit b1f7e6d94673b098c93c187fe3efc45c15f27edc.

BUG=

Review-Url: https://codereview.chromium.org/2767533002 .
2017-03-20 22:19:22 -07:00
Jacob Richman 88f8aacd5f Re-apply rolled back CL to apply dartfmt to runtime.
Fix observatory tests broken by running dartfmt due to line and column changes.
Temporarily reverted formatting for evaluate_activation_test.dart as dartfmt doesn't yet handle multitests.

BUG=
R=johnmccutchan@google.com

Review-Url: https://codereview.chromium.org/2759973004 .
2017-03-20 21:44:59 -07:00
Ryan Macnak ea4744a06f Revert "Run dartfmt on all files under runtime."
This reverts commit 15f393f189.

The change caused many service test failures due to changed line numbers.

TBR=jacobr@google.com

Review-Url: https://codereview.chromium.org/2762583003 .
2017-03-20 13:42:55 -07:00
Jacob Richman 15f393f189 Run dartfmt on all files under runtime.
I've omitted files where the formatter output is significantly uglier
than the original code and I'll send those files in a separate CL
with options for how to make the code look reasonable while still
taking advantage of the formatter.

BUG=
R=johnmccutchan@google.com

Review-Url: https://codereview.chromium.org/2751423005 .
2017-03-20 13:13:50 -07:00
Ryan Macnak cfe5e5f075 Include metadata in AOT to expand inline frames in stack traces and provide line numbers.
Also fix stack trace collection to always include invisible frames. It can happen that a visible function is inlined into an invisible function, and we don't expand inlined frames until we print a stack trace.

dart2js product x64:
compile time: 12.459s
VMIsolate(CodeSize): 152292
Isolate(CodeSize): 3343117
ReadOnlyData(CodeSize): 3728928
Instructions(CodeSize): 8677600
Total(CodeSize): 15901937
->
compile time: 14.195s (+13%)
VMIsolate(CodeSize): 174034
Isolate(CodeSize): 3892418 (+16%)
ReadOnlyData(CodeSize): 5036320 (+35%)
Instructions(CodeSize): 8682624
Total(CodeSize): 17785396 (+12%)

R=asiva@google.com

Review-Url: https://codereview.chromium.org/2687143005 .
2017-02-13 10:27:36 -08:00
Ryan Macnak b15b98bcc3 Reapply "Use CodeSourceMap for stack traces (still JIT only)."
- Fix missing null termination in initialization of ZoneTextBuffer.
 - Merge with John's async stack trace changes.

R=fschneider@google.com

Review-Url: https://codereview.chromium.org/2686813006 .
2017-02-09 18:03:41 -08:00
Ryan Macnak 15a9eafb77 Revert "Reapply "Use CodeSourceMap for stack traces (still JIT only).""
This reverts commit bee82fef8b.

Revert "Use zone memory for StackTrace::ToCString."

This reverts commit 4e8b265ea0.

The later CL somehow caused hangs in some service tests.

Review-Url: https://codereview.chromium.org/2683033007 .
2017-02-09 13:14:01 -08:00
Ryan Macnak bee82fef8b Reapply "Use CodeSourceMap for stack traces (still JIT only)."
Include CodeSourceMaps in app-jit snapshots.

R=fschneider@google.com

Review-Url: https://codereview.chromium.org/2686623006 .
2017-02-08 16:43:47 -08:00
Zachary Anderson a1579c6a45 Fuchsia: Implement recursive delete
Currently, readdir() doesn't fill out d_type correctly, so we just do
an extra stat() to get the file type.

R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2621093002 .
2017-01-10 15:08:39 -08:00
Zachary Anderson a5d8a2f365 Fuchsia: Adds support for Process.kill()
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2619233003 .
2017-01-09 15:57:41 -08:00
Zachary Anderson 1f99052303 Fuchsia: Adds File::Copy()
R=asiva@google.com

Review-Url: https://codereview.chromium.org/2591523002 .
2016-12-20 09:44:08 -08:00
Zachary Anderson 918b90ba46 Fuchsia: implement Process::Wait() for Process.runSync()
R=asiva@google.com

Review-Url: https://codereview.chromium.org/2591473004 .
2016-12-20 09:30:00 -08:00
Zachary Anderson 1f289fc12b Fuchsia: resolve executable name, fetch environment vars
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2581363002 .
2016-12-16 21:23:20 -08:00
Zachary Anderson 846a73e262 Fuchsia: Directory listing
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2579483002 .
2016-12-14 15:06:27 -08:00
Zachary Anderson 32e5ef787d Fuchsia: dart:io Processes
This change adds support for non-detached processes
spawned with Process.run and Process.start (but not Process.runSync).

R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2563463002 .
2016-12-13 11:09:55 -08:00
Ryan Macnak e60c9d52b6 Fuchsia: Enable newly working socket tests; use MX_CLOCK_UTC.
R=kulakowski@google.com, zra@google.com

Review URL: https://codereview.chromium.org/2536943002 .
2016-11-28 15:50:54 -08:00
Ryan Macnak 8d57e3d540 Enable SecureSocket on Fuchsia using BoringSSL and compiled-in certificates from dart-sdk/root_certificates.
Implement OS::CurrentTimeMicros in terms of gettimeofday.

R=asiva@google.com

Review URL: https://codereview.chromium.org/2519133005 .
2016-11-23 10:48:18 -08:00
Ryan Macnak 171da0489f Fuchsia sockets:
- Remove CheckConnect.
  - Enable NODELAY.
  - Add testSimpleReadWriteClose to hello_fuchsia_test.

Add stub implementation of OS::MaxRSS so Observatory can load without crashing the target VM.

R=asiva@google.com

Review URL: https://codereview.chromium.org/2523133002 .
2016-11-22 16:52:21 -08:00
Ryan Macnak b83fb06741 Fuchsia sockets:
- Enable FDUtils::AvailableBytes.
 - Disable Socket::SetNoDelay.
 - Implement Socket::GetRemotePeer same as Linux.
 - Implement Socket::ParseAddress same as Linux.

R=asiva@google.com

Review URL: https://codereview.chromium.org/2522923002 .
2016-11-22 12:49:01 -08:00
Zachary Anderson 14233482d9 Fuchsia: Partial implementation of dart:io sockets
This changes the eventhandler to epoll and adds some code for sockets
to runtime/bin/sockets_fuchsia.cc. It also adds some simple tests
to hello_fuchsia.dart.

R=asiva@google.com

Review URL: https://codereview.chromium.org/2515643004 .
2016-11-20 22:04:14 -08:00
Zachary Anderson 53374c3b99 Fuchsia: Build standalone VM. Make it run "Hello, World!".
This CL adds targets to the GN build that build the standalone Dart VM
without the observatory, and with dart:io enabled but with most of the
functionality stubbed out as UNIMPLEMENTED(). It also adds a simple
eventhandler for Fuchsia for implementing Timers.

R=asiva@google.com, johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2168193002 .
2016-07-22 14:00:31 -07:00
Zachary Anderson 2c6449087d DBC: Misc double instructions
- DoubleToSmi
- MathUnary
- MathMinMax

R=fschneider@google.com

Review URL: https://codereview.chromium.org/2162173002 .
2016-07-20 09:46:32 -07:00
Zachary Anderson fe2b7b35c4 DBC: Enables unboxed doubles
This CL enables unboxed doubles for simdbc64. Unboxed
doubles are stored in regular dbc registers, which are
really 64-bit stack slots. It also implements binary
and unary double operations and comparisons.

R=vegorov@google.com

Review URL: https://codereview.chromium.org/2120703002 .
2016-07-14 16:05:20 -07:00
Srdjan Mitrovic b3405d5ebc Add --no-background-compilation to tests that expect to run code in optimized form
BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/1759973002 .
2016-03-02 16:30:58 -08:00
Zachary Anderson 1ce512b69f Fix Shutdown race.
This CL fixes a race during VM shutdown in which the embedder's
isolate creation callback is passed an invalid isolate data pointer.

BUG=http://dartbug.org/25351
R=asiva@google.com

Review URL: https://codereview.chromium.org/1560853002 .
2016-01-08 12:30:57 -08:00
Ryan Macnak 6fc5018282 Standalone: Use new support in dart:core for decoding data uris.
R=iposva@google.com

Review URL: https://codereview.chromium.org/1489603002 .
2015-12-01 13:46:20 -08:00
Todd Turnidge 71b3d5aba8 Start isolates in a separate thread.
R=asiva@google.com

Review URL: https://codereview.chromium.org/1447353002 .
2015-11-18 11:02:32 -08:00
Zachary Anderson 7093f2996b VM thread shutdown.
BUG=
R=iposva@google.com, turnidge@google.com

Review URL: https://codereview.chromium.org//1275353005 .
2015-09-15 12:49:52 -07:00
Zachary Anderson d4d89d6f12 Reverts VM thread cleanup
BUG=

Review URL: https://codereview.chromium.org//1275853008 .
2015-08-07 19:10:31 -07:00
Zachary Anderson 55bfb3d54b Clean VM thread shutdown:
Second attempt at: https://codereview.chromium.org/1177153005/

This time with fixed error propagation in the embedder.

R=turnidge@google.com

Review URL: https://codereview.chromium.org//1279733003 .
2015-08-07 18:42:00 -07:00
Zachary Anderson 4ca87e6d88 Revert VM thread cleanup
TBR

BUG=

Review URL: https://codereview.chromium.org//1270323002 .
2015-08-05 01:27:01 -07:00
Zachary Anderson 174d552574 Enables clean VM shutdown.
. Disables isolate spawning during Dart_Cleanup.
. Adds a static call Isolate::KillAllIsolates, which sends the
  OOB Kill message to all isolates when called from
  Dart_Cleanup.
. Modifies thread pool shutdown to block until all threads have
  exited.
. Fixes tests.

BUG=
R=turnidge@google.com

Review URL: https://codereview.chromium.org//1177153005 .
2015-08-04 23:29:25 -07:00
rmacnak@google.com 29041fdecc Adjust status of data_uri_failures_test to allow for the browser's more permissive handling of data uris. Don't print in the child isolate to avoid a timeout.
TBR=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44617 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-20 22:36:07 +00:00
rmacnak@google.com fbc6b005a4 Support percent encoded data URIs in the standalone embedder.
BUG=
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44609 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-20 20:11:53 +00:00
rmacnak@google.com ccc8865226 Random-walk fuzzer for the Dart VM.
Start with all the classes and libraries and various interesting values.  Repeatedly choose one as a receiver, construct a message it is likely to understand, send the message, and add the result.

R=groebert@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43615 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 21:32:37 +00:00
iposva@google.com c859d25679 - Return exit code 253 in case of API errors during loading. This
will trigger for example when loading outdated snapshots.

R=ricow@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43505 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-05 14:30:24 +00:00
srdjan@google.com 30e77079e9 Fix x64 patching of asllocation stub: the pool pointer must be set-up before patching jump is executed.
R=koda@google.com, zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40358 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-16 23:14:54 +00:00
srdjan@google.com 2e9728ceb1 Temporary disable stress testing in crashing test.
Review URL: https://codereview.chromium.org//577673002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40330 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-16 17:20:16 +00:00
srdjan@google.com 4bb01949bc Fix to allocation stub invalidation: we cannot just remove it as it will be collected even though code still may reference it. Since we should probably have two different allocation stubs, keep two in the class and switch between them. Future work will put intelligence in the allocation stub selection. Added Daniel's test flag & code.
R=koda@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40327 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-16 17:01:17 +00:00
fschneider@google.com bdd6b29fd8 Revert r40306 because of crash.
TBR=vegorov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40312 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-16 12:14:33 +00:00
fschneider@google.com cd78dbe709 Refactor generating lazy deoptimization descriptors.
Instead of having special handling for closure calls, pass
the number of input operands down so that the correct lazy
deoptimization environment is generated at calls.

There is no functional change here - this is to simplify
having calls with pushed arguments and input operands
(like closure calls).

Runtime calls still do not have a correct lazy deoptimization environment
the environment should only be used for creating stack traces
from optimized code.

Fix a bug with --trace-deoptimization-verbose printing: We
cannot call ToCString on objects when the slots have not
been filled in yet. (e.g. Closures)

R=vegorov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40306 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-16 10:31:47 +00:00