Regis Crelier
54c1cbd6ea
Introduce a flag --limit-ints-to-64-bits in the VM in order to investigate the
...
use of Bigint (see issue #28595 ).
A RangeError with the message "Integer operand requires conversion to Bigint" is
thrown when a Bigint gets allocated. However, parsing a Bigint literal in Dart
source will not throw the RangeError (as long as the literal is not used).
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2708213004 .
2017-02-22 09:49:03 -08:00
Zachary Anderson
2e4dfd3a2d
clang-format runtime/lib
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/2468093007 .
2016-11-04 12:14:41 -07:00
Stephen Adams
38fdb4bd4a
vm: Generate 'and' instruction for Smi values.
...
This pattern ensures the generation of 'and' instructions on the Smi x Smi path of a polymorphic & operation.
There are two 'and' operations on most simple _InternalLinkedHashMap and _CompactLinkedHashSet operations. One of the inputs, the hashCode, is occasionally a _Bigint. This change ensures that the usual case path has an 'and' instruction instead of a call to _IntegerImplementation.&
R=regis@google.com
Review URL: https://codereview.chromium.org/1913663002 .
2016-07-04 16:27:57 -07:00
Zachary Anderson
b3e5c5eeed
DBC: Adds BinarySmiOp instruction
...
R=vegorov@google.com
Review URL: https://codereview.chromium.org/2053213004 .
2016-06-15 14:48:11 -07:00
Matthias Hausner
68a6060794
Eliminate GrowableTokenStream
...
Eliminate building an intermediate array of tokens in the scanner. Build
the compressed TokenStream directly instead.
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org/1969563002 .
2016-05-11 14:09:45 -07:00
Florian Schneider
1217e539e9
VM: Remove _leftShiftWithMask32.
...
It was used for the Javascript integer overflow warnings which were already
removed from the VM.
BUG=
R=regis@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org/1900863004 .
2016-04-19 19:06:53 +02:00
Ryan Macnak
f731dd0615
Reapply "- Use a hash table to canonicalize instances/arrays to avoid having to iterate over a linear list and search for canonical instances."
...
- Rehash constants table during tree-shaking.
- Rehash constants table on snapshot load.
R=regis@google.com
Review URL: https://codereview.chromium.org/1900863002 .
2016-04-18 16:46:26 -07:00
Siva Annamalai
8ce7b6291a
Revert "- Use a hash table to canonicalize instances/arrays to avoid having to iterate over a linear list and search for canonical instances."
...
This reverts commit 95a2b02a9e .
Once the tree shaker in precompiled code is fixed to treat the constants array in a class as a hash table this CL can be re-applied.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1888593003 .
2016-04-13 18:49:53 -07:00
Siva Annamalai
95a2b02a9e
- Use a hash table to canonicalize instances/arrays to avoid having to iterate over a linear list and search for canonical instances.
...
- Some minor cleanups
- Return an empty array right away in the parser instead of creating an
empty array and canonicalizing it
- The canonical bit was not being set for some of the singleton objects.
R=regis@google.com
Review URL: https://codereview.chromium.org/1873143003 .
2016-04-13 10:26:17 -07:00
Florian Loitsch
55630a5e90
Support 'dart.library.X' env variables in the VM.
...
BUG= http://dartbug.com/24587
R=iposva@google.com , johnmccutchan@google.com
Committed: https://github.com/dart-lang/sdk/commit/c2a06e22cb83f491fd3accc33d7738c87490c26d
Reverted: https://github.com/dart-lang/sdk/commit/5eb5b429895987519a00daa81b5ab261debbca3f
Review URL: https://codereview.chromium.org/1640853004 .
2016-02-29 20:58:32 +01:00
Regis Crelier
bb649318e4
Remove support for Javascript warnings in the VM.
...
This cl is a clone of cl https://codereview.chromium.org/1683363002/ deleted by
accident. Already LGTM'ed.
Review URL: https://codereview.chromium.org/1690903003 .
2016-02-11 09:16:06 -08:00
Florian Loitsch
5eb5b42989
Revert "Support 'dart.library.X' env variables in the VM."
...
This reverts commit c2a06e22cb .
Review URL: https://codereview.chromium.org/1668253002 .
2016-02-04 22:26:06 +01:00
Florian Loitsch
c2a06e22cb
Support 'dart.library.X' env variables in the VM.
...
BUG= http://dartbug.com/24587
R=iposva@google.com , johnmccutchan@google.com
Review URL: https://codereview.chromium.org/1640853004 .
2016-02-04 13:04:31 +01:00
Srdjan Mitrovic
465cf10a7c
Remove some Isolate::current_zone() calls, as it gets the zone from mutator thread not the current thread
...
BUG=
R=zra@google.com
Review URL: https://codereview.chromium.org/1414493003 .
2015-10-19 10:27:36 -07:00
regis
e8139d4d92
Fix right shifting of a Mint value by an amount larger than 63.
...
Add regression test.
Enhance existing bit shift test.
Fixes #24283
R=ager@google.com
Review URL: https://codereview.chromium.org//1338233002 .
2015-09-14 18:20:48 +08:00
Srdjan Mitrovic
d4365bc6f4
Lookup getter/setter symbols before alllocating them, thus eliminating extra String allocations in new space.
...
Various old space allocations, cleanups.
Add a test for Symbols concatenation.
BUG=
R=hausner@google.com
Review URL: https://codereview.chromium.org//1320673012 .
2015-09-03 14:09:34 -07:00
Daniel Andersson
6542a451c3
Refactor Isolate -> Thread in NativeArguments and exception handler jump.
...
Further reduces the one-to-one assumption about isolates and threads: native entries now ask the thread for its isolate, rather than the other way around.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//1156143003
2015-05-26 16:49:51 -07:00
regis@google.com
a5ee233d1b
Make Bigint instances immutable by removing all setters.
...
This required rewriting a large portion of bigint.dart.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//842033005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43492 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-04 23:56:23 +00:00
regis@google.com
03fa3d1ff4
Mark mutator methods of canonical constants as invisible to reflective access.
...
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//810593008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42747 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-09 18:03:31 +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
regis@google.com
0220e41d72
New bigint implementation in the vm.
...
R=srdjan@google.com
Review URL: https://codereview.chromium.org//509153003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40061 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-09 21:47:44 +00:00
iposva@google.com
92f2698abe
- Refactor the way X.fromEnvironment is implemented.
...
- Predefine 'dart.isVM' to be 'true'.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//546053002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39986 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-08 18:23:05 +00:00
regis@google.com
f58908bfdd
Tweaks for speed in integer arithmetic runtime.
...
Unrelated:
Removed annoying svn property on utils.cc (indicated by MM):
svn propdel svn:eol-style runtime/platform/utils.cc
R=srdjan@google.com
Review URL: https://codereview.chromium.org//381543002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38090 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-09 17:16:10 +00:00
fschneider@google.com
bd110db87a
Use range information for optimizing integer boxing and fix bug in range analysis.
...
1. When the input to a BoxInteger operation is in smi-range, we can eliminate
the range check and just perform a smi-tag operation on the input.
2. There was a bug in checking for smi-overflow for range boundaries: Calling Smi::IsValid
with a int64_t argument resulted in silent truncation of the input and therefore a wrong result.
Compiling with -Wconversion would have caught this, but currently we cannot compile with this flag
because of too many broken places.
Instead, I removed Smi::IsValid64 and created one variant Smi::IsValid that is specialized for the
input type with a template parameter. This way calling Smi::IsValid is always safe and will never
result in silent alteration of the input argument.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//353513002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37657 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-24 13:41:48 +00:00
rmacnak@google.com
7ce5c53f0b
Pass around the current isolate in exception handling code.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//326183002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37409 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 18:17:03 +00:00
ajohnsen@google.com
c3dfdbe772
Fix fromEnvironment when called from isolates.
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//180243022
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33363 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-06 09:16:41 +00:00
ajohnsen@google.com
1ce402ec78
Revert "Re-apply 'Fix fromEnvironment when called from isolates.'"
...
This reverts commit 1f2ddd083424a93dc0822c2ae86be971d5a97e21.
BUG=
Review URL: https://codereview.chromium.org//185233016
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33278 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-04 16:05:21 +00:00
ajohnsen@google.com
fb97ee0fe1
Re-apply 'Fix fromEnvironment when called from isolates.'
...
Old Review URL: https://codereview.chromium.org//186393004
BUG=
Review URL: https://codereview.chromium.org//177353006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33274 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-04 14:22:54 +00:00
ajohnsen@google.com
e8ad108bec
Revert "Fix fromEnvironment when called from isolates."
...
This reverts commit f5886c3a1fe96580c13d83d6422a6bb6931ae95a.
BUG=
Review URL: https://codereview.chromium.org//186573002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33266 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-04 11:06:39 +00:00
ajohnsen@google.com
7e55a59ce4
Fix fromEnvironment when called from isolates.
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//186393004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33264 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-04 10:26:17 +00:00
fschneider@google.com
16857e0b13
Revert r32930 (Add more timing information in the VM to track time...)
...
It caused severe performance regressions that should be addressed.
TBR=asiva@google.com
Review URL: https://codereview.chromium.org//177733002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32959 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-24 12:15:55 +00:00
asiva@google.com
6d313d3797
Add more timing information in the VM to track time spent is dart code Vs native code.
...
R=johnmccutchan@google.com , turnidge@google.com
Review URL: https://codereview.chromium.org//137483010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32930 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-21 21:30:29 +00:00
lrn@google.com
54a3662ccf
Change integer canonicalization to use CheckAndCanonicalize
...
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//53993004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29731 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-01 09:42:28 +00:00
lrn@google.com
66959d9dbf
Change int.fromEnvironment in VM to use same code as int.parse.
...
R=fschneider@google.com , sgjesse@google.com
Review URL: https://codereview.chromium.org//54663002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29670 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-31 13:45:39 +00:00
sgjesse@google.com
36a67fa046
Implement fromEnvironment on bool, int and String
...
This implements const constructor fromEnvironment on bool, int and
String.
The VM have the added -Dname=value option to define the value for the
properties. All values are provided by using the -D - nothing is read
from the environment.
If the resulting value is null or - in the case of int.fromEnvironment
- not a number an ArgumentError is thrown.
This CL does not have any implementation for dart2js.
This is a continuation of the change
https://chromiumcodereview.appspot.com/24975002 by iposva@
BUG=
R=iposva@google.com
Review URL: https://codereview.chromium.org//50983002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29642 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-31 05:46:57 +00:00
iposva@google.com
d369b7a0c9
- Ensure that the token stream from generated source matches the
...
original token stream in the presence of combinations of
multiline string and string interpolation. If not this will
cause mismatches when accessing code snippets, e.g when
reporting parser errors or assertions.
- Ensure that ScanAll and ScanTo are in sync when adding or
counting tokens.
- Added unit test for multiline strings and interpolation.
- Expanded GenerateSource unit test to iterate through all
loaded libraries.
- Do not report columns for compilation errors in snapshotted
code.
- Do not report columns from exceptions and errors when dealing
with snapshotted code.
- Remove length field from TokenDescriptor. It was unused.
- Remove TokenStream::ComputeTokenPosition. It was unused.
R=fschneider@google.com , hausner@google.com
Review URL: https://codereview.chromium.org//36323003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29110 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-23 19:08:36 +00:00
srdjan@google.com
b6b3e1f400
Factor out throwing of argument error.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//25566002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28109 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-01 18:48:37 +00:00
sra@google.com
ce4b15c0e9
Esoteric bit operations.
...
- bit length
- truncate to signed fixed width integer
- truncate to unsigned fixed width integer
This change is motivated by a program that spends 20-30% of its time here:
// TODO(5828): Replace this with a bit-length method on int when available.
int n_bitLength = this.n.toRadixString(2).length;
See Also
https://code.google.com/p/dart/issues/detail?id=5828#c3
https://code.google.com/p/dart/issues/detail?id=6486#c2
https://code.google.com/p/dart/issues/detail?id=5798#c5
https://code.google.com/p/dart/issues/detail?id=12008
R=lrn@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//23645003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27269 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-06 22:22:26 +00:00
floitsch@google.com
8adad2eeb0
Don't throw when there is an "onError" for int.parse.
...
Even though the error is caught immediately we don't want "break on exception" developer tools stop at the parseInt case if there is a handler.
BUG= http://dartbug.com/12776
R=lrn@google.com
Review URL: https://codereview.chromium.org//23685004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27005 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-02 09:36:29 +00:00
kmillikin@google.com
4f80ef09df
Change Bool::Get to return a handle instead of a pointer to a raw object.
...
Replace occurrences of 'expr ? Bool::True() : Bool::False()' with simply
'Bool::Get(expr)' and analogously for its negation. The pointer to the raw
object can still be extracted with 'Bool::Get(expr).raw()'.
R=iposva@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//23480005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26770 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-28 08:38:56 +00:00
srdjan@google.com
1f31dcc424
Fix for running with --throw_on_javascript_int_overflow: recognize pattern (a << b) & mask and test for overflow only after the mask.
...
R=fschneider@google.com
Review URL: https://codereview.chromium.org//22640019
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26122 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-14 15:12:39 +00:00
asiva@google.com
dcb6850f87
Fix for issue 11680
...
- implicitly store a full stack trace in Error objects when they are thrown.
- the shlFromInt on Mints and Bigints was trying to allocate a new OutOfMemory
exception objects instead of using the pre-allocated exception object.
Made the implementation of these methods native so that they can use the
pre-allocated object.
- Ensure that it is not possible to allocate new OutOfMemory or StackOverflow
exception objects.
R=ahe@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//19106008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25492 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-25 19:28:53 +00:00
zra@google.com
40f0800c10
Ensures that Bigints returned to Dart are all checked by Integer::AsValidInteger.
...
Rather than by ad-hoc checks at the point of return.
R=iposva@google.com
Review URL: https://codereview.chromium.org//15741019
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23151 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-24 15:45:17 +00:00
srdjan@google.com
dd6ca671d7
Cleanups: addressed your comments from https://codereview.chromium.org/14962008/
...
R=iposva@google.com
Review URL: https://codereview.chromium.org//14845021
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22881 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-17 23:45:08 +00:00
srdjan@google.com
fc40a8c721
Allow leading + when parsing integers in fast case (it is allowed per library implementation, only Dart syntax disallows it).
...
Review URL: https://codereview.chromium.org//14064019
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21779 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-19 23:19:15 +00:00
srdjan@google.com
cc94080d4d
Fix performance of parsing Mints.
...
Review URL: https://codereview.chromium.org//13852044
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21767 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-19 20:22:26 +00:00
srdjan@google.com
33435b7e73
Improve perfromance of integer parsing for Smi-s.
...
Review URL: https://codereview.chromium.org//12328068
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18990 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-25 18:32:46 +00:00
asiva@google.com
f4fe42c280
Added macros OBJECT_IMPLEMENTATION and FINAL_OBJECT_IMPLEMENTATION
...
which have different implementations of 'operator=' and 'operator^='.
In the case of FINAL_OBJECT_IMPLEMENTATION we do not do the vtable setting
in these methods (Note the |= operator functionality is now subsumed into
the new implementation of "operator^=")
Review URL: https://codereview.chromium.org//12052033
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17491 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-23 20:01:31 +00:00
srdjan@google.com
7159a6f103
Some more ^= to |=
...
Review URL: https://codereview.chromium.org//12017020
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17310 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-18 20:43:33 +00:00
asiva@google.com
7022b39e35
Convert all symbol accessors to return read only handles so that it is not necessary to create a new handle in the code that uses it.
...
Added a few more strings to the symbols list.
Review URL: https://codereview.chromium.org//11667012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16584 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-02 19:31:59 +00:00