Commit Graph

8322 Commits

Author SHA1 Message Date
John McCutchan 59f50474c2 Add box slow path allocation stub to static calls target table
- Fixes a crash when tracing double allocation in optimized code.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1266033003 .
2015-08-03 13:19:57 -07:00
Todd Turnidge fa1d1e9faf Observatory fixes:
- Fix bug where we incorrectly tell the user to use "anext".
- Allow debugger input box to retain focus when curly-blocks are expanded.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1265153005 .
2015-08-03 13:16:30 -07:00
John McCutchan 868109bf97 Auto scroll debugger console text only when already scrolled down
R=turnidge@google.com

Review URL: https://codereview.chromium.org//1263853004 .
2015-08-03 12:50:50 -07:00
John McCutchan 33831aaa6b Add log support to debugger
- Add 'log' command to control log level.
- Manage Logging stream subscription whenever isolate changes.
- Rename _VMStreamPrinter to _ConsoleStreamPrinter.
- Pipe log events to _ConsoleStreamPrinter.

R=turnidge@google.com

Review URL: https://codereview.chromium.org//1258063005 .
2015-08-03 12:42:59 -07:00
John McCutchan 040ae23be8 Fix clean builds
BUG=

Review URL: https://codereview.chromium.org//1266043004 .
2015-08-03 12:16:58 -07:00
Srdjan Mitrovic 1a1ff00a29 Use zone when allocating handles in FlowGraphCompiler assembling operations. Add profiling VM tags for parse and flow graph builder, active only when --profile_vm. Lazily generate IR constant_value handles.
BUG=
R=regis@google.com

Review URL: https://codereview.chromium.org//1263573010 .
2015-08-03 10:10:24 -07:00
John McCutchan fbb32461d8 Stop unnecessary Observatory rebuilds
*) Turns out that gyp generates broken Makefiles when a target has more than one output. Avoid this bug by changing Observatory targets to have one output.
*) NOTE: generate_snapshot_bin still has two outputs and will always rebuild because of this.
*) Some misc. cleanups to observatory.gypi (removing redundant dependencies / inputs).

R=zra@google.com

Review URL: https://codereview.chromium.org//1270033002 .
2015-08-03 10:04:27 -07:00
Florian Schneider e1468b54a3 Fix use-after-free from my previous CL.
The destructor of Metric must be invoked on a running isolate (i.e.
before shutting down the isolate.)

BUG=
R=koda@google.com

Review URL: https://codereview.chromium.org//1263323003 .
2015-08-03 17:34:31 +02:00
Florian Schneider ef7a55281f VM: Load allocation-top and -end via Thread.
Cache a pointer to the isolate's Heap in the Thread object
and use it in generated code for allocation.

Change generated allocation code to load allocation-top and
end via THR (THR->heap.top). This is slightly slower than
embedding the address, but faster than loading it
via the Isolate (THR->isolate->heap.top)

BUG=
R=koda@google.com

Review URL: https://codereview.chromium.org//1263513002 .
2015-08-03 16:26:23 +02:00
Daniel Andersson 5583bc2b5f Fix issue 23942 by updating expectations.
Some tasks might resume at SafepointThreads for one extra verfication round,
where they will see less than kTaskCount copies of the marker smi.

Also fix indentation.

BUG=23942

Review URL: https://codereview.chromium.org//1265503004 .
2015-07-31 23:03:31 -07:00
Daniel Andersson e2f278b2c7 Mark safepoint tests as flaky while debugging.
TBR=iposva
BUG=23942

Review URL: https://codereview.chromium.org//1270803002 .
2015-07-31 22:29:44 -07:00
Daniel Andersson 500eb6d79d Safepoint interface and unit tests.
Add infrastructure to enable all threads in an isolate to rendezvous at GC-safe points, and exercise it through unit tests.

* Use existing interrupt mechanism for Dart threads, but a cooperative approach for non-Dart threads (concurrent compiler, etc.): they must periodically call CheckSafepoint (may block).

* Add unit tests to exercise and verify various scenarios: organizing the rendezvous from helper/main thread, with/without Dart code executing, etc.

The next step is to use this interface in old-space allocation and garbage collection, respectively, to allow helper threads to perform allocations that potentially trigger GC (needed for concurrent compiler).

Limitations:

* A thread that is executing a long-running native function is currently not considered at a safepoint, and will delay the rendezvous until it returns to Dart or indirectly calls CheckSafepoint. In a future CL, we can use the saved stack pointer to detect and support this case, and intercept the thread if/when it re-enters Dart or the VM.

BUG=
R=iposva@google.com

Review URL: https://codereview.chromium.org//1259223005 .
2015-07-31 19:53:14 -07:00
Siva Annamalai ba415408e9 Temporary fix for pub crash by canonicalizing type only if the IsCreatedFromSnapshot bit is true (i.e restored the condition back to the way it used to be).
BUG=
R=regis@google.com

