srdjan@google.com
04fc29c7e1
Optimize function at its entry instead of at exit.
...
The code can be patched if it should not be executed any longer.
The code can be now patched at other location than at entry, the requirement is still that patching code does not overwrite an inlined object.
Intrinsic methods that do not have a fall through cannot be patched.
Review URL: https://codereview.chromium.org//11783066
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16897 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-10 00:28:57 +00:00
vegorov@google.com
f115552d29
Constant propagator should revisit phis when it visits predecessor block.
...
Phi's value depends both on its inputs and reachability of join's predecessors. Thus it is essential to revisit phi when predecessor becomes reachable.
R=kmillikin@google.com
BUG=
Review URL: https://codereview.chromium.org//11824024
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16847 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-09 12:27:46 +00:00
floitsch@google.com
b89f3c09c9
Enable "part of" for the async library.
...
Review URL: https://codereview.chromium.org//11820024
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16846 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-09 11:23:54 +00:00
hausner@google.com
e8a293c05a
Allow optimized code when debugger is active
...
The debugger allows the VM to optimize code unless there is a breakpoint inside the
function. Whenever a new breakpoint is set (explicitly or implicitly by stepping)
all optimized code is discarded.
Review URL: https://codereview.chromium.org//11780005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16815 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-08 18:57:19 +00:00
fschneider@google.com
87a3a4b479
Support immediate and memory operands for PushArgumentInstr in optimized code.
...
If a value is a constant or stored on the stack this change avoids loading it into a
new register before pushing it.
Review URL: https://codereview.chromium.org//11791051
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16806 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-08 16:51:57 +00:00
vegorov@google.com
34f1a0795a
Delay canonicalization of 1.0 * N until after representation selection.
...
This allows to avoid Unbox(Box(N)) pair if N is an unboxed double phi:
var N = 0.0;
while (X) N += 1.0 * N;
BUG=
Review URL: https://codereview.chromium.org//11791047
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16799 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-08 14:27:09 +00:00
vegorov@google.com
05078902d1
Canonicalize away simple arithmetic equivalences.
...
R=fschneider@google.com
BUG=
Review URL: https://codereview.chromium.org//11773040
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16795 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-08 13:32:23 +00:00
cshapiro@google.com
16427fe901
Fix confusion over on-disk object id sizes during instance serialization.
...
To avoid confusion in the future the WritePointer methods have been
renamed to the more descriptive WriteObjectId.
Review URL: https://codereview.chromium.org//11778028
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16782 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-08 02:53:14 +00:00
srdjan@google.com
8c35ce1852
Bug fix and improvements to clamped arrays.
...
Review URL: https://codereview.chromium.org//11794038
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16774 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-08 00:58:58 +00:00
cshapiro@google.com
b8a784591f
Restore the bytes promoted counter.
...
Review URL: https://codereview.chromium.org//11783015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16764 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-07 23:16:44 +00:00
regis@google.com
34df344e36
Fix context chaining to prevent memory leak (issue 7681).
...
Review URL: https://codereview.chromium.org//11806003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16757 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-07 22:24:11 +00:00
srdjan@google.com
020b5893db
Cleanups.
...
Review URL: https://codereview.chromium.org//11801023
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16756 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-07 22:13:47 +00:00
iposva@google.com
dbb7d249fb
- Preallocate non-named ArgumentsDescriptors with a small amount of parameters.
...
Review URL: https://codereview.chromium.org//11773008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16734 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-07 18:36:39 +00:00
vegorov@google.com
114fd4280c
Do ComputeUseLists after ApplyClassIds.
...
Applying class ids invalidates use lists.
R=fschneider@google.com
BUG=
Review URL: https://codereview.chromium.org//11791024
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16731 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-07 17:06:50 +00:00
vegorov@google.com
96812c4cff
Recognize List.fixedLength factory constructor.
...
R=fschneider@google.com
BUG=
Review URL: https://codereview.chromium.org//11788018
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16717 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-07 15:44:23 +00:00
fschneider@google.com
d5f2305515
Support scalar lists in array bounds check elimination.
...
This allows to eliminate bounds checks for scalar lists in loops like:
for (var i=0; i < a.length; i++) {
a[i]
}
Review URL: https://codereview.chromium.org//11665005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16716 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-07 15:43:35 +00:00
vegorov@google.com
774187fb8c
Ensure that LowerBound and UpperBound return overflow marker when overflow occurs.
...
R=fschneider@google.com
BUG=dart:7617
Review URL: https://codereview.chromium.org//11779017
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16711 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-07 15:33:36 +00:00
vegorov@google.com
75190542c3
Fix Intrinsifier and MethodRecognizer to correctly match private getters and setters.
...
R=fschneider@google.com
Review URL: https://codereview.chromium.org//11779018
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16701 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-07 14:51:24 +00:00
floitsch@google.com
4a7dfd2da3
Big merge from experimental to bleeding edge.
...
Review URL: https://codereview.chromium.org//11783009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16687 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-07 11:23:16 +00:00
kmillikin@google.com
309fcb1ba3
Fix incorrect desugaring of cascades.
...
Make use of the attractive and powerful way that the LoadLocal expression is
really a pair of an arbitrary statement and a local variable load.
BUG=dart:7494
Review URL: https://codereview.chromium.org//11745028
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16684 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-07 10:03:17 +00:00
asiva@google.com
0a825a9ed7
Cleanup handles more efficiently, ensures we don't have to iterate over them
...
while visiting objects during GC.
- Add handle scopes during class finialization
- Add handle scopes to different stages of the compiler
- Ensure that we iterate only to the top of scoped handles while visiting objects
Review URL: https://codereview.chromium.org//11778013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16683 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-07 05:44:20 +00:00
srdjan@google.com
0af16251b5
Intrinsify Uint8ClampedArray's store and load indexed, inline load indexed.
...
Review URL: https://codereview.chromium.org//11783006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16666 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-05 01:07:32 +00:00
hausner@google.com
016b84310a
Handle optimized code blocks in debugger stack trace
...
Removed an old restriction that debugger activation frames
are expected to be non-optimized code. Fixes bug 5944.
Review URL: https://codereview.chromium.org//11776007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16665 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-05 00:46:23 +00:00
regis@google.com
47e08870ca
Support Null type in Class::TypeTest and simplify Instance::IsInstanceOf.
...
Review URL: https://codereview.chromium.org//11785006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16664 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-05 00:45:52 +00:00
srdjan@google.com
5915aff811
Optimize instanceof: if all results are true and tests can be done using class only replace instanceof with a Boolean constant.
...
Review URL: https://codereview.chromium.org//11746024
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16648 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-04 21:29:05 +00:00
asiva@google.com
92dee42dcc
Do not emit pointer information for embedded singleton VM Isolate objects while generating code. These embedded objects do not need to be visited during GC.
...
Review URL: https://codereview.chromium.org//11722026
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16645 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-04 18:38:00 +00:00
iposva@google.com
3e367a12d8
- Consolidate verbose-gc output to be a single line which can be imported easily into spreadsheets.
...
Review URL: https://codereview.chromium.org//11734028
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16624 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-04 02:15:36 +00:00
asiva@google.com
4c069867e4
- Make Boolean 'true' and 'false' singleton VM isolate objects.
...
- Change all uses of it
Review URL: https://codereview.chromium.org//11745022
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16623 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-04 01:52:05 +00:00
meh@google.com
121c85b7ca
Fix pprof VM flag description
...
BUG=
Review URL: https://codereview.chromium.org//11695007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16593 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-03 02:11:03 +00:00
srdjan@google.com
29e06db609
In unoptimized code use call for instanceof instead of inlined checks. This allows us to collect type feedback and to reduce the code size of unoptimized code. Next will be work on type tests as well.
...
Review URL: https://codereview.chromium.org//11694003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16589 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-02 22:22:39 +00:00
iposva@google.com
e988dec7e7
- Mark huge methods are not-optimizable.
...
Review URL: https://codereview.chromium.org//11722006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16588 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-02 22:09:28 +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
regis@google.com
cb27634842
Remove NoSuchMethodErrorImplementation class and use NoSuchMethodError from core
...
lib instead.
Review URL: https://codereview.chromium.org//11712002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16583 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-02 18:52:28 +00:00
hausner@google.com
a2d682d1d8
Improve line info accuracy in debugging
...
Review URL: https://codereview.chromium.org//11696005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16550 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-28 18:51:58 +00:00
srdjan@google.com
818cd3bdc9
Fix instance of test for classes that implement call.
...
Review URL: https://codereview.chromium.org//11698002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16541 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-28 16:16:49 +00:00
antonm@google.com
b395961a8d
Fix a warning.
...
Most probably description needs some love too.
TBR=meh@google.com
Review URL: https://codereview.chromium.org//11692009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16538 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-28 10:00:26 +00:00
tball@google.com
18e748d0b3
Implemented class literals in the VM.
...
Review URL: https://codereview.chromium.org//11633054
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16530 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-27 23:45:40 +00:00
iposva@google.com
5b3aa7efab
- Fix comments and formatting.
...
Review URL: https://codereview.chromium.org//11646006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16528 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-27 23:25:43 +00:00
srdjan@google.com
97a49b6099
Small code cleanup in instanceof test.
...
Review URL: https://codereview.chromium.org//11674011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16519 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-27 19:23:09 +00:00
srdjan@google.com
84d5fb4614
Sort checks by counts before emitting test-and-call polymorphic instance calls.
...
Review URL: https://codereview.chromium.org//11602014
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16517 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-27 18:24:03 +00:00
hausner@google.com
6b51661ec2
Fix bug 5944
...
Ensure both closureized and regular function are deoptimized when
setting a breakpoint.
Review URL: https://codereview.chromium.org//11669017
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16464 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-22 01:09:44 +00:00
regis@google.com
d273efd45f
Turn compile time errors related to missing getters and setters into invocation
...
of noSuchMethod or into throwing of NoSuchMethodError according to spec.
Return result of InvocationMirror.invokeOn to caller.
Fix various tests.
Review URL: https://codereview.chromium.org//11669015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16463 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-22 00:40:46 +00:00
meh@google.com
432978367e
Clean up CodeObservers
...
Move CodeObserver registration to the OS abstraction.
Move Pprof logic to the OS abstraction.
Remove pprof from VM tests because now pprof logic is in the VM itself.
Add DISALLOW and AllStatic to Code Observers where appropriate.
Previous review: https://codereview.chromium.org/11572032/
BUG=7321
Review URL: https://codereview.chromium.org//11660011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16462 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-22 00:23:25 +00:00
meh@google.com
2c7dfbf982
Implement a native identical function in the VM.
...
Returns true if objects are the same instance.
Adds an identical closure test (disabled for dart2js pending https://chromiumcodereview.appspot.com/11612022/ ).
BUG=7378
Review URL: https://codereview.chromium.org//11613003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16461 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-22 00:12:35 +00:00
meh@google.com
2e1ecb18fe
Revert "Implement a native identical function in the VM."
...
This reverts commit 88a0845aedeed15106dcfc8c658ebed37e7e85dd.
BUG=
Review URL: https://codereview.chromium.org//11665016
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16460 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 23:58:48 +00:00
hausner@google.com
2d02548fb0
Ignore nested breakpoints
...
Fixes issue 5945.
When stepping into core library code, it is possible to hit a breakpoint
recursively when the debugger executes dart code to evaluate values.
This change ignores nested breakpoint and exception events.
Review URL: https://codereview.chromium.org//11644085
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16458 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 23:37:26 +00:00
meh@google.com
225d9a724b
Implement a native identical function in the VM.
...
Returns true if objects are the same instance.
BUG=7378
Committed: https://code.google.com/p/dart/source/detail?r=16453
Review URL: https://codereview.chromium.org//11613003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16456 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 22:42:21 +00:00
meh@google.com
51dc889ad7
Revert "Implement a native identical function in the VM."
...
This reverts commit 93e88749af841a1b381db6351a7196d35edd554e.
BUG=
Review URL: https://codereview.chromium.org//11578057
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16454 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 21:22:43 +00:00
meh@google.com
5e068fec8f
Implement a native identical function in the VM.
...
Returns true if objects are the same instance.
BUG=7378
Review URL: https://codereview.chromium.org//11613003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16453 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 20:34:42 +00:00
meh@google.com
a1bb3a9e51
Revert "Implement a native identical function in the VM."
...
This reverts commit c876c29bf4caa810bfc03c8b8908588168d634fe.
BUG=
Review URL: https://codereview.chromium.org//11664012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16451 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 20:08:59 +00:00