Commit Graph

499 Commits

Author SHA1 Message Date
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