Commit graph

33379 commits

Author SHA1 Message Date
Brian Wilkerson 1463fb3ff2 Task to infer static variables
R=leafp@google.com, paulberry@google.com

Review URL: https://codereview.chromium.org//1323653002 .
2015-08-31 11:36:43 -07:00
Todd Turnidge 7ac3150ee3 Improve display of simd vector types and stack traces in Observatory.
Associated protocol changes.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1316123004 .
2015-08-31 10:35:01 -07:00
Srdjan Mitrovic dd5410209f Added {Zone}GrowableHandlePtrArray types: simplifies code, makes code safer
BUG=
R=regis@google.com

Review URL: https://codereview.chromium.org//1312833009 .
2015-08-31 09:24:00 -07:00
Asger Feldthaus 2650557f0b dart2js cps minor change: Add a comment and rename a parameter.
This was reverted together with the change to use synthetic constants
for the dummy receiver, but the synthetic constants have some deeper
issues.

BUG=
R=sra@google.com

Review URL: https://codereview.chromium.org//1304943003 .
2015-08-31 16:04:41 +02:00
Johnni Winther 838c8d0423 Move isPrivateName and isPublicName to Name.
BUG=
R=sigurdm@google.com

Review URL: https://codereview.chromium.org//1313893004.
2015-08-31 10:26:51 +02:00
Brian Wilkerson d6df4d7d84 Remove use of null-aware operator until analyzer can require 1.12
Review URL: https://codereview.chromium.org//1301333007 .
2015-08-29 09:11:01 -07:00
Todd Turnidge 656bd5af82 Remove invalid assertion.
If an isolate has been paused, it will leave events in its queue.

BUG=

Review URL: https://codereview.chromium.org//1320223002 .
2015-08-28 14:30:03 -07:00
Konstantin Shcheglov 7efe0b5bf3 analyzer version to 0.26.1+2
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//1319243002 .
2015-08-28 14:08:35 -07:00
Konstantin Shcheglov 3e9645af53 Resolve enum documentation comments.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//1325513004 .
2015-08-28 14:07:13 -07:00
Konstantin Shcheglov 3d1da0f320 Add AnalysisContext.getResult()/computeResult()
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//1308033008 .
2015-08-28 13:57:25 -07:00
Harry Terkelsen 2d18c9252c Update Angular to be0739085976bbdbcf8f560475e87b07343f464d
R=sra@google.com

Review URL: https://codereview.chromium.org//1319973009 .
2015-08-28 13:24:01 -07:00
Todd Turnidge 01c1d2c667 Fix a bug PauseOnExit notification.
When we notified before, we could end up entering an isolate when it
was busy handling another message.  By moving the notification up and
clearing the "task" later, we ensure that we own the isolate for the
duration of the notification.

BUG=
R=iposva@google.com

Review URL: https://codereview.chromium.org//1324543002 .
2015-08-28 13:19:50 -07:00
Ryan Macnak 54fb6cd385 Add missing PrintStopMessage runtime entry to arm64.
R=srdjan@google.com

Review URL: https://codereview.chromium.org//1320203002 .
2015-08-28 13:15:56 -07:00
Ryan Macnak 4a7d56902b Decorate ObjectPool dumps with offsets to match disassembly and names for most external labels.
Remove dead runtime entry from list macro.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//1318883004 .
2015-08-28 12:50:28 -07:00
Brian Wilkerson 7ce07af57e Implement a task to compute the dependencies between static variables
R=leafp@google.com, paulberry@google.com

Review URL: https://codereview.chromium.org//1320923003 .
2015-08-28 11:42:15 -07:00
Brian Wilkerson 68058da1a1 Remove some order dependency in instance member inference
R=leafp@google.com, paulberry@google.com

Review URL: https://codereview.chromium.org//1311133009 .
2015-08-28 11:31:48 -07:00
Daniel Andersson db8e0e6423 - Add marking task running on separate thread.
- A task has its own MarkingVisitor and SkippedCodeFunctions.
- Weak processing still happens on main thread, with tasks paused.
- Finalization (detaching code) happens in task.
- Cmdline-flag "marker_tasks=0" reverts to old behavior.

BUG=

Review URL: https://codereview.chromium.org//1309033007 .
2015-08-28 10:00:05 -07:00
Kevin Millikin e44f94ffea dart2js: Rebaseline the CPS compiler tests.
I've opted to try to keep them testing what they were before and not to make
them tests of inlining.

R=asgerf@google.com
BUG=

Review URL: https://codereview.chromium.org//1323563002 .
2015-08-28 17:35:03 +02:00
Srdjan Mitrovic d732b68b8c oneee# Enter a description of the change.
Collect interfaces without GrowableObjectArray

