Ivan Posva
5be5d54529
- Refactor Symbol allocation to expect a thread parameter.
...
- Preallocate all tokens as symbols to avoid repeated lookups.
- Pass thread/zone where useful while doing this change.
- Avoid allocating symbols for error messages.
BUG=
R=fschneider@google.com
Review URL: https://codereview.chromium.org/1870343002 .
2016-04-11 16:28:29 -07:00
Siva Annamalai
78a6b46155
Provide ability to patch external functions in a class that has already been finalized. The following restrictions are in place:
...
- No new fields or patching of existing fields can be done
- Only external methods that have not already executed (i.e code for it has been generated) can be patched
This change enables patching of JS Interop methods into a class and provides close to 5 sec drop in start up times for Green Tea app.
R=hausner@google.com , regis@google.com
Review URL: https://codereview.chromium.org/1850653003 .
2016-03-31 20:06:44 -07:00
Regis Crelier
966aea003b
Remove recently introduced FunctionType vm class by merging it into class Type.
...
Fix syntax used when printing function type with optional named parameters.
Fix several issues discovered with cloning function types.
R=hausner@google.com
Review URL: https://codereview.chromium.org/1815733003 .
2016-03-21 14:08:57 -07:00
Ivan Posva
f95b15eaa1
- Undo experiment.
...
BUG=
Review URL: https://codereview.chromium.org/1797393004 .
2016-03-16 05:01:15 -07:00
Ivan Posva
1413ef7a75
- REI experiment.
...
BUG=
Review URL: https://codereview.chromium.org/1804363002 .
2016-03-16 01:48:17 -07:00
Regis Crelier
ea7929d2fb
Ignore bounds in compile time type tests, since they will have been checked at
...
run time (fixes issue 25935).
Add regression test.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1780333002 .
2016-03-10 14:22:44 -08:00
Regis Crelier
699890db11
Introduce experimental flag --reify in the vm.
...
Note that many tests will fail when using --no-reify, since expected type errors
are not reported.
R=iposva@google.com
Review URL: https://codereview.chromium.org/1517153004 .
2016-03-01 10:03:18 -08:00
Ivan Posva
8d18298fed
- Remove Isolate::Flags structure and store flags directly in isolate.
...
- Make enable_asserts, enable_type_checks, error_on_bad_override and
error_on_bad_type release mode flags only.
BUG=
R=fschneider@google.com
Review URL: https://codereview.chromium.org/1737693003 .
2016-02-25 18:06:56 -08:00
Regis Crelier
3ffe9922b7
Simplify various name flavors in VM.
...
R=asiva@google.com , johnmccutchan@google.com
Review URL: https://codereview.chromium.org/1723733002 .
2016-02-25 11:21:27 -08:00
Florian Schneider
b870dafa4f
VM: Separate precompilation-specific code, make flags const.
...
Move optimizations for precompilation into separate file.
Remove precompilation-specific code from flow_graph_optimizer.cc.
Add precompilation-flags: They are const in the precompiled runtime. Started moving flags to use the new flag-definition macros.
Add libdart_lib_precompiled target.
Define PRECOMPILED_RUNTIME_MACRO in more places (dart_precompiled_runtime)
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1714743002 .
2016-02-23 08:48:08 -08:00
Jacob Richman
6a0b321026
Allow factory constructors on mixin classes.
...
This mitigates a breaking change impacting real users caused by 851b4a995c .
The spec will be updated to allow factory constructors on mixins.
R=gbracha@google.com , iposva@google.com
Review URL: https://codereview.chromium.org/1699233002 .
2016-02-22 10:19:49 -08:00
John McCutchan
fda3a9bc2b
Remove more things
...
(stripped) dart_product before: 5307888
(stripped) dart_product after: 5275088
Reduction in size: 32800 bytes.
Removed entirely:
- debuginfo*
- elfgen*
- gdbjit*
- TraceBuffer
- vtune support
Removed in product:
- Compiler stats
- Code observers
R=asiva@google.com
Review URL: https://codereview.chromium.org/1711163002 .
2016-02-22 08:53:11 -08:00
Regis Crelier
7ab578d21f
Keep a trail while checking upper bounds in the VM in order to properly handle
...
cycles via bounds (fixes #25568 ).
Add a regression test.
Improve handling of recursive types with trails.
Make sure we do not modify already canonicalized types.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1674383002 .
2016-02-09 10:49:43 -08:00
Srdjan Mitrovic
4316d1bd17
Move sticky_error_ from isolate to thread
...
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org/1672853002 .
2016-02-05 15:46:55 -08:00
John McCutchan
d77d376124
Replace intptr_t with TokenDescriptor
...
- Use TokenDescriptor instead of intptr_t for all token positions.
- Use TokenDescriptor in raw_object instead of int32_t.
- TokenDescriptor is a POD with an int32_t (this shrinks the size of AST and IR nodes by 32-bits on 64-bit architectures).
There are some cleanups I plan on doing as a follow up CL:
- Replace TokenDescriptor::value() with TokenDescriptor::TokenPos()
R=iposva@google.com , rmacnak@google.com
Review URL: https://codereview.chromium.org/1644793002 .
2016-02-02 10:15:44 -08:00
Regis Crelier
48fc233896
Fix typedef cycle check ( fixes #25620 ).
...
Add regression test.
Fix BuildName for function types.
R=asiva@google.com
Review URL: https://codereview.chromium.org/1654273003 .
2016-02-01 14:43:37 -08:00
Regis Crelier
daf672405c
Relax assert when applying a mixin application alias ( fixes #25617 ).
...
Update status file.
R=hausner@google.com
Review URL: https://codereview.chromium.org/1653593002 .
2016-01-29 15:17:35 -08:00
Regis Crelier
220f8c57b3
Resolve signature from correct scope class ( fix #25609 ).
...
Add regression test.
R=asiva@google.com
Review URL: https://codereview.chromium.org/1647653007 .
2016-01-28 13:29:28 -08:00
Matthias Hausner
851b4a995c
Compile-time error if mixin class has a factory
...
The VM now reports the location of the mixin application as well as
the location of the illegal constructor in the mixin class.
Update test language/mixin_illegal_constructor_test to follow the spec.
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1638923002 .
2016-01-26 12:43:48 -08:00
Regis Crelier
7f57ebcfa1
Remove signature classes from the VM.
...
They were used as the class of closure instances and as the type class of
function types.
All closure instances now have class _Closure and function types are represented
by a new class FunctionType extending AbstractType.
Fix issue 24567 and add regression test.
R=asiva@google.com , rmacnak@google.com
Review URL: https://codereview.chromium.org/1584223006 .
2016-01-19 16:32:59 -08:00
Regis Crelier
096843b648
Allow super type to be malformed (fixes issue 25426).
...
Update co19 status file.
Review URL: https://codereview.chromium.org/1588723002 .
2016-01-19 15:45:30 -08:00
Matthias Hausner
782f7b268b
Report missing semicolons after function declarations
...
Also take the opportunity to add the ability to report an error after a given token position. This way, the missing semicolon gets reported where it should: at the end of the line rather than the first token on the following line, when the error is actually detected.
BUG= 23761
R=regis@google.com
Review URL: https://codereview.chromium.org/1574213005 .
2016-01-19 09:31:33 -08:00
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