zra@google.com
573b9d859a
Fixes a bug in the mips Random_nextState intrinsic.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//18141002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24549 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-27 20:46:28 +00:00
regis@google.com
3711825476
Fix Random_nextState intrinsic on ARM.
...
R=zra@google.com
Review URL: https://codereview.chromium.org//18054006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24548 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-27 20:16:53 +00:00
zra@google.com
55d97a6d56
Adds missing case in mips double comparison.
...
Also, adds mips and simmips to runtime benchmark script,
and fixes up a status file.
R=regis@google.com
Review URL: https://codereview.chromium.org//18123003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24541 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-27 19:03:04 +00:00
iposva@google.com
50fc824be9
- Remove arguments definition test from the VM.
...
- Update tests still referring to it.
R=regis@google.com
Review URL: https://codereview.chromium.org//17977002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24539 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-27 18:37:53 +00:00
iposva@google.com
7c6573258b
- Protect against icount_ overflow in the delay slot and only
...
stop if a stop_sim_at value has been set.
R=zra@google.com
Review URL: https://codereview.chromium.org//18055006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24537 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-27 17:40:35 +00:00
zra@google.com
60392c70fd
Implements external array access for mips.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//17907005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24524 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-27 16:42:39 +00:00
srdjan@google.com
f415b31685
Add --deoptimization_counter_inlining_threshold=10 that stops inlining in a method that has reached it.
...
R=fschneider@google.com
Review URL: https://codereview.chromium.org//17770003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24519 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-27 15:26:16 +00:00
fschneider@google.com
fd3f443181
Fix a bug in allocation sinking and load elimination.
...
1. Aliasing information was not computed for allocations that
are never used in a LoadField instruction.
2. CanBeAliased was not correct in the case of a StoreVMField.
BUG=https://code.google.com/p/dart/issues/detail?id=11538
TEST=runtime/vm/flow_graph_optimizer.cc
R=vegorov@google.com
Review URL: https://codereview.chromium.org//18055004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24515 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-27 13:26:23 +00:00
regis@google.com
0c93466054
Hide parent function name in name of closurized function to user (issue 5436).
...
Hide implicit parameter of closure to user.
R=iposva@google.com
Review URL: https://codereview.chromium.org//17904009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24504 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-27 00:49:49 +00:00
srdjan@google.com
f791281f91
Add two-byte string support in codeunitAt intrinsic.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//17907003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24500 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-27 00:05:10 +00:00
regis@google.com
169bc2f989
Fix code for store buffer update on ARM and MIPS (link register was trashed).
...
R=zra@google.com
Review URL: https://codereview.chromium.org//17868006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24493 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-26 22:14:42 +00:00
asiva@google.com
e16291b973
Convert implementation in mirrors.cc to use Dart_GetType instead of Dart_GetClass.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//17582016
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24491 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-26 21:30:18 +00:00
regis@google.com
5ffa56b798
Fix and simplify invocation of noSuchMethod on all platforms after the wrong
...
number (or bad name) of arguments is passed.
The frame of the wrong method (the one invoked with the wrong number or name of
arguments) is not left on the stack and therefore not visible in the stack trace
anymore, which is much cleaner, especially since the leftover frame was not
fully initialized.
This change was already done on ARM.
R=zra@google.com
Review URL: https://codereview.chromium.org//17857008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24485 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-26 19:58:49 +00:00
zra@google.com
ce82a777e5
Fixes integer negate intrinsic for arm and mips.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//17847006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24481 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-26 17:43:48 +00:00
regis@google.com
70043d1f94
Fix and simplify invocation of noSuchMethod on ARM after the wrong number of
...
arguments is passed.
The frame of the wrong method (the one invoked with the wrong number of
arguments) is not left on the stack and therefore not visible in the stack trace
anymore, which is much cleaner, especially since the leftover frame was not
fully initialized.
Note: We should simplify this on other platforms as well.
R=zra@google.com
Review URL: https://codereview.chromium.org//17766005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24475 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-26 16:31:53 +00:00
zra@google.com
364c5406b8
Fixes floating point bug in ARM simulator.
...
Adjusts status files to match.
R=regis@google.com
Review URL: https://codereview.chromium.org//17742003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24473 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-26 15:48:22 +00:00
kmillikin@google.com
56c4a4a5e2
Remove an unused field in the AST.
...
The try_index of catch clauses was set but never read.
R=fschneider@google.com
Review URL: https://codereview.chromium.org//17873002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24465 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-26 12:36:44 +00:00
fschneider@google.com
7e71783df6
Support type arguments for allocation sinking in certain conditions.
...
The type arguments are treated like a normal field that is initialized
with the type arguments passed to the allocation stub. This CL restricts
the optimization to the case where no instantiator is passed
(instantiator == kNoInstantiator). In this case the type arguments are
either a constant or loaded from a field.
Also: improve variable liveness analysis by pruning partially dead
variables from the environment. At the beginning of each block, all
variables that are _not_ in live-in are replaced with null.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//16799003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24459 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-26 09:20:46 +00:00
fschneider@google.com
b76b3bbbf4
Correctly deal with method invocation of a getter.
...
If getter lookup succeeds, but getter invocation throws
an exception, the result is the thrown exception and
not as previously noSuchMethod invocation.
BUG=https://code.google.com/p/dart/issues/detail?id=11512
TEST=tests/language/method_invocation_test.dart
R=srdjan@google.com
Review URL: https://codereview.chromium.org//17675002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24457 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-26 08:44:00 +00:00
iposva@google.com
11632110c6
- Revert r24441 until issues found have been addressed.
...
Review URL: https://codereview.chromium.org//17769004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24443 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-25 23:38:45 +00:00
iposva@google.com
ddc3e13f8a
- Trial balloon for removal of argument definition test.
...
This change removes the support for the ? operator.
R=asiva@google.com , hausner@google.com
Review URL: https://codereview.chromium.org//17765003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24441 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-25 23:04:19 +00:00
srdjan@google.com
f21ae73ae9
Fix bot redness: max_calls can be zero if no call was actually executed.
...
R=iposva@google.com
Review URL: https://codereview.chromium.org//17749004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24438 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-25 22:53:45 +00:00
srdjan@google.com
7defd2255c
Use call counts to determine which static calls to inline.
...
R=fschneider@google.com
Review URL: https://codereview.chromium.org//17646002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24436 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-25 22:12:49 +00:00
srdjan@google.com
7d945c593a
Remove skip_static_calls_ as it uses an obsolete way to check for uncalled static calls. Will be replaced by ICData tracking.
...
Add two different PCDescriptors to differentiate between optimized and unoptimized static calls (the former loads args. descr, the later loads ICData before calling).
Populate static call's ic_data field when optimizing.
R=asiva@google.com
Review URL: https://codereview.chromium.org//17723002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24433 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-25 21:31:37 +00:00
zra@google.com
5bf5a92064
Fixes bugs in arm and mips intrinsifier.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//17634003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24427 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-25 18:58:47 +00:00
vegorov@google.com
370a99eda4
Refactor load forwarding pass to use a Place abstraction.
...
Place describes a location that code can load from or store to.
Start forwarding loads through phis.
Previously load forwarding operated directly on load instructions which complicated certain things e.g. implementation of a hash map had to allow looking up a load instruction by store instruction, forwarding through phis might have required introducing synthetic load instructions to be put into the map.
R=kmillikin@google.com
Review URL: https://codereview.chromium.org//17101028
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24426 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-25 18:50:26 +00:00
asiva@google.com
010c23dc7c
Fix Dart_GetType to get the correct number of type arguments.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//17617006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24422 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-25 17:25:35 +00:00
fschneider@google.com
b8db2f0aba
Inline object constructor already in the method recognizer.
...
The call is replaced with "return null". This allows us to always
inline calls to "Object." without extra overhead in the generic
flow graph inliner.
R=kmillikin@google.com
Review URL: https://codereview.chromium.org//17624010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24391 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-25 10:56:44 +00:00
rmacnak@google.com
ed4fbd6255
Removed dead code: ConsumeIdentChar
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//17609004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24377 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 23:47:00 +00:00
johnmccutchan@google.com
db9f4d4ef7
Remove --disable_privacy
...
BUG=https://code.google.com/p/dart/issues/detail?id=11493
R=hausner@google.com
Review URL: https://codereview.chromium.org//17621003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24374 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 22:45:12 +00:00
asiva@google.com
8e27430ddd
- Create isolate specific resuable handles and use them in the hot lookup paths.
...
- Create a ResuableHandleScope class which ensures that we do not end up
recursively reusing handles leading to corruption.
This change shows Dart2JSCompileAll runtime change from 739931 to about
645035 on my local machine.
R=iposva@google.com
Review URL: https://codereview.chromium.org//16174008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24373 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 22:41:01 +00:00
johnmccutchan@google.com
83230d2acc
Preallocate objects in Dart::InitializeIsolate not in Api::CheckIsolateState
...
BUG=https://code.google.com/p/dart/issues/detail?id=11396
R=iposva@google.com
Review URL: https://codereview.chromium.org//17066009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24371 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 22:12:53 +00:00
zra@google.com
8edda78ccc
Enables more tests for SIMMIPS.
...
. Fixes register allocation bugs
. Implements float <-> double conversion in assembler and simulator.
. Fixes floating point argument passing for simarm and simmips,
and floating point return for simarm, and adjusts tests to match.
R=regis@google.com
Review URL: https://codereview.chromium.org//17502002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24365 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 20:16:16 +00:00
zra@google.com
6ea08a30af
Allows exception object to be null in simarm and simmips.
...
Also, updates status files.
R=regis@google.com
Review URL: https://codereview.chromium.org//17587015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24361 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 18:38:46 +00:00
fschneider@google.com
0bf7251d1a
Reland: Optimizing noSuchMethod invocation with no arguments.
...
This is the same CL as https://codereview.chromium.org/17315008/ with
one bug fixed:
If a method is invoked with a mismatching number of arguments, we don't
add a no-such-method-dispatcher function since the dispatcher currently
can only invoke noSuchMethod and would not work if the method
is invoked with correct arguments at a later point.
I extended the test to cover that case.
TEST=tests/language/no_such_method_dispatcher_test.dart
R=srdjan@google.com
Review URL: https://codereview.chromium.org//17571010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24351 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 17:18:51 +00:00
vegorov@google.com
35ce4d245f
Ensure that allocation sinking candidates are classified as not-aliased before final load forwarding.
...
R=fschneider@google.com
BUG=dart:11436
Review URL: https://codereview.chromium.org//17577007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24325 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 12:16:10 +00:00
srdjan@google.com
fa7817bf79
Change static calls in unoptimized code to always call via a stub. Using ICData, the call count of static calls is collected as well.
...
TODO: Use call frequency to guide inlining.
R=asiva@google.com , hausner@google.com , zra@google.com
Review URL: https://codereview.chromium.org//17554003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24307 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 23:35:10 +00:00
zra@google.com
06abf98b1f
In FiftyThreeBitOverflow, stores overflowing value as a string.
...
R=srdjan@google.com
Review URL: https://codereview.chromium.org//17550009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24295 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 16:43:43 +00:00
fschneider@google.com
48555c83ac
Back out r24266 to investigate dartium test failure.
...
TBR=kmillikin@google.com
Review URL: https://codereview.chromium.org//17074003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24284 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 11:56:32 +00:00
fschneider@google.com
ab1981b421
Optimizing noSuchMethod invocation with no arguments.
...
On each call that triggers a noSuchMethod invocation we
attach a custom dispatch function that allocates the
invocation object and invokes noSuchMethod. This dispatcher
is compiled and optimized like a normal Dart function.
Similar to method-extractors, these implicit dispatchers
do not show up as normal functions.
As a first step this CL only handles invocations of getters
and methods with no like o.foo or o.foo(). This CL gives
a >25x speedup of such noSuchMethod invocations. Calls with
multiple arguments still go through the slow path.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//17315008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24266 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 07:31:51 +00:00
lrn@google.com
0c90061029
Move FiftythreeBitOverflowError to VM-only patch file.
...
The class is not meaningful in the core library, and should go away once
dart2js has integers.
R=floitsch@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//17361004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24265 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 07:31:48 +00:00
johnmccutchan@google.com
b7003f166b
Stop unwanted class finalization when using dart:io HttpClient from builtin.dart
...
BUG=11232
R=iposva@google.com
Review URL: https://codereview.chromium.org//17503002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24252 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-20 20:51:14 +00:00
asiva@google.com
16c945cb88
Minor cleanups to use null_array(), null_object() and null_string() handles.
...
R=srdjan@google.com
Review URL: https://codereview.chromium.org//17501003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24247 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-20 19:49:30 +00:00
srdjan@google.com
47de186e76
Store arguments descriptor in ICData. Remove loading of arguments descriptor at unoptimized call site (the ones using ICData).
...
R=asiva@google.com , zra@google.com
Review URL: https://codereview.chromium.org//17421003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24239 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-20 16:29:39 +00:00
kmillikin@google.com
632ac9f2c9
Fix a bug in graph construction for for loops.
...
A refactoring in SVN r24088 introduced a bug in for loops. Loops with
continue in the body and an empty update expression list will lose the
edge from the continue to the loop entry.
R=fschneider@google.com
BUG=11375
Review URL: https://codereview.chromium.org//17491003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24214 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-20 10:17:34 +00:00
zra@google.com
4c0268f31e
Removes references to LIB_DIR from gyp files.
...
This eliminates the cirular dependency warnings from make.
R=iposva@google.com
Review URL: https://codereview.chromium.org//17288009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24206 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-19 22:33:57 +00:00
asiva@google.com
106b0847fd
Fix for issue 11262.
...
- Add Dart_InstanceGetType
- Wire Dart_New, Dart_Invoke and Dart_[G|S]etField to use types
R=regis@google.com , vsm@google.com
Review URL: https://codereview.chromium.org//17390008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24195 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-19 18:20:55 +00:00
regis@google.com
68041e2d0d
Fix more register allocation bugs in optimized code on ARM.
...
R=zra@google.com
Review URL: https://codereview.chromium.org//17176004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24191 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-19 16:21:27 +00:00
vsm@google.com
9ddec8e9a1
Add Dart_Allocate to the C++ API
...
This change allows us to allocate Dart objects from C++ without
invoking a constructor. In turn, it allows us to declare Dartium DOM
types with no public generative constructor.
Note, the current constructor has to be public as dart:html Element is
subclassed by dart:svg SvgElement (and eventually by user defined
custom elements as well). This leads to unfortunate holes such as: https://code.google.com/p/dart/issues/detail?id=11277
This should also give a modest boost in DOM perf as the existing
constructor does absolutely nothing.
BUG=11277
R=asiva@google.com
Review URL: https://codereview.chromium.org//16968006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24189 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-19 15:48:23 +00:00
kmillikin@google.com
0104b48892
Fix a small bug in trace printing for discovered loops.
...
Loop blocks were printed with their preorder number, which is hard to
correlate to the graph. Use the block id instead.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//17283006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24184 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-19 13:56:48 +00:00