Regis Crelier
dc0605012f
Move Null type to the Bottom in the VM ( fixes #28025 ).
...
Fix wrong comments.
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2608373002 .
2017-01-05 10:05:31 -08:00
Kevin Millikin
e2ee86b3f7
Fix dart:typed_data runtimeType getters.
...
The proper way to override runtimeType in the VM is not to provide an
overriding getter in Dart code but to rely on Class::UserVisibleName.
This works both with optimizations and also with external typed data.
Closes https://github.com/dart-lang/sdk/issues/28183
BUG=
R=fschneider@google.com
Review-Url: https://codereview.chromium.org/2610513004 .
2017-01-05 11:28:22 +01:00
Jens Johansen
aecb572d76
Include source in kernel.
...
- For now include source uncompressed.
- When running from kernel, use token position 0
(i.e. dummy, but 'real' position) as start and end on functions
and classes to enable Observatory to run with the dill file.
- Debugging does not work, but one can browse the source in
Observatory.
R=kmillikin@google.com
Review-Url: https://codereview.chromium.org/2587673004 .
2017-01-03 14:33:16 +01:00
Jens Johansen
d591b59fcd
Setup local var descriptors in kernel mode.
...
Closes https://github.com/dart-lang/sdk/issues/28054
R=kmillikin@google.com
Review-Url: https://codereview.chromium.org/2589733002 .
2017-01-03 10:23:31 +01:00
Jens Johansen
760c048798
Set correct script on fields in kernel.
...
R=kmillikin@google.com
Review-Url: https://codereview.chromium.org/2583153002 .
2017-01-03 09:56:49 +01:00
Regis Crelier
3334c2402a
Second try: Fix resolution and canonicalization of typedefs and function types
...
in preparation of the new typedef syntax.
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2606993002 .
2016-12-28 14:53:23 -08:00
Regis Crelier
4980107a96
Revert "Fix resolution and canonicalization of typedefs and function types..."
...
Review-Url: https://codereview.chromium.org/2600313002 .
2016-12-27 17:54:00 -08:00
Regis Crelier
291ed0c545
Fix resolution and canonicalization of typedefs and function types in
...
preparation of the new typedef syntax.
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2592263004 .
2016-12-27 16:55:21 -08:00
Florian Schneider
7615e899be
Cache hash code for closures.
...
Computing the hash code for closures is fairly expensive since
it involves the function name and signature strings.
This CL caches the hash code in the ClosureData object.
Fixes #28161 .
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2598623002 .
2016-12-23 11:39:23 +01:00
Kevin Millikin
d9f80a9ac1
Turn the VM's dart:typed_data into a patch
...
Before, the VM's dart:typed_data was a complete replacement of the SDK's
dart:typed_data implementation instead of a patch. This is unlike all
the other SDK libraries. This difference requires special-casing for
dart:typed_data in tools that handle the SDK libraries (e.g., the
Analyzer's patching support, the GN build).
This change makes dart:typed_data back into a patch to the SDK's
implementation. It reintroduces a distinction between abstract
interface and concrete implementation classes, so there are more
classes.
BUG=
R=fschneider@google.com , vegorov@google.com
Committed: https://github.com/dart-lang/sdk/commit/a9b906d319c32525a0600c75c008c92753591d86
Review-Url: https://codereview.chromium.org/2571563005 .
2016-12-22 10:57:21 +01:00
Regis Crelier
62669f1bd1
Add workaround to turn precompilation-release builders green.
...
The real issue still needs to be investigated and fixed.
Review-Url: https://codereview.chromium.org/2596703003 .
2016-12-21 10:29:28 -08:00
Kevin Millikin
f97440848f
Revert "Turn the VM's dart:typed_data into a patch"
...
This reverts commit a9b906d319 .
A lot of things were broken by the changes to implementation class
names.
BUG=
Review-Url: https://codereview.chromium.org/2598603002 .
2016-12-21 12:28:33 +01:00
Kevin Millikin
a9b906d319
Turn the VM's dart:typed_data into a patch
...
Before, the VM's dart:typed_data was a complete replacement of the SDK's
dart:typed_data implementation instead of a patch. This is unlike all
the other SDK libraries. This difference requires special-casing for
dart:typed_data in tools that handle the SDK libraries (e.g., the
Analyzer's patching support, the GN build).
This change makes dart:typed_data back into a patch to the SDK's
implementation. It reintroduces a distinction between abstract
interface and concrete implementation classes, so there are more
classes.
BUG=
R=fschneider@google.com
Review-Url: https://codereview.chromium.org/2571563005 .
2016-12-21 08:34:52 +01:00
Regis Crelier
889b003952
Introduce a SignatureData class so that signature functions can store both their
...
parent function and their signature type. This is required to implement the
new function type syntax.
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2591823002 .
2016-12-20 18:01:45 -08:00
Ryan Macnak
4607e38d28
Reapply "Save and restore feedback from JIT."
...
Ensure ICData is attached to the callee flow graph in the inliner when built from kernel IR, not just from source.
R=fschneider@google.com
Review-Url: https://codereview.chromium.org/2572423004 .
2016-12-16 16:00:17 -08:00
Ryan Macnak
176d732cc3
Revert "Save and restore feedback from JIT."
...
This reverts commit 31ee20297e .
Review-Url: https://codereview.chromium.org/2579413002 .
2016-12-16 13:53:20 -08:00
Ryan Macnak
31ee20297e
Save and restore feedback from JIT.
...
- Adjust fingerprints to be independent of the library's private key, which varies with load order.
- Use usage_counter in AOT inlining decisions if JIT feedback is available.
- Reduce inlining in cold functions.
dart2js product aot snapshot 15841351 -> 14436273 (-8.86%)
R=fschneider@google.com
Review-Url: https://codereview.chromium.org/2562693003 .
2016-12-16 10:21:40 -08:00
Ryan Macnak
dc426c8c52
Rename snapshot kind enum values (kAppWithJIT -> kAppJIT, kAppNoJIT -> kAppAOT).
...
R=fschneider@google.com
Review-Url: https://codereview.chromium.org/2580823003 .
2016-12-15 12:16:02 -08:00
Ryan Macnak
66182e5881
Treat dispatchers and implicit accessors the same for inlining decisions.
...
R=fschneider@google.com
Review-Url: https://codereview.chromium.org/2572543003 .
2016-12-12 15:36:43 -08:00
John McCutchan
f125cc7d0b
Improve the casing of Stackmap and Stacktrace.
...
- [x] Stackmap -> StackMap
- [x] Stacktrace -> StackTrace
This makes us consistent with the Dart language (StackTrace) and
corrects the casing of StackMap.
BUG=
R=rmacnak@google.com
Review-Url: https://codereview.chromium.org/2572563004 .
2016-12-12 14:51:30 -08:00
Regis Crelier
53e93e8b05
Use kFunctionCid instead of kIllegalCid to indicate that a generic function
...
type parameter does not parameterize a class, but a function.
Snapshot generation apparently trips on kIllegalCid.
R=johnmccutchan@google.com , rmacnak@google.com
Review-Url: https://codereview.chromium.org/2567163002 .
2016-12-12 14:13:17 -08:00
Martin Kustermann
b57eaa5f37
VM: Make precompiler process constants/fields only once, avoid using pool.InfoAt()
...
R=fschneider@google.com , vegorov@google.com
Review URL: https://codereview.chromium.org/2556193003 .
2016-12-09 09:52:08 +01:00
Todd Turnidge
e0d350aa27
Implement rewind on all platforms except for dbc.
...
BUG=
Review URL: https://codereview.chromium.org/2534413005 .
2016-12-01 17:19:31 -08:00
Ben Konyi
7e918f5b48
Fixed the conditions of an assert causing the debug VM to crash when trying to load a library from an invalid path. Created copy of a previous deferred_import_t02.dart test from co19 as a regression test until deferred_import_t02.dart is reverted to the previous test.
...
Fixes #27201
R=zra@google.com
Review URL: https://codereview.chromium.org/2537253002 .
2016-11-29 14:07:19 -08:00
Kevin Millikin
ec84b87ebf
Fix some puzzling code in object.cc.
...
Jens was looking through object.cc and he spotted:
if (Original()) ...
where it seems like Original returns a RawField* which is never 0, so
it is always true. It looks like it was intended to be a call to
IsOriginal().
(See https://codereview.chromium.org/1722733002/diff/120001/runtime/vm/object.cc )
BUG=
Review URL: https://codereview.chromium.org/2525633003 .
2016-11-24 09:13:08 +01:00
Martin Kustermann
1aff626804
VM: [Kernel] Split kernel API into 3 steps: ([read binary], parse-binary, bootstrap, load program)
...
This avoids reading and parsing the kernel binary multiple times and avois
having it multiple times in memory (we don't free the 'kernel::Program*' object
ATM).
R=kmillikin@google.com
Review URL: https://codereview.chromium.org/2525623002 .
2016-11-23 09:26:15 +01:00
Todd Turnidge
193ddba4db
Revert "Implement rewind: drop one or more frames from the debugger."
...
This reverts commit af1875be91 .
BUG=
Review URL: https://codereview.chromium.org/2521413002 .
2016-11-22 16:05:26 -08:00
Todd Turnidge
af1875be91
Implement rewind: drop one or more frames from the debugger.
...
Not yet implemented on dbc.
BUG=
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/2523053002 .
2016-11-22 15:26:08 -08:00
Ryan Macnak
5ee71cae9d
Don't include usage counters, etc in snapshots with code. If we already have code, eagerly recompiling in unlikely to have new type feedback.
...
Print snapshot sizes when generating an AOT snapshot from gen_snapshot (e.g., Flutter).
Remove some unnecessary symbols.
Use named constants for exit codes.
Use Log::PrintErr instead of fprintf(stderr) so we see error messages in adb logcat.
R=asiva@google.com
Review URL: https://codereview.chromium.org/2517683002 .
2016-11-22 09:59:06 -08:00
Martin Kustermann
63af3f56ee
VM: [Kernel] Cherry-pick from dart-lang/kernel_sdk
...
Fix a trio of issues in type finalization.
1. We were using is_type_finalized to detect classes that had already been
initialized by DilReader::ReadPreliminaryClass. This state is not
guaranteed by this function, however is_cycle_free is.
2. In the VM, classes that were created type finalized were not marked as
cycle free because finalization did not consider them so cycle-freeness
didn't matter. We would therefore try to initialize these classes with
DilReader::ReadPreliminaryClass and mutate types in them. This causes
them to have unfinalized types but still have is_type_finalized true.
3. Types in top-level procedures were not necessarily finalized. A simple
way to achieve this is to finalize each library's top-level class.
Review URL: https://chromereviews.googleplex.com/520437013 .
R=kmillikin@google.com
Review URL: https://codereview.chromium.org/2514373002 .
2016-11-21 16:38:30 +01:00
Jens Johansen
63e9c7641b
Merge of source position information from kernel-sdk.
...
I.e. use offsets (on some nodes) in the dill file to
get stacktraces with line- and column numbers.
"sdk" version of "kernel-sdk"s
https://chromereviews.googleplex.com/520617013/
R=kmillikin@google.com
Review URL: https://codereview.chromium.org/2512653002 .
Committed: https://github.com/dart-lang/sdk/commit/6fd3a42edb4c7902a49811318de6bb6b18dbd829
2016-11-21 14:13:46 +01:00
Jens Johansen
1056c562aa
Revert "Merge of source position information from kernel-sdk."
...
The commit broke 2 tests:
vm/cc/IsolateReload_TypeIdentityGeneric
vm/cc/SourceReport_Coverage_AllFunctions_ForceCompile
This reverts commit 6fd3a42edb .
BUG=
Review URL: https://codereview.chromium.org/2517953002 .
2016-11-21 11:16:29 +01:00
Jens Johansen
6fd3a42edb
Merge of source position information from kernel-sdk.
...
I.e. use offsets (on some nodes) in the dill file to
get stacktraces with line- and column numbers.
"sdk" version of "kernel-sdk"s
https://chromereviews.googleplex.com/520617013/
R=kmillikin@google.com
Review URL: https://codereview.chromium.org/2512653002 .
2016-11-21 10:19:31 +01:00
Vyacheslav Egorov
30e01bcd67
VM: [Kernel] Relax assertion in Script::GetTokenLocation().
...
Kernel binaries do not carry token streams.
Introduce a dummy URI to identify dummy Script objects created for Kernel entities.
R=rmacnak@google.com
BUG=
Review URL: https://codereview.chromium.org/2511883002 .
2016-11-18 15:58:16 +01:00
Vyacheslav Egorov
2403444eba
VM: Optimize RegExp.matchAsPrefix(...) by generating a sticky RegExp specialization.
...
This is the same as a sticky RegExp flag in ES2015.
Overlay some RegExp fields on top of each other - given that they should never be used simultaneously.
BUG=http://dartbug.com/27810
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/2510783002 .
2016-11-17 17:46:21 +01:00
Regis Crelier
10434a66a0
Add missing canonicalization of cloned uninstantiated types when cloning
...
functions for mixins (fixes #27606 ).
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/2511543002 .
2016-11-16 13:45:39 -08:00
Florian Schneider
86d62d66f2
Allocate generic types in new-space before canonicalizing.
...
A previous CL missed the second allocation site (https://github.com/dart-lang/sdk/commit/6418f8f36caf4f6af2f575c2f1a7ca828d82ee00 ) in Instance::GetType.
Pass space used in GetType() explicitly to use old-space when invoked from the background compiler.
Fixes #27663 .
R=regis@google.com
Review URL: https://codereview.chromium.org/2509013002 .
2016-11-16 12:41:32 -08:00
Vyacheslav Egorov
23fd1a184b
VM: Support bootstrapping core libraries from Kernel binaries instead of source.
...
BUG=http://dartbug.com/27590
R=asiva@google.com
Review URL: https://codereview.chromium.org/2485993002 .
2016-11-16 13:56:20 +01:00
John McCutchan
a776600362
Run field initializers for new instance fields after a reload
...
- [x] When performing a reload, track new fields with initializing expressions.
- [x] After a reload, run the initializing expressions for each new field on all instances of the class.
- [x] Unit tests (heart beat, throwing, and syntax errors)
- [x] Add some utility methods to Function, Field, and Script.
- [x] Fix a major bug in instance morphing and class hierarchy traversal.
Fixes #27666
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/2489723003 .
2016-11-14 13:33:19 -08:00
Regis Crelier
3bf6796440
Clean up encoding of size and single entry flag in Instructions.
...
R=vegorov@google.com
Review URL: https://codereview.chromium.org/2490363002 .
2016-11-11 11:09:37 -08:00
Siva Annamalai
84ad096687
- Turn on canonicalization verification after a reload in debug mode.
...
- Rehash the canonical constants table for all new classes, this fixes
numerous issues found with the canonical verification
also fixes https://github.com/dart-lang/sdk/issues/26868
- Added issue https://github.com/dart-lang/sdk/issues/27803 and
https://github.com/dart-lang/sdk/issues/27802 for remaining bugs.
BUG=#26868
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/2490233004 .
2016-11-10 16:13:33 -08:00
Vyacheslav Egorov
6dce6e87f8
Reduce amount of boilerplate associated with bootstrap libraries.
...
R=fschneider@google.com
BUG=
Review URL: https://codereview.chromium.org/2493473002 .
2016-11-09 16:38:50 +01:00
Zachary Anderson
a1bcf051d8
clang-format runtime/vm
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/2481873005 .
2016-11-08 13:54:47 -08:00
Regis Crelier
cf52536d09
Remove default monomorphic check code from functions and stubs that do not need it.
...
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/2463083002 .
2016-11-03 01:41:14 -07:00
Vyacheslav Egorov
0635b57d43
Reland "Recognize and optimize a.runtimeType == b.runtimeType pattern."
...
This relands commit f4ec20abac .
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/2465793003 .
2016-11-01 16:49:02 +01:00
Ryan Macnak
242e34a623
Don't allocate on the Dart heap during Bigint::ToCString().
...
Closes #27640
R=regis@google.com
Review URL: https://codereview.chromium.org/2449013003 .
2016-10-31 12:49:04 -07:00
Vyacheslav Egorov
16e4f2f1c2
Revert "Revert "Revert "Recognize and optimize a.runtimeType == b.runtimeType pattern."""
...
This reverts commit e495e100dd .
Commit breaks bots that are using Android devices (SIMARM is unaffected).
R=rmacnak@google.com
BUG=
Review URL: https://codereview.chromium.org/2449013004 .
2016-10-26 16:53:32 +02:00
Vyacheslav Egorov
e495e100dd
Revert "Revert "Recognize and optimize a.runtimeType == b.runtimeType pattern.""
...
This reverts commit 890f694de5 .
Previous commit was passing field_type_map_ down in a place where it was not passed down before.
This caused some handles to be used across zones, which caused crashes.
BUG=
Review URL: https://codereview.chromium.org/2453463006 .
2016-10-26 12:25:48 +02:00
Ryan Macnak
890f694de5
Revert "Recognize and optimize a.runtimeType == b.runtimeType pattern."
...
This reverts commit f4ec20abac .
Revert "Use ZoneHandle when creating ConstantInstr"
This reverts commit cb87f2d82f .
This change introduced crashes on AOT and runtime errors on the GN SDK build.
TBR=vegorov@google.com
Review URL: https://codereview.chromium.org/2451893002 .
2016-10-25 13:19:33 -07:00
Regis Crelier
6418f8f36c
Create runtime type in new space and canonicalize to old space ( fixes #27663 ).
...
R=asiva@google.com , hausner@google.com
Review URL: https://codereview.chromium.org/2452563002 .
2016-10-25 04:56:49 -07:00