Review URL: https://codereview.chromium.org//1263843004 .
2015-07-31 17:04:32 -07:00
John McCutchan 319b274362 Stop displaying inline, optimized, and unoptimized tags next to functions in profile tree
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1269843007 .
2015-07-31 15:04:55 -07:00
John McCutchan 390a44ccdf Make Observatory analyzer clean
BUG=

Review URL: https://codereview.chromium.org//1267033002 .
2015-07-31 14:57:55 -07:00
John McCutchan fc2d849cd5 Fix http requests and the crash dump RPC
- Fix HTTP and crash dump service requests by giving them a non-null id.
- Add basic heartbeat test for _getCrashDump RPC over HTTP.
- Fix some analyzer warnings.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1266943005 .
2015-07-31 14:38:04 -07:00
Daniel Andersson 40fc14d75a Fix incorrect expectation in allocations_test.
The old code worked most of the time, since the Foo objects were usually not promoted to oldspace.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1269553004 .
2015-07-31 14:34:23 -07:00
John McCutchan 4e9716ee40 Update view footer with github bug report url
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1254413011 .
2015-07-31 14:23:45 -07:00
John McCutchan de035901a1 Introduce two utility elements for the cpu profiler
- Add <sample-buffer-control> which manages fetching a sample buffer from an isolate.
- Remove duplicate code by using <sample-buffer-control> in both the tree and table profile views.
- Add <stack-trace-tree-config> which manages how a stack trace tree should be displayed (function or code objects, bottom up or top down).
- Remove duplicate code by using <stack-trace-tree-config> in both the tree and table profile views.

This is the first of many CLs refactoring the CPU profile related code in Observatory. This introduces some naming inconsistencies (CpuProfile vs. SampleBuffer) that will converge to SampleBuffer over time.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1266193003 .
2015-07-31 14:19:17 -07:00
Daniel Andersson 32046b2eb8 Migrate stack resource unwinding to Thread.
Also remove some uses of deprecated StackResource constructor.

BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org//1261873005 .
2015-07-31 12:57:19 -07:00
Regis Crelier 0778c11ffb Save a few register moves in function prolog on arm64 by using the same pattern
as on x64 dealing with two pool pointers.

R=zra@google.com

Review URL: https://codereview.chromium.org//1259713005 .
2015-07-31 12:48:49 -07:00
Regis Crelier cd00cf3f8e Simplify constant pool usage in x64 code generator (by removing extra argument
to all code emitting routines that may access the pool).

R=zra@google.com

Review URL: https://codereview.chromium.org//1268783003 .
2015-07-31 12:38:33 -07:00
John McCutchan 67b480ee0d Stop sniffing user agent in vm service http server
- We don't need this check anymore.
- Removing it fixes an issue with uberproxy.

R=sigmund@google.com

Review URL: https://codereview.chromium.org//1261483003 .
2015-07-31 12:20:56 -07:00
Ryan Macnak 2d6e6db843 Fix Dartium Mac build.
TBR=srdjan@google.com

Review URL: https://codereview.chromium.org//1268493006 .
2015-07-31 09:54:04 -07:00
Ryan Macnak 8a3e134502 Non-tree-shaking --precompile.
R=srdjan@google.com

Review URL: https://codereview.chromium.org//1261673004 .
2015-07-30 15:29:19 -07:00
Srdjan Mitrovic cc1b7f0c3e Fix inlining information:
Missing caller inlining id chain left the inlining chain truncated and incorrect.
Added full mapping: inlining-id to caller-inlining-id.

Remove fix from https://codereview.chromium.org/1259243005/

Added some of changes from https://codereview.chromium.org/1260163006/

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1268783002 .
2015-07-30 14:47:32 -07:00
Todd Turnidge 53dbc3764d Support sending and receiving Capability objects from C code.
BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org//1267603003 .
2015-07-30 14:07:36 -07:00
Siva Annamalai 325f40d9db Fix for bug 21079
Implement patch records to patch canonical objects.

BUG=21079
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1255003004 .
2015-07-30 10:24:13 -07:00
John McCutchan dc2450aaad Move file i/o natives from builtin list to io native list
- This is being done so that Sky programs can perform file i/o.

R=asiva@google.com

Review URL: https://codereview.chromium.org//1265703004 .
2015-07-30 09:08:40 -07:00
Rico Wind 93ec16c34c Nuke some whitespace in observatory
R=johnmccutchan@google.com
BUG=

