fschneider@google.com
5f2bdb2f7d
Fix bug with missing unboxed mint-to-double conversion.
...
In case of a mixed integer/double operation that has a mint
input, the corresponding conversion from unboxed mint to unboxed
double was missing.
This CL converts a unboxed mint to a double by first boxing,
and then unboxing. Currently, we deoptimize in case the result
does not fit into a smi because we can only optimize mixed
smi/double operations and not yet mint/double operations.
BUG=dart:5721
TEST=tests/language/mint_arithmetic.dart
Review URL: https://codereview.chromium.org//11017017
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13372 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-08 20:20:53 +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
asiva@google.com
ceed3e5beb
- Add support to interrupt a running isolate with the following command:
...
<=== InterruptCmd = "{" RequestId "," command ":" interrupt "," params ":" "{" isolateId ":" Integer "}" "}"
===> InterruptCmdResp = "{" RequestId "}"
- Send isolate events over to the debugger client in the following format:
===> "{" event ":" isolate "," params ":" "{" reason ":" created "," id ":" Integer "}" "}"
===> "{" event ":" isolate "," params ":" "{" reason ":" shutdown "," id ":" Integer "}" "}"
===> "{" event ":" paused "," params ":" "{" reason ":" interrupted "," callFrames ":" StackTrace "}" "}"
- Added id ";" Integer, to params in all paused events messages
- create per isolate debugger message queues, instead of the global static one
- Add 'i' command in ddbg to exercise the interrupt feature
- Add support for handling isolave event messages in ddbg
Review URL: https://codereview.chromium.org//11028040
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13333 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-05 23:10:28 +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
fschneider@google.com
3efefbd582
Faster 64-bit right-shift for the ia32 compiler.
...
Review URL: https://codereview.chromium.org//11027060
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13295 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-05 14:42:00 +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
f78f482326
Restore x64 performance by reinstering an accidentally deleted LoadClassId instruction.
...
Review URL: https://codereview.chromium.org//11033032
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13257 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 20:20:17 +00:00
hausner@google.com
be9679261e
Better error message for const loop variables
...
issue 5629
The new error message is:
'file:/n.dart': Error: line 4 pos 8: Loop variable cannot be 'const'
for (const i in [1,2,3]) {
^
Review URL: https://codereview.chromium.org//11027036
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13255 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 19:42:25 +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
hausner@google.com
ed960e0432
Add catchless catch clauses
...
The Dart grammar says the catch clause is optional, ie. the following is legal:
try {
...
} on String {
...
}
Added a test case
Review URL: https://codereview.chromium.org//11051031
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13240 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 16:10:45 +00:00
fschneider@google.com
e868adb00c
Renaming Unboxed* IL instructions to shorter names.
...
Since we don't have boxed mint and double operations anymore,
we can use shorter names.
Review URL: https://codereview.chromium.org//11027026
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13237 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 15:54:16 +00:00
kmillikin@google.com
9ca8085565
Do not override (lower) the VM's code heap size for benchmarks tests.
...
R=zerny@google.com
BUG=
Review URL: https://codereview.chromium.org//11036033
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13227 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 13:08:05 +00:00
zerny@google.com
c0418b9d52
Don't inline functions above the deoptimization threshold.
...
Moved deoptimization counter increment code into the PcMarker instruction where it executes on each occurring function in the optimized frame.
R=kmillikin@google.com
Review URL: https://codereview.chromium.org//11031040
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13223 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 12:24:25 +00:00
fschneider@google.com
f60ebcc5fb
Add fast 64-bit bitwise negation to the IA32 optimizing compiler.
...
Review URL: https://codereview.chromium.org//11043020
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13221 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 12:01:12 +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
fschneider@google.com
cb719805d8
Add fast 64-bit integer ADD and SUB to the optimizing compiler.
...
They operate on unboxed 64-bit integers stored in xmm registers.
I also fixed an issue with some SSE 4 specific assembler
tests where we hit an assert with an empty assembler buffer
when running with --no-use-sse41.
Review URL: https://codereview.chromium.org//11016028
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13211 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 08:50:28 +00:00
regis@google.com
1b8e614d7d
Change compile-time errors into dynamic errors in instance creation expression
...
(issue 3085).
Change compile-time errors into dynamic errors in static getter and setter
calls (issues 3088, 3094).
Fix a crash in flow graph builder for missing static getter (issue 4360).
Add support in VM for NoSuchMethodError.
Remove support in VM for StaticResolutionException.
Add, remove, update related language tests.
Triage related co19 tests.
Review URL: https://codereview.chromium.org//11049038
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13208 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 00:15:38 +00:00
asiva@google.com
6076250adb
1. Create a port when a debugger object is created for an isolate, use this
...
port as the unique ID to represent an isolate in the debugger message
format.
2. Switch the Event handler API to use an isolate id instead of the isolate
object itself.
3. Add a unit test case for isolate debugger event handling with an
interrupt of isolate to ensure that interrupting the isolate runs
the interrupt event handler.
Review URL: https://codereview.chromium.org//11052006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13207 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-04 00:13:37 +00:00
zerny@google.com
3ae0b96762
Set previous instruction pointers when building the graph.
...
R=kmillikin@google.com
Review URL: https://codereview.chromium.org//11043016
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13174 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-03 15:05:27 +00:00
fschneider@google.com
7c13f0a7f4
Remove now unused BinaryMintOp from the IL.
...
It has been replaced with UnboxedMintBinaryOp.
Review URL: https://codereview.chromium.org//11031024
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13172 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-03 14:20:45 +00:00
kmillikin@google.com
8a6dd23f3c
Run canonicalization again after constant propagation.
...
This eliminates smi checks of constant-valued instructions. Also fix
printing of block numbers in code comments.
R=fschneider@google.com
BUG=
Review URL: https://codereview.chromium.org//10989077
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13170 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-03 11:09:19 +00:00
fschneider@google.com
c2ec22a652
Fix bug with mint unboxing on non-SSE 4.1 machines.
...
I forgot to check for SSE 4.1 support in one place. For machines
that do not support SSE 4.1 we should never generated unboxed
mint operations.
Review URL: https://codereview.chromium.org//11038016
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13164 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-03 09:11:21 +00:00
ager@google.com
35e073bf80
Minor style and comment fixes from review comments.
...
R=iposva@google.com
BUG=
Review URL: https://codereview.chromium.org//11024002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13161 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-03 08:08:34 +00:00
cshapiro@google.com
dc7ac3d520
Scavenge watched objects by scavenging their watchers.
...
BUG=http://code.google.com/p/dart/issues/detail?id=5546
Review URL: https://codereview.chromium.org//11055007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13157 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-03 01:40:23 +00:00
srdjan@google.com
2693f662aa
Fix movmskpd test, add masking to result.
...
Review URL: https://codereview.chromium.org//11049013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13154 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-02 23:49:30 +00:00
iposva@google.com
ab16371668
- Add regression test case for dartbug.com/5546.
...
Review URL: https://codereview.chromium.org//11047007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13150 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-02 23:31:57 +00:00
srdjan@google.com
6388bd11c4
Fix crashes in Smi equality comparisons: Smi equality instruction may have null as inputs. Null is treated specially in equality and therefore does not enter the ICdata, type feedback does not know about null being encountered.
...
TODO: fix excessive deoptimziation due to one of the inputs not being Smi.
(Crash was reproduced running test suite with optimization counter threshold 5)
Review URL: https://codereview.chromium.org//11049011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13149 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-02 22:52:39 +00:00
hausner@google.com
784b159e2f
Eliminate support for old raw string format
...
Review URL: https://codereview.chromium.org//11043010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13145 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-02 21:54:46 +00:00
srdjan@google.com
9dd3e6229c
Split flag --trace-deopt into --trace-deoptimization and --trace-deoptimization-verbose. Print source line and function where deoptimization occured.
...
Review URL: https://codereview.chromium.org//11054002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13138 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-02 20:40:26 +00:00
asiva@google.com
31fe6a2c79
Fix dartium build break.
...
Review URL: https://codereview.chromium.org//11043003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13132 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-02 19:06:52 +00:00
asiva@google.com
27e1b05914
Add isolate event handler setup in order to be able to propagate isolate
...
events (create/shutdown/interrupted)
Review URL: https://codereview.chromium.org//11026011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13130 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-02 18:09:55 +00:00
srdjan@google.com
8c30b899e3
Do not trigger optimization on functions that are not optimizable (e.g. natives).
...
Review URL: https://codereview.chromium.org//11031016
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13128 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-02 17:45:13 +00:00
srdjan@google.com
9bcd3727e5
Remove temporary hack for throttling inlining.
...
Review URL: https://codereview.chromium.org//11034023
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13118 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-02 14:56:37 +00:00
fschneider@google.com
6632f191c4
Support for unboxed 64-bit integer bitwise operations and equality on ia32.
...
This CL adds AND, OR, XOR and == operations on unboxed 64-bit integers
(aka. mints).
Unboxed mints are stored in xmm registers. Each xmm register location
has an additional bit to keep track of its value representation.
Unboxed mints are materialized on the heap on deoptmization in the same way as
unboxed doubles.
The SSE instructions used are available on all CPUs that support SSE 4.1.
Review URL: https://codereview.chromium.org//10968059
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13112 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-02 11:25:53 +00:00
johnmccutchan@google.com
d8df86d5b9
Intrinsify Float32Array_setIndexed on IA32 and X64
...
Review URL: https://codereview.chromium.org//11032011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13093 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-02 00:44:25 +00:00
iposva@google.com
12a115ffbd
- WeakProperty keys in other generations are black. Avoid trying to
...
set the watch bit on keys in the VM isolate or on keys that are
non-heap objects (aka Smis).
- Add appropriate tests.
- Fixes example code from comment 2 in issue 5546.
Review URL: https://codereview.chromium.org//11038004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13090 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-01 22:28:02 +00:00
srdjan@google.com
844f18a3eb
Enable inlining of control flow, increase code heap size 12 -> 18Mb (note that code will be moved to old space where it can grow). Print heap size at exit of VM using trace-isolates.
...
Code heap increase because of inline-control-flow (dart2js):
production mode: 4,143k -> 5,143k
checked mode: 10,789k -> 14,545k
Review URL: https://codereview.chromium.org//11035009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13085 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-01 20:24:23 +00:00
srdjan@google.com
62f74c19c9
Revert r13022 (revert inlining of methods with control flow), Review URL: https://codereview.chromium.org//10979078 ; disable inlining of methods with control-flow so that we do not run out of heap space.
...
Review URL: https://codereview.chromium.org//11029002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13081 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-01 18:33:13 +00:00
johnmccutchan@google.com
4f193292df
Enable Float32Array_getIndexed on X64 now that cvtss2sd is implemented
...
Merge remote-tracking branch 'git-svn'
Implement cvtss2sd and cvtsd2ss on X64
Review URL: https://codereview.chromium.org//11009006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13077 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-01 17:59:51 +00:00
srdjan@google.com
2724469384
Add integer negate back to list of intrinsified methods.
...
Review URL: https://codereview.chromium.org//11032003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13075 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-01 16:57:20 +00:00
zerny@google.com
792a5cbcee
Added slow_assert macro and flag for slow development assertions in the VM.
...
R=kmillikin@google.com
Review URL: https://codereview.chromium.org//11014013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13069 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-01 14:27:45 +00:00
ager@google.com
7ce8d31093
Cleaning up in VM number hierarchy which was exposing a bunch
...
of implementation details as public methods.
The only remaining thing is that int and double have a pow
method in the VM which is not officially a part of corelib.
Maybe it should be so I have left that out of this change
and maybe we should add it to num and implement in dart2js
too?
R=sgjesse@google.com ,lrn@google.com
BUG=
Review URL: https://codereview.chromium.org//11019011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13066 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-01 13:31:18 +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
srdjan@google.com
a2d8d4c1dc
The real fix of float32.
...
Review URL: https://codereview.chromium.org//10987103
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13047 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-28 23:20:57 +00:00
srdjan@google.com
b8a2d9f283
Fix broken x64 build temporarily. cvtss2sd missing on x64.
...
Review URL: https://codereview.chromium.org//11013003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13046 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-28 23:17:06 +00:00
johnmccutchan@google.com
3c93a72008
Intrinsify Float32Array_getIndexed on IA32 and X64.
...
BUG=
Review URL: https://chromiumcodereview.appspot.com//10911153
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13044 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-28 23:02:20 +00:00
srdjan@google.com
04d28f2ed1
Convert MOD to AND for power-of-two positive constants.
...
Review URL: https://codereview.chromium.org//10982095
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13040 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-28 20:14:05 +00:00
srdjan@google.com
a5e9100c46
Inline String isEmpty, refactor inlining of intrinsics.
...
Review URL: https://codereview.chromium.org//10993023
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13032 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-28 17:40:29 +00:00
kmillikin@google.com
c4e717264d
Revert several inlining related changes.
...
Revert svn revisions r12990, r12991, r12995, and r13000. Increased inlining
leads to excessive code growth, preventing dart2js to run in checked mode.
The changes will be relanded when we can come up with improved size
thresholds.
R=ngeoffray@google.com
BUG=
Review URL: https://codereview.chromium.org//10979078
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13022 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-28 13:50:17 +00:00