Srdjan Mitrovic
1595117898
Investigate & fix issues around usage_count and deoptimization_count
...
BUG=
R=fschneider@google.com
Review URL: https://codereview.chromium.org/1559653002 .
2016-01-05 09:40:23 -08:00
Matthias Hausner
8293e9665b
Fix owner of mixin forwarding constructors
...
Not sure why the new test appears to be a change to existing files, rather than an new files. I'm too dumb for git.
BUG=25246
R=regis@google.com
Review URL: https://codereview.chromium.org/1533823004 .
2015-12-17 14:16:40 -08:00
Regis Crelier
173c1aed51
Improve upper bound finalization in VM and fix #25122 .
...
Add regression test.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1513493002 .
2015-12-08 14:38:27 -08:00
Srdjan Mitrovic
c4aee38224
Pass type argument to Field construction, thus freezing that field, denoting it cannot be changed later.
...
BUG=
R=regis@google.com , rmacnak@google.com
Review URL: https://codereview.chromium.org/1406943006 .
2015-11-09 13:54:57 -08:00
Siva Annamalai
99abe7d883
- Some cleanup of dynamic_type usage.
...
- Avoid egregious creation of handles in Class::CreateInvocationDispatcher
R=regis@google.com
Review URL: https://codereview.chromium.org/1409113006 .
2015-10-21 17:24:10 -07:00
Matthias Hausner
647ada25ed
Make enum values array canonical
...
BUG=24594
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1407103002 .
2015-10-15 15:56:25 -07:00
Srdjan Mitrovic
e520dd567f
Remove isolate argument from handle allocation: Part I
...
BUG=
R=hausner@google.com
Review URL: https://codereview.chromium.org/1393373003 .
2015-10-12 11:32:08 -07:00
Srdjan Mitrovic
8c7a94e9f4
Preparation for moving reusable handles to thread and more cleanups: isolate -> thread based handle allocation.
...
BUG=
R=koda@google.com
Review URL: https://codereview.chromium.org/1384403002 .
2015-10-06 10:17:12 -07:00
Regis Crelier
451eaab718
Remove --supermixin flag from VM.
...
Update tests and test status files.
Fixes #24479 .
R=hausner@google.com
Review URL: https://codereview.chromium.org/1383923002 .
2015-10-01 18:04:31 -07:00
Srdjan Mitrovic
98340f7d9e
Do not eagerly finalize when optimizing. Remove allocation of temporary strings in new space.
...
BUG=
R=regis@google.com
Review URL: https://codereview.chromium.org//1368173002 .
2015-09-25 14:30:48 -07:00
Daniel Andersson
a1bc527306
Migrate logging infrastructure Isolate->Thread
...
This enables thread-safe logging (e.g., ISL_Print, which will soon be renamed to THR_Print), which is needed for concurrent
marking (DetachCode) and compilation.
Make finalization of GC marking tasks concurrent, now that it's thread-safe.
BUG=
R=iposva@google.com
Review URL: https://codereview.chromium.org//1314673008 .
2015-09-09 15:30:38 -07:00
Srdjan Mitrovic
cba48a6ab6
More cleanups for background compilation.
...
BUG=
R=hausner@google.com
Review URL: https://codereview.chromium.org//1325373004 .
2015-09-06 11:10:48 -07:00
Siva Annamalai
79ef28317f
Changes to prepare for allowing script snapshots to be taken after running the main application:
...
- Rename accessors of class Field to make it more apparent as to what is being accessed (static field values or instance field offsets
- Use precompiled initializer state (Used only during precompilation) to also store saved initial value of static fields (Used only during application snapshot generation)
BUG=
R=hausner@google.com , rmacnak@google.com
Review URL: https://codereview.chromium.org//1289643005 .
2015-09-04 11:03:46 -07:00
Srdjan Mitrovic
7fb555045a
Remove allocation in old space ....
...
Eliminate need for GrowableObjectArray, allocate constants in old space.
BUG=
R=regis@google.com
Review URL: https://codereview.chromium.org//1305223006 .
2015-09-02 08:59:33 -07:00
Ivan Posva
4bd7cdc75c
- Ensure that HandleScope is initialized with a thread. (Remove
...
deprecated isolate based API.)
- Update all code impacted by this change. E.g. DARTSCOPE
- TEST_CASE now passes the current thread as a parameter to the unit test.
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org//1310463005 .
2015-09-01 17:18:55 -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
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
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
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
Srdjan Mitrovic
4280716656
Remove new space allocation in optimizing compiler, use Symbols::FromConcat where appropriate
...
BUG=
R=hausner@google.com
Review URL: https://codereview.chromium.org//1303923002 .
2015-08-20 15:13:06 -07:00
Srdjan Mitrovic
ce439a353c
Trace CHA optimizations (where, when, why)
...
BUG=
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//1289933002 .
2015-08-13 13:47:34 -07:00
Siva Annamalai
228e0877a7
Use Object::null_instance and Object::null_function and do not create Handles everytime.
...
BUG=
R=hausner@google.com
Review URL: https://codereview.chromium.org//1289813005 .
2015-08-13 10:57:18 -07:00
Regis Crelier
15de03e2d5
Allow super calls in mixins (for now behind a --supermixin flag).
...
As a consequence, allow a mixin application alias as a mixin, even if it does
not extend Object.
Add new tests.
Fix an existing test.
Update status files.
Fixes #23771
R=hausner@google.com
Review URL: https://codereview.chromium.org//1232613005 .
2015-07-17 11:32:23 -07:00
Matthias Hausner
ce917c5160
Redirection type of a redirecting factory can be deferred
...
BUG=23408
R=regis@google.com
Review URL: https://codereview.chromium.org//1219023002 .
2015-06-30 14:57:07 -07:00
Siva Annamalai
298a2f467f
Add an assertion to ensure that the return type and types of parameters are canonical or a TypeParameter.
...
BUG=
R=regis@google.com
Review URL: https://codereview.chromium.org//1182673002 .
2015-06-11 18:09:41 -07:00
Ivan Posva
f5e3f94019
Fix http://dartbug.com/23578 :
...
- Complete revamp of isolate-specific flags.
- Associate flags with the isolate on creation.
- Dart_CreateIsolate and associate callback do take an
extra flags argument.
- Make sure to clear IC data array when clearing code.
BUG=23578
Review URL: https://codereview.chromium.org//1162033005
2015-06-07 17:57:34 +02:00
Ryan Macnak
4102b0c446
Canonicalize mixin type during class finalization. Add asserts that most types are canonical.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//1167583002
2015-05-29 15:29:04 -07:00
Srdjan Mitrovic
d7d0d92ec3
Do not eagerly add guarded leaf classes with CHA; do not add them for private names.
...
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//1158673004
2015-05-29 08:57:34 -07:00
Daniel Andersson
ea46192ca3
VM-internalize the default Map implementation.
...
Make the compact linked hash map, which is the default implementation for Map
(including map literals), a VM-internal class.
This makes it easy to have more efficient serialization of maps (although for
now, the implementation is straight-forward).
Refactor the compact hash class hierarchy to enable the VM-internal class and
the rest (also the Set classes) to share a maximal amount of code, by using
two different bases for implicit/explicit fields.
Remove existing proof-of-concept, C++-based internal VM-class.
BUG=http://dartbug.com/22982
R=asiva@google.com
Review URL: https://codereview.chromium.org//1151523002
2015-05-28 09:32:54 -07:00
Ryan Macnak
7c02eae5ec
Actually use canonicalized parameter and return types.
...
149.4kB -> 43.5kB (-70%) of Type, TypeArgument and TypeParameter in hello world
R=regis@google.com
Review URL: https://codereview.chromium.org//1162513002
2015-05-27 18:11:44 -07:00
asiva@google.com
8f9eee3f22
- Use conditional code inclusion for the dart_no_snapshot and dart executables using the MACRO DART_NO_SNAPSHOT
...
- Do some minor modifications to the intrinsifier code to not do redundant fingerprint checks and avoid code duplication.
These changes result in a text segment size savings of about 110k.
Old Sizes:
text data bss dec hex filename
3801418 7696 19261 3828375 3a6a97 (TOTALS)
New sizes:
text data bss dec hex filename
3690342 7696 19261 3717299 38b8b3 (TOTALS)
Review URL: https://codereview.chromium.org//1134623004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45704 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-11 18:31:55 +00:00
srdjan@google.com
3ac643115f
Remove unneeded flag declaratiosn (enable_type_checks, enable_asserts).
...
R=hausner@google.com
Review URL: https://codereview.chromium.org//1133793002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45647 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 16:48:43 +00:00
regis@google.com
52b19e2b14
Make sure the bound of a mixin type parameter is finalized before instantiating
...
it during finalization (fix issue 23385).
Print more info in ToCString() for an unresolved type.
Review URL: https://codereview.chromium.org//1124253004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45598 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-07 16:08:11 +00:00
johnmccutchan@google.com
2f7cff7170
Display isolate message queue in Observatory debugger
...
- Log the parameters to RPCs
- Display messages like stack frames
- handler function and script visible
- message preview instead of local variables
- Expanded and previewed messages do not collapse when stepping within the existing message
- Mark patch classes as finalized to avoid ASSERT on class_finalizer.cc:2358 **
- Support iterating over message queues
- Support printing the message queue as JSON
- Inhibit OOB messages from being handled if we are iterating over the message queue
- avoids dead lock when looking up port handler (done in Dart code with message handler locked) and a stack overflow trigger to handle OOB messages
- make getObject understand message ids
- Fix dartbug.com/23355
** Need to discuss with Ivan and Matthias (reviewed code differs from committed code but matches my fix):
https://codereview.chromium.org//828353002
https://code.google.com/p/dart/source/detail?r=42612
R=turnidge@google.com
Review URL: https://codereview.chromium.org//1122503003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45505 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-04 20:20:44 +00:00
regis@google.com
11fb39533c
Make sure declared upper bounds are resolved when finalizing a type containing a
...
cycle via bounds (issue 23089).
Add regression test.
R=asiva@google.com
Review URL: https://codereview.chromium.org//1066043002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44956 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-08 00:59:52 +00:00
regis@google.com
47b17b78e4
Make sure the mixin class is finalized immediately (and not some time later)
...
before applying mixin members (issue 22719).
Add regression test.
R=asiva@google.com
Review URL: https://codereview.chromium.org//994103002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44383 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-10 18:39:50 +00:00
rmacnak@google.com
4de5f89b99
Rename IsConstructor to IsGenerativeConstructor.
...
This matches the terminology in the spec, and it avoids confusion with the function kind kConstructor, which indicates either a generative constructor or a factory constructor.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//910313002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43673 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-11 00:59:19 +00:00
zra@google.com
1299ad1485
Allows turning on checked mode on a per-isolate basis
...
using the embedding API.
R=regis@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//883263004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43481 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-04 18:32:48 +00:00
hausner@google.com
6488a19c90
Patch classes do not need to be finalized
...
The fields and functions of a patch class are copied to the
patched class after parsing. There is nothing to do when finalizing
a patch class, so return immediately.
The debugger ran into an overly strict assertion when finalizing
a patch class. This fixes the issue. (Issue 21039).
Review URL: https://codereview.chromium.org//828353002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42612 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-05 20:51:52 +00:00
hausner@google.com
ab3af6ec00
Introduce is_debuggable state bit on function objects
...
Simplify debugger logic. Any function can be marked as
non-debuggable when is is created. The debugger no longer
needs a heuristic which functions are debuggable.
Mostly used for synthetic, generated functions that
have no source code, e.g. async code, implicit getters and
setters, implicit constructors, forwarding constructors,
dispatcher functions.
Review URL: https://codereview.chromium.org//789643006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42570 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-29 22:31:17 +00:00
fschneider@google.com
6fc87187a6
Fix implementation of the Iterable interface for typed data lists.
...
Return an Iterable with the correct type arguments (instead of <dynamic>)
when calling Iterable methods.
R=lrn@google.com
Review URL: https://codereview.chromium.org//763443005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42066 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-02 13:25:36 +00:00
iposva@google.com
1ee14fee2e
Fix dartbug.com/21671:
...
- Properly canonicalize enum values.
- Ensure canonical objects are deserialized properly.
R=asiva@google.com
Review URL: https://codereview.chromium.org//745023002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41874 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-20 23:31:10 +00:00
hausner@google.com
4bf624ebc0
Implement enum types in VM
...
Fully support enum types as per language spec version 1.6.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//735723003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41815 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-18 23:10:07 +00:00
regis@google.com
5c55e61647
Resubmit fix for Function::Clone() and Field::Clone() to adjust the class owner
...
of type parameters (issue 18630).
Make sure to clone the parameter type array as well.
Add regression tests.
R=iposva@google.com
Review URL: https://codereview.chromium.org//693693003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41474 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-03 23:16:33 +00:00
iposva@google.com
6266f1d4a0
- Do not attempt to set parameter types if they
...
were already finalized.
R=zra@google.com
Review URL: https://codereview.chromium.org//652743007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41182 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-17 21:50:28 +00:00
regis@google.com
0220e41d72
New bigint implementation in the vm.
...
R=srdjan@google.com
Review URL: https://codereview.chromium.org//509153003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40061 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-09 21:47:44 +00:00
asiva@google.com
2c7cb613ab
Use isolate parameter while creating handles during class finalizers.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//506683003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39568 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-26 20:54:16 +00:00
hausner@google.com
0bbf6c5b16
Runtime support for evaluation of static field initializer expressions
...
Eliminates the generation of field initializer functions by the parser.
Adds a runtime call that creates a one-shot function to evaluate the
initializer of a static field. The runtime function gets called from
the implicit static getter function for the field.
R=srdjan@google.com , zra@google.com
Review URL: https://codereview.chromium.org//471283002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39387 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-19 21:53:44 +00:00
fschneider@google.com
54a7410866
Fix bug with CHA dependencies by recording a set of classes for registering code.
...
CHA is not only used with the receiver class, but also with other classes
when doing type propagation. The optimized code has to be registered with
all classes that are affected by CHA so that deoptimization occurs whenever
the set of subclasses changes for these classes.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//463103002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39194 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-13 12:43:03 +00:00
fschneider@google.com
a908179df8
VM: Fix bug in CHA for signature classes.
...
The subclasses for the _FunctionImpl class were not tracked in the VM.
As a result, CHA would incorrectly assume that _FunctionImpl does not have
any subclasses.
This may cause incorrect optimization and caused unnecessary deoptimizations.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//446373002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38981 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-07 12:46:18 +00:00