Review URL: https://codereview.chromium.org//1255273007 .
2015-07-30 17:47:50 +02:00
Siva Annamalai ffbbfb52e1 Fix crash when reading the Richards snapshot generated on using a the 32 bit dart binary.
When transitionting a Mint object to a Smi on 64 bit architectures the corresponding object id was not preserved in the backward references table.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1264683002 .
2015-07-29 17:03:14 -07:00
Ivan Posva a78db046a6 - Fix logic bug when skipping comments.
Review URL: https://codereview.chromium.org//1269643002 .
2015-07-29 15:39:51 -07:00
Regis Crelier b5f4e95433 Simplify constant pool usage in arm64 code generator (by removing extra argument
to all code emitting routines that may access the pool).
Improve code loading immediates on arm64 (do not read from the pool if 1 or 2
immediate instructions will do).

R=zra@google.com

Review URL: https://codereview.chromium.org//1264543002 .
2015-07-29 15:21:20 -07:00
Ivan Posva b07a9ddbca - Implement .packages specification.
Limitation: Currently only works for file: based .package files. If a script is loaded from http: then the VM currently assumes a co-located packages/ directory.

R=asiva@google.com

Review URL: https://codereview.chromium.org//1232593003 .
2015-07-29 11:30:33 -07:00
John McCutchan ef11d0545b Add unit test for CPU profile inline function expansion
- Add unit test for CPU profile inline function expansion.
- Fix missing frame bug in inline function expansion.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1259243005 .
2015-07-29 10:21:36 -07:00
John McCutchan 8afd3d67e7 Make binary events JSON-RPC 2.0 compliant as well.
R=turnidge@google.com

Review URL: https://codereview.chromium.org//1258343004 .
2015-07-29 10:20:47 -07:00
Natalie Weizenbaum 61ea0618ce Support JSON-RPC 2.0-compatible VM service events.
This adds a parameter to streamListen that will cause it to produce JSON-RPC
2.0-compatible events.

R=turnidge@google.com

Review URL: https://codereview.chromium.org//1257943003 .
2015-07-28 17:17:40 -07:00
John McCutchan 8e71ddba47 Restore first frame tick exception in exclusive trees
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1260753005 .
2015-07-28 16:38:40 -07:00
John McCutchan d9394ac865 Fix exception on first navigation to metrics page
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1262003002 .
2015-07-28 16:13:09 -07:00
Ryan Macnak 8c98455ab5 Retaining path improvements.
- Don't answer retaining paths that go through ICData.
 - Associate edge labels with the referer instead of the referent.
 - Give edge labels for VM classes (offsets only).
 - Make is possible to distinguish closures and functions from their refs.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1246073005 .
2015-07-28 15:56:10 -07:00
John McCutchan b2bdbfdc1e Fix bad inclusive ticks for functions on release x64
BUG=

Review URL: https://codereview.chromium.org//1264523002 .
2015-07-28 15:18:29 -07:00
John McCutchan 902da6eeef Restore code index tracking
BUG=

Review URL: https://codereview.chromium.org//1258363002 .
2015-07-28 14:54:46 -07:00
John McCutchan 62ada2042c Refactor function tick code and add test
- Make ProfileFunction ticking semantics consistent with ProfileCode.
- Refactor ProfileFunction trie building code.
- Add test for ProfileFunction trees.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1261963002 .
2015-07-28 14:28:44 -07:00
Srdjan Mitrovic fafbe30eb0 Fix #23871: identical on consts should be always const
BUG=23871
R=hausner@google.com

Review URL: https://codereview.chromium.org//1259813003 .
2015-07-28 11:37:22 -07:00
John McCutchan 70a5561cef Fix profiler exclusive code tree node counts
- Add unit tests.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1258783005 .
2015-07-28 11:33:42 -07:00
Siva Annamalai b0c9f2ef9b Fix for issue 23244
Refactoring of WriteObjectImpl and ReadObjectImpl to enable inlining of canonical objects in the snapshot stream.

BUG=23244
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1260033004 .
2015-07-28 10:52:05 -07:00
John McCutchan 3d0b3b6b2b Fix ProfileCode ticking and add unit test
- Fix wrong loop indexer (two i variables...) use when ticking ProfileCode.
- Factor out exclusive / inclusive tick decision into a helper function.
- Adjust ProfileCode::Tick's semantics.
- Add unit test verifying ProfileCode tick semantics.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1260793003 .
2015-07-28 10:21:38 -07:00
Ryan Macnak 49cdeec99f Don't do C++ field guards either when --use_field_guards=false.
R=srdjan@google.com

Review URL: https://codereview.chromium.org//1255373002 .
2015-07-28 09:45:30 -07:00
Florian Schneider f8670e8f84 VM: Hoist handle allocation out of loop when creating the object pool.
BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1253373002 .
2015-07-28 10:23:33 +02:00
Natalie Weizenbaum 90410aabbb Fix some failing VM tests.
Review URL: https://codereview.chromium.org//1254723013 .
2015-07-27 17:48:31 -07:00