iposva@google.com
dc2c8b3707
- Consolidate code into the old generation.
...
- Record pointers between code objects.
- Collect unreferenced code objects.
Review URL: https://codereview.chromium.org//11265026
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14113 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-25 23:46:01 +00:00
srdjan@google.com
9c4cb91442
Trace when disabling optimized code (--trace-disabling-optimized-code)
...
Review URL: https://codereview.chromium.org//11282003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14036 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-24 20:38:53 +00:00
hausner@google.com
08bc0fb331
Add == method name to symbol table
...
Review URL: https://codereview.chromium.org//11236050
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13915 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-22 23:23:57 +00:00
srdjan@google.com
90967baab9
Fix super ==: Test first for null before call inf super ==.
...
Review URL: https://codereview.chromium.org//11230034
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13907 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-22 20:33:12 +00:00
regis@google.com
3f0b894dbe
Enforce new optional parameter rules.
...
Review URL: https://codereview.chromium.org//11186064
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13891 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-22 16:46:26 +00:00
srdjan@google.com
03a61f332c
Apply optimization after class-id propagation: instance calls without ICData are optimized by using input argument class-ids to create fake ICData. This reduces the number of deoptimizations.
...
Review URL: https://codereview.chromium.org//11187046
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13798 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-18 20:41:58 +00:00
tball@google.com
2cd8436c5a
Changed StackZone and ApiZone to be containers for Zone.
...
BUG=
Review URL: https://codereview.chromium.org//11028145
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13707 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-16 22:05:40 +00:00
hausner@google.com
1811a6b913
Support for type dynamic in VM
...
Old name Dynamic is supported, and automatically converted to
lower-case dynamic when parsed.
VM flag --warn_legacy_dynamic prints warnings when Dynamic
is found.
Review URL: https://codereview.chromium.org//11125005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13637 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-12 22:40:24 +00:00
asiva@google.com
1bf642129d
- Get rid of RawClosure class and use RawInstance for closures.
...
- Simplify SetRaw to not require an access to the Current Isolate.
Review URL: https://codereview.chromium.org//11087070
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13581 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-11 20:34:08 +00:00
fschneider@google.com
667b0d5185
Mark optimized functions with a * in the perf event symbol output.
...
This allows to distinguish time spent in optimized code vs unoptimized code
in our profile information.
Review URL: https://codereview.chromium.org//11028143
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13547 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-11 15:07:49 +00:00
srdjan@google.com
8e7aee9048
Address Florian's comments.
...
Review URL: https://codereview.chromium.org//11090027
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13427 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 18:46:25 +00:00
iposva@google.com
5f2f50f960
Land http://codereview.chromium.org/11047027/ for Matthias:
...
Implement export clause in VM
Implement export namespace support in VM compiler.
Missing functionality: ensuring that a name is only re-exported once.
Review URL: https://codereview.chromium.org//11028084
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13384 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 00:14:42 +00:00
ager@google.com
70216ab4cd
Hide internal details of VM string implementation.
...
R=lrn@google.com ,srdjan@google.com
BUG=
Review URL: https://codereview.chromium.org//11035057
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13352 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-08 13:00:33 +00:00
regis@google.com
3a45259cc5
Implement new scope rules for type variables (issue 5230).
...
Fix tests.
Review URL: https://codereview.chromium.org//11030056
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13316 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-05 20:29:02 +00:00
tball@google.com
76d7c9b105
Renamed Zone->StackZone, BaseZone->Zone, in preparation for changing isolate->get_zone() to return what was called the BaseZone instead of its wrapper. The GetBaseZone() methods were not renamed, to help the next CL.
...
BUG=
Review URL: https://codereview.chromium.org//11040062
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13314 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-05 19:52:55 +00:00
iposva@google.com
c8df70b904
Fix bug 5575:
...
- Remove residue of typed arrays from dart:core.
Review URL: https://codereview.chromium.org//11031063
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13274 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-05 06:52:42 +00:00
srdjan@google.com
717e3c0396
Support for mixed null/smi equality: do not deoptimize, emit same optimized code as if that was smi-equality only.
...
Moved assert for duplicate class checks into ICData.
Allow CheckClassInstr to check for Smi as well.
Review URL: https://codereview.chromium.org//11048032
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13254 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 19:35:23 +00:00
kmillikin@google.com
932b29c74e
Pack deopt ID into the return before and return after deopt instructions.
...
Pack it into a machine word-sized bit field along with the object table
index. The commands do not implicitly use the object table index any more,
which allows removing deopt IDs from the object table and pooling function
entries.
R=srdjan@google.com
BUG=
Review URL: https://codereview.chromium.org//11014020
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13214 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 09:03:28 +00:00
kmillikin@google.com
d7115e5eda
Remove deoptimization index PC descriptors.
...
Put the PC (offset) of the deoptimization point and the deoptimization
reason in the DeoptInfo table. The table entries are now triples of
(PC offset, info, reason).
R=srdjan@google.com
BUG=
Review URL: https://codereview.chromium.org//10982088
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13056 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-01 10:16:22 +00:00
ager@google.com
abee5139e5
Reapply change to hide VM-only List implementation classes.
...
The performance issue was that I had not updated the method
recognizer.
BUG=
Review URL: https://codereview.chromium.org//10990083
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13003 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-28 11:08:38 +00:00
iposva@google.com
b85f604f66
- Implement first class types in the VM.
...
- Make AbstractType a subclass of Instance and map it and its subclasses
to private Dart classes in dart:core implementing the Type interface.
- Avoid dispatching through statics in Object if not strictly needed.
Review URL: https://codereview.chromium.org//10979058
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12981 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-27 21:19:00 +00:00
ager@google.com
fe66a0af1a
Revert hiding of VM-only coreimpl list implementation types. While I
...
investigate performance regression (even after fixing constructors
in the intrinsifier).
R=iposva@google.com ,srdjan@google.com ,fschneider@google.com
BUG=
Review URL: https://codereview.chromium.org//11000025
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12963 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-27 14:07:56 +00:00
ager@google.com
8e6a2c8345
Hide VM-only coreimpl List implementation types. These should not be
...
exposed as visible parts of coreimpl.
Review URL: https://codereview.chromium.org//10990055
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12952 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-27 12:37:30 +00:00
regis@google.com
656cdf40d4
Fix snapshot reading of canonicalized types.
...
Change some redirecting factory compile-time errors into dynamic errors after
discussion with Gilad (negative tests still missing).
Review URL: https://codereview.chromium.org//10996002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12872 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-25 19:26:53 +00:00
srdjan@google.com
11abda4702
Move HasOneTarget to ICData.
...
Review URL: https://codereview.chromium.org//10981010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12854 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-25 17:19:11 +00:00
zerny@google.com
cd514c84b4
Add is_inlinable field to functions.
...
Repeated attempts at inlining functions that cannot be inlined leads to
noticeable performance regression when compiling with dart2js.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//10989016
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12842 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-25 12:58:51 +00:00
asiva@google.com
690b823195
Fix the types used in bit fields and a few other places.
...
Review URL: https://codereview.chromium.org//10967044
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12820 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-24 23:25:44 +00:00
hausner@google.com
928148cfc3
Address Siva's comments
...
TBR=asiva
Review URL: https://codereview.chromium.org//10982012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12811 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-24 21:53:45 +00:00
hausner@google.com
201bce4219
Support for show/hide combinators
...
- Add a new VM object called a Namespace.
- A Namespace is a library, and two list of names to hide/show.
- Convert Library and LibraryPrefix to contain Namespace
objects instead of Libraries in their import list.
Review URL: https://codereview.chromium.org//10967052
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12804 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-24 20:46:56 +00:00
regis@google.com
61297238fb
Support redirecting factory constructors in the VM (issue 3969).
...
Add test (negative tests still missing).
Some more work is needed regarding when to throw a dynamic error and when to
report a compile-time error. Some questions are not answered by the spec.
Review URL: https://codereview.chromium.org//10964058
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12791 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-24 17:28:37 +00:00
kmillikin@google.com
c70bcfcfa3
Support constant folding of instructions with constant smi values.
...
In sparse conditional constant propagation, replace instructions with
constant smi values with their constant value. Extend the analysis to
understant shift and bitwise binary operations.
R=fschneider@google.com
BUG=
Review URL: https://codereview.chromium.org//10968058
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12778 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-24 13:14:54 +00:00
asiva@google.com
4140ed9d5b
Fix for issue 5223 : Import 'dart:core' implicitly only if it has not been
...
already explicitly imported in the script.
Review URL: https://codereview.chromium.org//10949028
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12673 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-21 00:43:08 +00:00
kmillikin@google.com
67021511ca
Make some static helpers into member functions.
...
Four helper functions that moved from lib/integers.cc to vm/object.cc so
they could be used during constant folding are more properly member
functions than static functions.
R=srdjan@google.com
BUG=
Review URL: https://codereview.chromium.org//10937030
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12620 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-20 08:38:33 +00:00
ager@google.com
e676e88f81
Introduce a VM-only dart:scalarlist library for byte arrays.
...
Include it in the SDK so users can use it. Create a dummy
implementation and patch file for the library for dart2js so it can be
documented. Johnni, can you think of a nicer way of making
documentation generation work for a VM only library? Also, it seems that
patching kills the documentation comments and they do not show up in
the generated docs.
R=iposva@google.com ,johnniwinther@google.com
BUG=
Review URL: https://codereview.chromium.org//10919267
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12616 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-20 07:08:10 +00:00
hausner@google.com
38f8f3cbfa
Add virtual method to Object to ease dictionary code
...
Add a virtual method at the root of the object hierarchy
that returns the name of the object that is used in the
namespace dictionary. Only object types that are kept in
the dictionary need to overwrite the default implementation.
Review URL: https://codereview.chromium.org//10945020
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12577 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-19 17:09:42 +00:00
kmillikin@google.com
be0492a8a8
Reapply "Initial implementation of sparse conditional constant propagation."
...
With a fix for compilation on Mac. GrowableArray is DISALLOW_COPY_AND_ASSIGN,
so we can't create a temporary one to be ignored and have to pass one in to be
ignored.
R=fschneider@google.com ,zerny@google.com
BUG=
Review URL: https://codereview.chromium.org//10949020
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12561 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-19 14:10:14 +00:00
kmillikin@google.com
5e449aea52
Revert "Initial implementation of sparse conditional constant propagation."
...
Revert due to compilation failures on Mac.
TBR=fschneider@google.com
BUG=
Review URL: https://codereview.chromium.org//10946027
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12552 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-19 11:04:36 +00:00
kmillikin@google.com
ae9efbfab0
Initial implementation of sparse conditional constant propagation.
...
Use the results of SCC to eliminate unreachable code.
BUG=
Review URL: https://codereview.chromium.org//10943007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12549 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-19 10:34:14 +00:00
regis@google.com
87c144334f
Fix bad optimization of instance-of with uninstantiated types (issue 5216).
...
Fix bad assert when type check elimination is disabled (issue 5217).
Cleanup of type elimination code in optimizing compiler.
Add test.
Review URL: https://codereview.chromium.org//10942006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12502 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-18 15:12:43 +00:00
zerny@google.com
aa5281c88a
Reapply "Deoptimization support in inlined code."
...
This reapplies r12488 with a fix.
R=kmillikin@google.com ,fschneider@google.com
Review URL: https://codereview.chromium.org//10952002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12499 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-18 13:41:20 +00:00
zerny@google.com
e174be3f27
Revert "Deoptimization support in inlined code."
...
This reverts commit a78e33f178aae74a97f4231ca98183adf97fda71.
TBR=fschneider@google.com
Review URL: https://codereview.chromium.org//10948007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12492 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-18 12:18:04 +00:00
zerny@google.com
64a9ca2b81
Deoptimization support in inlined code.
...
Review URL: https://codereview.chromium.org//10928232
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12488 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-18 11:53:59 +00:00
turnidge@google.com
a28d475ff3
Implement more of the mirrors library, primarily stuff to do with types.
...
Highlights:
- Implement FunctionClassMirror, used to reflect on the class of
function objects.
- Implement TypeVariableMirror, used to reflect on type variables.
- Implement TypedefMirror, used to reflect on typedefs.
- Implement returnType for MethodMirror
- Implement type for VariableMirror/ParameterMirror
- Added supporting functions to the dart embedding api:
- Dart_ClassIsTypedef
- Dart_ClassGetTypedefReferent
- Dart_ClassIsFunctionClass
- Dart_ClassGetFunctionClassSignature
- Dart_FunctionReturnType
- Dart_FunctionParameterType
- Dart_VariableType
- Dart_GetTypeVariableNames
- Dart_LookupTypeVariable
- Dart_IsTypeVariable
- Dart_TypeVariableOwner
- Dart_TypeVariableUpperBound
Other stuff:
- Fixed bug in Function::NumberOfImplicitParameters for signature
functions.
- Chnaged the default upper bound for type variables to Object from
Dynamic. Discussed this with Gilad and Regis.
- Fixed some smaller problems in mirrors_impl.dart.
Review URL: https://chromiumcodereview.appspot.com//10916252
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12342 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-13 17:47:25 +00:00
iposva@google.com
2f455ce6a4
- Move double and int implementations into dart:core and make them private.
...
Review URL: https://codereview.chromium.org//10918213
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12330 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-13 14:13:55 +00:00
lrn@google.com
292da5cc48
Make int an abstract class.
...
This looks deceptively simple (the only real change is in init, which
just copies the code for double, and the rest are just renaming for
consistency). It seems to work.
Review URL: https://chromiumcodereview.appspot.com//10933039
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12304 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-13 07:17:27 +00:00
asiva@google.com
724b8600d4
Move all the closure related fields in RawFunction into a new class
...
called RawClosureData
Add a field called 'data_' in RawFunction which points to a RawClosureData
object for closure functions, a signature class for signature functions or
an implicit closure function if there is an implicit closure for a regular
function.
This ensures that we don't burn 5 fields in RawFunction for normal functions.
The heap savings from this change on standalone dart is about 67k.
After this change:
New space (0k of 32768k) Old space (886k of 1024k) Code space (0k of 0k)
Prior to this change:
New space (0k of 32768k) Old space (953k of 1024k) Code space (0k of 0k)
Review URL: https://chromiumcodereview.appspot.com//10917222
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12290 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-13 00:20:37 +00:00
regis@google.com
e860f819a0
Limit the maximum number of formal parameters (32K fixed and 32K optional)
...
in order to save space in function objects.
Naming cleanup.
Review URL: https://codereview.chromium.org//10928160
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12288 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-12 23:35:05 +00:00
hausner@google.com
d12165f5ca
Fix dart2js status for raw string test
...
Review URL: https://chromiumcodereview.appspot.com//10928131
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12227 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-11 23:21:16 +00:00
iposva@google.com
a8a8f1e7de
- Do not limit the compiler message buffer, by allocating the message
...
into a String object.
Review URL: https://chromiumcodereview.appspot.com//10933021
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12202 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-11 15:03:40 +00:00
ager@google.com
2e49065159
Reapply changes to Expando patching.
...
R=ajohnsen@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10911201
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12181 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-11 11:03:50 +00:00