Commit Graph

2159 Commits

Author SHA1 Message Date
fschneider@google.com a49870e721 VM: Remove use of IterableMixinWorkaround from _List, _ImmutableList and _GrowableList.
_List, _ImmutableList and _GrowableList now extend ListBase which uses ListMixin.

Note that typed data lists are still using IterableMixinWorkaround for now.
They will be changed in a separate CL since it involves a few more changes
to the VM.

BUG=dartbug.com/13647
R=lrn@google.com

Review URL: https://codereview.chromium.org//730543002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42061 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-02 10:38:51 +00:00
zerny@google.com 487ca247d7 Disable the irregexp backend.
Currently the use of irregexp breaks the Dartium build.

TBR=vegorov@google.com
BUG=

Review URL: https://codereview.chromium.org//757303002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41999 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-26 16:21:08 +00:00
zerny@google.com fc7306ce38 Another type error in regexp patch file.
TBR=fschneider@google.com
BUG=

Review URL: https://codereview.chromium.org//762683004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41987 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-26 10:44:40 +00:00
zerny@google.com 7fb66c920c Fix type typo in regexp patch file.
TBR=fschneider@google.com
BUG=

Review URL: https://codereview.chromium.org//759913003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41985 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-26 10:23:38 +00:00
zerny@google.com 8e807c8550 Integrate the Irregexp Regular Expression Engine.
BUG=http://dartbug.com/19090
R=fschneider@google.com

Committed: https://code.google.com/p/dart/source/detail?r=41949

Review URL: https://codereview.chromium.org//744853003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41983 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-26 09:32:43 +00:00
zerny@google.com 84a4135901 Revert "Integrate the Irregexp Regular Expression Engine."
This reverts commit https://code.google.com/p/dart/source/detail?r=41949

TBR=fschneider@google.com
BUG=

Review URL: https://codereview.chromium.org//754383002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41950 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-25 13:36:40 +00:00
zerny@google.com 43ac0c6f33 Integrate the Irregexp Regular Expression Engine.
BUG=http://dartbug.com/19090
R=fschneider@google.com

Review URL: https://codereview.chromium.org//744853003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41949 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-25 13:10:21 +00:00
regis@google.com 57888924c4 Resubmit bigint changes of r41817 that were later reverted.
An inliner issue was fixed in r41840.
A missing length increment is added by this cl.
Minor improvements and comments.

R=zra@google.com

Review URL: https://codereview.chromium.org//747483002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41873 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-20 23:18:03 +00:00
srdjan@google.com eddeb860eb Restructure inlining of Bigint accessors, use consistent approach, fixes a potential crash.
R=regis@google.com

Review URL: https://codereview.chromium.org//736113002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41840 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-19 22:28:49 +00:00
regis@google.com bbf3bfc0cd Revert bigint changes of r41817 until dart2js failures are understood and fixed.
Keep x64 assembler additions.

Review URL: https://codereview.chromium.org//741613002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41820 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-19 02:00:07 +00:00
regis@google.com 925f0b6292 Process two 32-bit digits as one 64-bit digit in bigint absAdd and absSub
intrinsic on x64. More to follow.
Added assembler instructions and tests.

R=zra@google.com

Review URL: https://codereview.chromium.org//732663003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41817 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-19 00:12:25 +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 defc9a5c54 Specialize _toPow2String for bigint to make it linear instead of quadratic.
Remove some duplicated bigint corelib tests.
Cleanup corelib tests status file.
Partially fix issue 20879 (not closed).

R=zra@google.com

Review URL: https://codereview.chromium.org//723963006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41728 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-13 23:54:33 +00:00
fschneider@google.com b26ff22adf Allocation sinking for contexts.
Improved aliasing computation in presence of Redefinition and AssertAssignable.

Added possibility for inlining annotations via --enable-inlining-annotations flag.

R=vegorov@google.com

Review URL: https://codereview.chromium.org//184523002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41713 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-13 13:53:58 +00:00
lrn@google.com e8ca26953e Reduce foot-print of Error.safeToString on strings.
Use existing JSON encoding instead of a custom encoding.
This allows dart2js to use the system JSON stringifier directly.

R=sra@google.com

Review URL: https://codereview.chromium.org//718053003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41704 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-13 06:47:17 +00:00
vegorov@google.com 29f021439a Infer range for BIT_XOR.
When selecting representations unbox integer phis that have Int32 range and have only constants or boxing operations flowing into them.

BUG=http://dartbug.com/13869
R=fschneider@google.com

Review URL: https://codereview.chromium.org//712993005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41667 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-11 14:51:10 +00:00
zra@google.com 0219bdb81a Regularize naming to make BUILD.gn files easier to write.
Review URL: https://codereview.chromium.org//703693002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41510 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-04 22:03:57 +00:00
lrn@google.com e3d4226c63 Make JSON.fuse(UTF8) be more efficient by not creating intermediate string.
Adds JsonUtf8Encoder class that can be used directly, or through jsonEncoder.fuse(utf8Encoder) or jsonEncoder.startChunkedConversion(_Utf8EncoderSink).