Concat to symbol without temporary String creation

BUG=
R=koda@google.com

Review URL: https://codereview.chromium.org//1311693003 .
2015-08-28 08:24:17 -07:00
Asger Feldthaus 9ac5099a46 dart2js cps: Interceptor can be null if input is null.
This causes nasty regression but it fixes a correctness issue.

Path-sensitive type propagation recovers some of the regression.

R=kmillikin@google.com

Review URL: https://codereview.chromium.org//1313183007 .
2015-08-28 17:16:46 +02:00
Kevin Millikin d074fa69b7 dart2js: A bit more inlining of static invocations.
Allow is and is! checks, == and !=, parameter references, and literals.

BUG=
R=asgerf@google.com

Review URL: https://codereview.chromium.org//1320143002 .
2015-08-28 16:14:43 +02:00
Asger Feldthaus ade4822108 dart2js cps: Generate interceptors at use-site and share afterwards.
Previously, interceptors were generated at the definition-site to ensure
sharing, and sometimes sunk to its use-site if desirable.

Now they are (again) generated at use-site, then pulled out of loops,
and replaced by dominating calls to getInterceptor.

This means interceptors are only computed if they really are needed,
but on the other hand, they are sometimes computed more than once, when
there are uses that don't have a common dominator.

Interceptor constants are currently not shared/hoisted as it is not
clear when this is beneficial.

R=kmillikin@google.com

Review URL: https://codereview.chromium.org//1313783003 .
2015-08-28 16:02:16 +02:00
Johnni Winther c10a813f16 Move common URIs to common/names.dart
BUG=
R=sigurdm@google.com

Review URL: https://codereview.chromium.org//1309743006.
2015-08-28 14:01:57 +02:00
Johnni Winther d8e5194c3b Add support for analyzing individual URIs.
BUG=
R=karlklose@google.com

Review URL: https://codereview.chromium.org//1314973003.
2015-08-28 13:50:40 +02:00
Kevin Millikin 1e4469c144 dart2js CPS: Do not transform unreachable branches.
After type propagation, avoid transforming unreachable branches by
explicitly replacing them with Unreachable.  Also use the abstract boolean
value rather than the concrete constant value for branches, just as was
already done for type tests and casts.

R=asgerf@google.com
BUG=

Review URL: https://codereview.chromium.org//1309813009 .
2015-08-28 13:10:22 +02:00
Karl Klose 28e25dc4e6 dart2js: Add test to compile empty main without any libraries.
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org//1320913002 .
2015-08-28 12:57:15 +02:00
Florian Schneider 7e082c1082 VM: Use constant pool also for leaf runtime calls on x64, arm, arm64 and mips.
Remove unused branch/call macro instructions from the assembler.

Setup a frame and pool pointer when invoking leaf runtime functions (in the
deoptimzation stub and store-buffer update stub).

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1314883002 .
2015-08-28 10:46:02 +02:00
Johnni Winther 876bad5b80 Add visitor methods specific to ??= to SemanticSendVisitor.
BUG=
R=karlklose@google.com, sigmund@google.com

Review URL: https://codereview.chromium.org//1313323002.
2015-08-28 10:17:24 +02:00
William Hesse db97aa7e96 Fix hostname checking problem in SecureSocket
BUG=https://github.com/dart-lang/sdk/issues/24071
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//1308773005 .
2015-08-28 10:08:34 +02:00
Vijay Menon e1b1312c66 Update dev_compiler to 0.1.7
R=leafp@google.com

Review URL: https://codereview.chromium.org//1320703004 .
2015-08-27 22:16:18 -07:00
Regis Crelier e6225bee44 Improve async code in VM by not unnecessarily capturing parameters of async and
sync closures, thereby avoiding copy of parameters on entry.
Remove variable aliases in local scopes now that another mechanism detects
use-before-define cases. Keep aliases only for captured variables of outer
functions thereby speeding up scope lookups for all Dart code (not just async).
The next step will be to try to reduce the number of captured variables in
async code.

R=hausner@google.com

Review URL: https://codereview.chromium.org//1317213003 .
2015-08-27 16:49:07 -07:00
Srdjan Mitrovic f857c1ba8e Remove more GrowableObjectArray usage in parser
Allocate appropriate data structures in old space from beginning

BUG=
R=koda@google.com

Review URL: https://codereview.chromium.org//1316373002 .
2015-08-27 13:46:32 -07:00
Leaf Petersen bff9b65509 Strong mode local variable inference
BUG=
R=brianwilkerson@google.com, paulberry@google.com

