vegorov@google.com
a34c19ccca
Adjust environments we attach to the block entries.
...
There were two bugs in the code:
- we did not ensure proper outer environment on block entries after inlining;
- we did not correct the 'after' environment for eager deopt
There is one bug still with the infrastructure: our deoptimization stub does *not* support eager deoptimization to the after deoptimization point.
I am leaving it like this for now, because we don't actually ever perform such deoptimization (i.e. even though we diligently attach these environments we don't actually use them in the instruction that can deopt).
R=fschneider@google.com
BUG=
Review URL: https://codereview.chromium.org//784223006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42257 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-10 18:32:15 +00:00
fschneider@google.com
ac89119791
Fix dead phis elimination.
...
When initially marking live phis, only mark those
with real (i.e. non-phi) uses as live so that cycles
are properly eliminated.
Add a pass after allocation sinking since it may
create additional dead phis.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//790143002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42245 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-10 14:28:38 +00:00
zerny@google.com
50c9e72413
Clobber non-live temporaries on some paths involving a possible slow-path allocation.
...
R=vegorov@google.com
BUG=
Review URL: https://codereview.chromium.org//783103003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42239 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-10 09:51:18 +00:00
hausner@google.com
8ece5c1b84
Allow Symbols in switch and maps
...
Allow Symbol literals (and const Symbol instances) as switch expression
and as key values in const Maps.
This implements the most recent Spec changes.
R=regis@google.com
Review URL: https://codereview.chromium.org//781203005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42230 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-10 00:24:07 +00:00
regis@google.com
0fb9f43f32
Complete and clean up breakpoint support in all 3 debuggers embedded in MIPS,
...
ARM, and ARM64 simulators.
Implement the same debugging commands in all 3 simulators: stop_sim_at flag, bt,
p icount, break, del, unstop, etc...
R=zra@google.com
Review URL: https://codereview.chromium.org//789903002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42216 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-09 19:26:26 +00:00
koda@google.com
56defa8060
Write-barrier verification on ARM.
...
Add and use methods on Assembler for writing and verifying object fields.
Enable tests in verified_mem mode for simarm.
Also generalize and use InitializeFieldsNoBarrierUnrolled in one more place.
R=iposva@google.com
Review URL: https://codereview.chromium.org//730343005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42208 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-09 16:15:33 +00:00
iposva@google.com
602aad28a1
- Implement Isolate.ping.
...
- Allow isolate library messages to be enqueued at the beginning
of the message queue.
R=asiva@google.com
Review URL: https://codereview.chromium.org//749373002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42193 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-08 22:45:10 +00:00
srdjan@google.com
3ae870c049
Add flag inlining_callee_size_threshold_with_constants (default 200) which causes more aggressive inlining if constant arguments are passed to the callee.
...
R=vegorov@google.com
Review URL: https://codereview.chromium.org//788673002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42184 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-08 21:33:34 +00:00
koda@google.com
aedfeacd4b
Fix Service_Address test expectations.
...
We no longer return a reference.
TBR=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//774863007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42178 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-08 20:03:24 +00:00
hausner@google.com
392db8d312
Implement correct semantics of Boolean Conversion
...
When converting null to a boolean value, throw an AssertionError
rather than a TypeError.
This is the same change as r42145, with added co19 status updates.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//779253003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42170 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-08 18:51:48 +00:00
koda@google.com
8422f331ec
Fix bugs in heapmap, binary payloads, 'address' request.
...
- Remove forbidden extra slash.
- Update binary payload parsing after type changes.
- 'address' should return a full object, not a ref.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//779103003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42169 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-08 18:45:57 +00:00
johnmccutchan@google.com
80d39f91dc
Remove overly strict assert around method name token position
...
BUG=
R=hausner@google.com
Review URL: https://codereview.chromium.org//778213003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42151 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-05 21:51:43 +00:00
hausner@google.com
4cfdf02012
Revert r42145 to fix co19 tests
...
Review URL: https://codereview.chromium.org//772513003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42148 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-05 21:05:38 +00:00
hausner@google.com
ad837a0d9f
Implement correct semantics of Boolean Conversion
...
When converting null to a boolean value, throw an AssertionError
rather than a TypeError.
Fixes issue 21279.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//778063002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42145 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-05 20:36:37 +00:00
regis@google.com
f8711f2149
Improve debugger in MIPS simulator.
...
Validate integer flag values and allow hex flag values.
R=zra@google.com
Review URL: https://codereview.chromium.org//780173002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42139 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-05 18:37:11 +00:00
regis@google.com
1757888022
Implement mint unboxing on MIPS.
...
R=zra@google.com
Review URL: https://codereview.chromium.org//777943003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42138 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-05 18:27:37 +00:00
fschneider@google.com
e8f27c722a
Better constant folding of length-loads in checked mode.
...
Handle redefinitions (Redefinition/AssertAssignable) when
checking for known constant length.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//783683002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42132 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-05 14:02:40 +00:00
regis@google.com
acfcae166d
Fix gc on MIPS (live registers were spilled in reversed order).
...
Add comments on all platforms.
R=koda@google.com
Review URL: https://codereview.chromium.org//785443002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42125 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-05 01:07:10 +00:00
johnmccutchan@google.com
f216834af8
Expose set_source service command for functions
...
- Can change signatures
- Currently only works for unexecuted functions.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//751183003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42124 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-04 23:35:24 +00:00
koda@google.com
951fa0ab22
observatory: populate 'architecture' in VM, and add numerical vmId in Class.
...
Knowing the word size and having an efficient (non-String) representation for class ids is important for the upcoming heap serialization features.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//773303003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42115 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-04 19:07:32 +00:00
fschneider@google.com
9fad07f46e
Enable inlining inside try-blocks in the VM's optimizing compiler.
...
R=vegorov@google.com
Review URL: https://codereview.chromium.org//773183002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42103 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-04 12:29:28 +00:00
iposva@google.com
320ffa23a1
- Implement hashCode and == for Capability.
...
R=lrn@google.com
Review URL: https://codereview.chromium.org//778983002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42102 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-04 12:17:48 +00:00
zerny@google.com
c606e6a4cb
Disable RegExp tests when using JSCRE backend.
...
TBR=vegorov@google.com
BUG=
Review URL: https://codereview.chromium.org//761663006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42101 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-04 10:50:05 +00:00
zerny@google.com
59e4617216
Initialize offsets also for the unreachable branch (clang -Wsometimes-uninitialized).
...
TBR=vegorov@google.com
BUG=
Review URL: https://codereview.chromium.org//779903003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42100 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-04 09:39:21 +00:00
zerny@google.com
4fb54d853d
Support use of external strings as inputs to LoadCodeUnitsInstr.
...
R=vegorov@google.com
BUG=
Review URL: https://codereview.chromium.org//765743003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42099 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-04 09:26:48 +00:00
rmacnak@google.com
dd3c1fa32e
Remove several entries from invocation fuzzer blacklist.
...
Add event loop, isolate startup, and symbol helper functions to the invisible list.
Include doubles as a target.
BUG=http://dartbug.com/15274
BUG=http://dartbug.com/20583
BUG=http://dartbug.com/21707
R=regis@google.com
Review URL: https://codereview.chromium.org//775223002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42092 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-03 22:08:32 +00:00
koda@google.com
96576ad59e
vmservice: basic object graph serialization.
...
Sends a service event with binary data encoding the basic shape of the object graph; for each object, its:
* size
* class id
* neighbors (excluding smis and nulls)
This is a minimal implementation to make the first unit test pass (TDD).
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//773573005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42070 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-02 19:33:09 +00:00
srdjan@google.com
bad6a61899
Cleanups.
...
R=vegorov@google.com
Review URL: https://codereview.chromium.org//774763002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42069 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-02 18:48:12 +00:00
fschneider@google.com
6fc87187a6
Fix implementation of the Iterable interface for typed data lists.
...
Return an Iterable with the correct type arguments (instead of <dynamic>)
when calling Iterable methods.
R=lrn@google.com
Review URL: https://codereview.chromium.org//763443005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42066 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-02 13:25:36 +00:00
vegorov@google.com
bfa152df59
Support non-deoptimizing version of UnboxInt32 for integer definitions.
...
If range analysis infered that integer definition is within Int32 range then it is guaranteed to be either Smi or Mint.
BUG=http://dartbug.com/21763
R=fschneider@google.com
Review URL: https://codereview.chromium.org//770303002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42065 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-02 13:19:03 +00:00
iposva@google.com
e8428aa507
- The body of a async function should be executed in a Future.mircotask.
...
R=floitsch@google.com
Review URL: https://codereview.chromium.org//769243002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42064 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-02 13:05:16 +00:00
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
regis@google.com
b2d73e491a
Simplify mint comparison code on ARM.
...
R=zra@google.com
Review URL: https://codereview.chromium.org//766313002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42053 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-01 22:44:15 +00:00
fschneider@google.com
547fff556e
Fix parallel move code for swapping SIMD registers on ARM and ARM64.
...
The old code did not swap the full quad-word register, but only half.
R=zerny@google.com
Review URL: https://codereview.chromium.org//760383005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42044 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-01 15:25:08 +00:00
fschneider@google.com
abde3a9699
Merge chains of straight-line blocks.
...
R=zerny@google.com
Review URL: https://codereview.chromium.org//557413002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42038 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-01 12:40:55 +00:00
fschneider@google.com
d80f05540c
Avoid checking for uses in try-blocks, when optimizing a function without try-catch.
...
R=zerny@google.com
Review URL: https://codereview.chromium.org//760013002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42037 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-01 10:36:24 +00:00
vegorov@google.com
d8a156904d
Remove eager assertion from UnboxedIntConverterInstr.
...
When inserting a mint->int32 convertion for a phi operand we will not pass correct deopt_id into the UnboxedIntConverter constructor but will instead force copy deoptimization target via CopyDeoptTarget at the end of the InsertConversion.
BUG=http://dartbug.com/21728
R=srdjan@google.com
Review URL: https://codereview.chromium.org//764633002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42011 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-26 22:50:45 +00:00
regis@google.com
a17adcd1de
Fix overflow check when shifting unboxed mints on 32-bit platforms, except on
...
MIPS, which does not yet support unboxed mints (work in progress). Issue 21715.
Add regression test.
R=zra@google.com
Review URL: https://codereview.chromium.org//755383002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42003 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-26 17:36:32 +00:00
zerny@google.com
e9a2fb3f99
Explicitly clear out the IC-data register in ExecuteMatch.
...
The register value is unknown on entry to ExecuteMatch and needs to be
made GC safe before calling the matching function which could be a lazy
stub.
R=vegorov@google.com
BUG=
Review URL: https://codereview.chromium.org//753743005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41996 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-26 14:39:54 +00:00
zerny@google.com
f0d309525e
Don't check against __BYTE_ORDER__ when not defined.
...
It appears that clang in Xcode does yet define __BYTE_ORDER__.
TBR=fschneider@google.com
BUG=
Review URL: https://codereview.chromium.org//744323005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41984 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-26 09:54:16 +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
hausner@google.com
a5efbb4d66
Fix named arguments in await expressions
...
Fix for issue 21480.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//762493002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41968 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-25 20:31:54 +00:00
hausner@google.com
1b8fa74112
Fix parsing of awaitable expressions with nested functions
...
“have seen await” flag must be properly saved and restored when
parsing nested function (literals) inside an await expression.
Fixes issue 21536
R=srdjan@google.com
Review URL: https://codereview.chromium.org//755053002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41962 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-25 18:13:49 +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
koda@google.com
844dca3a21
Make toString visible on enum classes, as required by proposed spec.
...
R=hausner@google.com , rmacnak@google.com
Review URL: https://codereview.chromium.org//724373003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41939 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-24 19:19:18 +00:00
hausner@google.com
a224480e1a
Allow await expressions in arrow-style functions
...
Recognize await keyword when skipping expressions.
R=regis@google.com
Review URL: https://codereview.chromium.org//740823002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41932 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-24 17:39:04 +00:00
zerny@google.com
f8efbead3b
Work around erroneous GCC report about potentially clobbered variable.
...
R=vegorov@google.com
BUG=
Review URL: https://codereview.chromium.org//749193002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41924 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-24 08:57:13 +00:00
iposva@google.com
d4faaf0be8
- Remove unimplemented function from header.
...
Review URL: https://codereview.chromium.org//748843003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41918 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-21 20:45:02 +00:00
koda@google.com
e775ee5dac
arm: Move unrolled array initialization to Assembler.
...
This is the final preparation before adding write barrier verification infrastructure on ARM
(which requires all pointer writes to pass through write-barrier aware code).
R=zra@google.com
Review URL: https://codereview.chromium.org//752633002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41914 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-21 18:09:40 +00:00