R=sgjesse@google.com

Review URL: https://codereview.chromium.org//689043002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41479 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-04 10:25:41 +00:00
regis@google.com 30dce6a5d1 Fix issue 21474 in mirrors.
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//690413002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41453 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-31 23:16:11 +00:00
fschneider@google.com 876193b31a Make CTX allocatable by the register allocator.
This change makes CTX available by not caching the current
context while in Dart code. Instead the current context
is held in a local variable (:saved_current_context_var) and
is passed as argument in CTX at calls.

This also simplifies a lot of code in the debugger: As a result,
Isolate::top_context is not needed anymore since the current context
can always be extracted from a Dart frame.

R=vegorov@google.com

Review URL: https://codereview.chromium.org//678763004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41422 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-30 15:42:38 +00:00
lrn@google.com 8050a0392b Fix assertion not holding (calling with start==end) and typo.
Review URL: https://codereview.chromium.org//677423002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41317 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-27 14:00:13 +00:00
lrn@google.com 7485b6fff2 Fix type-errors.
R=whesse@google.com

Review URL: https://codereview.chromium.org//680073002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41315 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-27 13:33:49 +00:00
lrn@google.com a3dd8cd26f Fix typo reutrn -> return typo.
R=whesse@google.com

Review URL: https://codereview.chromium.org//684433003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41314 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-27 13:05:21 +00:00
lrn@google.com e2e17c3f26 Make JSON parsing work as a chunked conversion sink.
This allows JSON parsing to work on individual chunks of source instead
of collecting and concatenating all the parts before parsing.

This is made in anticipation of having a UTF-8 version that parses directly
on the input codes, without creating a String first.

R=sgjesse@google.com

Review URL: https://codereview.chromium.org//649113005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41311 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-27 12:11:39 +00:00
iposva@google.com c7c9d5d12f Fix http://dartbug.com/21335
- Make the VM internal AssertionError, TypeError and CastError implement
  the public classes instead of patching them.

R=asiva@google.com, lrn@google.com

Review URL: https://codereview.chromium.org//669733004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41231 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-21 17:00:16 +00:00
lrn@google.com 4d4c8a6332 Make Iterable.toSet say that it returns a Set with the same equality as the Iterable's contains method.
Let's consider whether this is really desirable once more.
It seems messy, but so does not doing it.

R=ajohnsen@google.com, floitsch@google.com

Review URL: https://codereview.chromium.org//451633003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40893 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-03 07:43:10 +00:00
lrn@google.com d8a2043098 Fix wrong limit on list index in double.parse.
Review URL: https://codereview.chromium.org//623073002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40892 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-03 07:03:45 +00:00
lrn@google.com 3192c983bf Dart version of double.parse that works for numbers that can be represented exactly as doubles.
BUG= http://dartbug.com/17711
R=vegorov@google.com

Review URL: https://codereview.chromium.org//520693004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40891 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-03 06:01:44 +00:00
regis@google.com 3cf27d550e Disable 2 intrinsics causing optimizer issues (under investigation).
Rename 2 intrinsics (was not the issue).
Added a static cast to eliminate a warning on Windows.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//616983003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40825 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-30 23:01:40 +00:00
regis@google.com f7ac8841a9 Provide ia32 intrinsics for bigint add, sub, quotient digit estimation, and
Montgomery mulMod.
Refactored bigint dart code to allow for the above intrinsics.
Added support for unsigned  division on ia32 and added assembly tests.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//620553002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40822 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-30 18:49:41 +00:00
regis@google.com cff788380b Eliminate global argument passing list.
Refactor _mulAdd to perform carry propagation and update intrinsic on ia32.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//610433003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40816 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-30 16:47:48 +00:00
regis@google.com 50086cbc75 Resubmit reverted r40623 unchanged after GC issue fixed.
R=srdjan@google.com

Review URL: https://codereview.chromium.org//603943005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40815 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-30 16:21:23 +00:00
lrn@google.com 28937c86ae Optimize _GrowableArray._join and _StringBase._interpolate.
R=fschneider@google.com

Review URL: https://codereview.chromium.org//551823002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40800 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-30 08:28:00 +00:00
lrn@google.com 2ef0e0b993 Fix bad call of RangeError.value in String.fromCharCodes.
Review URL: https://codereview.chromium.org//608213002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40760 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-29 09:33:08 +00:00
lrn@google.com de514055bf Change restrictions on start/end on String.fromCharCodes.
Must now be 0 <= start <= end <= iterable.length.

R=sgjesse@google.com