Review URL: https://codereview.chromium.org//1314793005 .
2015-08-27 13:27:10 -07:00
Todd Turnidge de300cfa0e Process service events as microtasks.
This preserves the ordering among rpc responses and events.

Add assertions that events are processed in order.

Add a correct timestamp for Resume events when we are paused at start.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1315673007 .
2015-08-27 12:31:06 -07:00
John McCutchan ea873dceca Stop analyzer from looking at developer_extension_test 2015-08-27 12:03:41 -07:00
John McCutchan 69092c741d Another dart2js fix 2015-08-27 11:52:43 -07:00
John McCutchan 23a30a8825 Really fix dart2js
BUG=

Review URL: https://codereview.chromium.org//1315193008 .
2015-08-27 11:46:47 -07:00
Natalie Weizenbaum 5778d87dd2 Forward stack traces through stream transformers.
R=lrn@google.com

Review URL: https://codereview.chromium.org//1302363003 .
2015-08-27 11:38:27 -07:00
John McCutchan e2d2eed004 Fix old dart2js patch reference in service extensions
BUG=

Review URL: https://codereview.chromium.org//1311133010 .
2015-08-27 11:36:59 -07:00
John McCutchan 7052bd6bed Rework service extensions to be safe
- When scheduling a service extension to be invoked, store the closure in an array held in the isolate.
- At the tail of IsolateMessageHandler::HandleMessage, invoke all pending service extension closures.

R=iposva@google.com, turnidge@google.com

Review URL: https://codereview.chromium.org//1299493007 .
2015-08-27 11:23:39 -07:00
Daniel Andersson 51de0c8ff4 Refactor skipped code functions interface.
Prepares for parallel marking by encapsulating the skipped code functions set, and moving the finalization out to the GCMarker, after all marking is done.

Also changes the interface in the visitor interface to make it less coupled with the representation of the set.

BUG=
R=iposva@google.com

Review URL: https://codereview.chromium.org//1287463003 .
2015-08-27 11:19:19 -07:00
John McCutchan 021d7c0aa5 Make build incremental
- Make sure observatory's index.html is touched.
- Switch generate_snapshot_bin to have only one output (a timestamp file)

Fixes #24220

R=iposva@google.com, ricow@google.com

Review URL: https://codereview.chromium.org//1304953004 .
2015-08-27 11:14:13 -07:00
Srdjan Mitrovic 42f32322cb Change trail from GrowableObjectArray to ZoneGrowableArray.
BUG=
R=regis@google.com

Review URL: https://codereview.chromium.org//1309113004 .
2015-08-27 09:56:36 -07:00
Asger Feldthaus 7624ec59da Revert "dart2js cps: Use dummy constant in dummy receiver optimization."
This reverts commit 4d20c86fd0.

BUG=

Review URL: https://codereview.chromium.org//1314373003 .
2015-08-27 17:08:59 +02:00
William Hesse 9163181e0e Remove custom .boto file path in tools.
BUG=

TBR=ricow@google.com

Review URL: https://codereview.chromium.org//1315343002 .
2015-08-27 11:36:05 +02:00
Asger Feldthaus 4d20c86fd0 dart2js cps: Use dummy constant in dummy receiver optimization.
Also addresses some other post-commit comments from
https://codereview.chromium.org/1312393002

BUG=
R=sra@google.com

Review URL: https://codereview.chromium.org//1317903002 .
2015-08-27 11:34:00 +02:00
Florian Schneider bad2786f6c VM: Don't depend on unoptimized code when inlining and creating deoptimization info.
This is the first of two steps of removing the requirement to have unoptimized
code when optimizing a function.  This would allow optimizing a function without
generating unoptimized code first.

The only remaining dependency is block reordering (BlockScheduler::AssignWeights) since
the edge counters are currently found in the PC descriptors array associated with
unoptimized code.

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

Review URL: https://codereview.chromium.org//1314143002 .
2015-08-27 11:32:50 +02:00
Asger Feldthaus ca9c113313 dart2js cps: Let effective constant expressions propagate further.
Constants would typically fail to propagate into an argument of a method
call in cases where the receiver of the call might be null. Constants
can safely propagate across the unsafe method lookup.

BUG=
R=kmillikin@google.com

Review URL: https://codereview.chromium.org//1315333002 .
2015-08-27 11:22:49 +02:00
John McCutchan 00d96fbd03 Handle null isolate case in service tracing
BUG=

Review URL: https://codereview.chromium.org//1315243002 .
2015-08-26 17:02:17 -07:00
John McCutchan c9a4013553 More logging for pause tests
BUG=

Review URL: https://codereview.chromium.org//1310863004 .
2015-08-26 16:45:36 -07:00