Review URL: https://codereview.chromium.org//605213002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40755 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-29 08:15:49 +00:00
lrn@google.com b89409c112 Change type of multiplier to int, not _Smi.
Review URL: https://codereview.chromium.org//603353003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40704 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-26 12:30:35 +00:00
lrn@google.com d57732d359 Optimize int.parse with a radix.
Handles bignums by parsing chunks of of digits into smis, then
combining the smi into a (potential) bignum, using smi arithmetic as
much as possible.
Use the optimized version for radix 10 and 16 too, instead of going to runtime.

R=fschneider@google.com

Committed: https://code.google.com/p/dart/source/detail?r=40702

Review URL: https://codereview.chromium.org//596763002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40703 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-26 12:13:47 +00:00
lrn@google.com 15ad26af35 Optimize int.parse with a radix.
Handles bignums by parsing chunks of of digits into smis, then
combining the smi into a (potential) bignum, using smi arithmetic as
much as possible.
Use the optimized version for radix 10 and 16 too, instead of going to runtime.

R=fschneider@google.com

Review URL: https://codereview.chromium.org//596763002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40702 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-26 12:04:43 +00:00
lrn@google.com 8bba32d131 Make String.fromCharCodes take start/end.
This avoids having to make a sublist of a list of character codes before passing it to String.fromCharCodes.

    new String.fromCharCodes(codes.sublist(start, end))

becomes just

    new String.fromCharCodes(codes, start, end)

R=floitsch@google.com, sgjesse@google.com

Review URL: https://codereview.chromium.org//515183002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40672 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-25 10:45:24 +00:00
whesse@google.com 1f87b5feba Revert r40623, "Refactor bigint _sqrTo in preparation of intrinsification."
This reverts commit r40623, https://codereview.chromium.org//600533002, which
is failing snapshot generation on x64 and arm architectures.

BUG=dartbug.com/21061
R=ricow@google.com

Review URL: https://codereview.chromium.org//603493002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40628 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-24 09:40:19 +00:00
regis@google.com edd503f7d0 Refactor bigint _sqrTo in preparation of intrinsification.
Provide _sqrAdd intrinsic on ia32.

Review URL: https://codereview.chromium.org//600533002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40623 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-24 01:51:04 +00:00
ajohnsen@google.com 0491f4e887 Per isolate package root.
BUG=
R=iposva@google.com, ricow@google.com, sgjesse@google.com, turnidge@google.com

Committed: https://code.google.com/p/dart/source/detail?r=40534

Review URL: https://codereview.chromium.org//545483002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40581 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-23 05:46:14 +00:00
ajohnsen@google.com 38619425c2 Revert "Per isolate package root."
Revert "Fix test in checked mode."

The Dartium branch is locked atm, making it impossible to land this and have green Dartium bots.

BUG=

Review URL: https://codereview.chromium.org//590123002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40540 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-22 11:13:28 +00:00
ajohnsen@google.com a058d07806 Per isolate package root.
BUG=
R=iposva@google.com, sgjesse@google.com, turnidge@google.com

Review URL: https://codereview.chromium.org//545483002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40534 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-22 08:07:06 +00:00
koda@google.com 667454a233 Support old-space allocation in generated code (bump block only for now).
First steps towards general pretenuring support.
* Generalize Heap::Top/EndAddress.
* Add testing flag to exercise new code paths.
* Also update the slow-case runtime calls, to ensure a fresh block will be allocated in old.

Next steps are general invalidation of the generated code and adding a policy that doesn't blow up the store buffers), and freelist allocation.

Review URL: https://codereview.chromium.org//578443003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40530 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-19 23:46:22 +00:00
asiva@google.com 302c93b050 1. Add user tag to the pointers traversed in the object store
2. Added support for UserTag objects in a full snapshot.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//583583007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40508 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-19 18:00:13 +00:00
regis@google.com 879043ba6f Intrinsify Bigint 'multiply and accumulate" function on ia32.
R=srdjan@google.com

Review URL: https://codereview.chromium.org//582963003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40485 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-19 02:05:00 +00:00
srdjan@google.com 5ef243e688 Make sure Bigint._digits is always a Uint32List and bever null. Adapt type information for get:_digits.
R=regis@google.com

Review URL: https://codereview.chromium.org//580903004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40463 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-18 21:18:25 +00:00
lrn@google.com 38bb5d2a36 Don't use identical for null.
This was just a test to see if it generated the same code (it did),
but I forgot to revert it again.

R=fschneider@google.com

Review URL: https://codereview.chromium.org//578213002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40432 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-18 11:56:01 +00:00
regis@google.com 2be1822329 Cache value of '_digits' and '_used' fields in a local variable as appropriate.
R=srdjan@google.com

Review URL: https://codereview.chromium.org//577093003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40409 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-17 22:22:42 +00:00