meh@google.com
55596818ac
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=16400
Committed: https://code.google.com/p/dart/source/detail?r=16412
Review URL: https://codereview.chromium.org//11613003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16450 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 19:07:55 +00:00
meh@google.com
ef737f105d
Revert "Clean up CodeObservers"
...
This reverts commit 43e5ada2fba69c7d5c009b5bf70a234f12941617.
BUG=
Review URL: https://codereview.chromium.org//11644074
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16446 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 17:45:36 +00:00
meh@google.com
6fbf9f1c2e
Clean up CodeObservers
...
Move CodeObserver registration to the OS abstraction
Move Pprof logic to the OS abstraction
Add DISALLOW and AllStatic to Code Observers where appropriate
BUG=7321
Committed: https://code.google.com/p/dart/source/detail?r=16273
Review URL: https://codereview.chromium.org//11572032
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16445 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 17:37:59 +00:00
fschneider@google.com
8a54796712
Cleanup: Don't allocate a frame iterator in the IC miss handler when it's not needed.
...
Review URL: https://codereview.chromium.org//11607018
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16439 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 11:56:11 +00:00
kmillikin@google.com
6ff1d9cfc5
Simplify basic block discovery -- handle all blcoks uniformly.
...
R=fschneider@google.com
BUG=
Review URL: https://codereview.chromium.org//11571057
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16420 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 08:58:32 +00:00
asiva@google.com
c29b839d9d
Fix latin1 character predefinition in the symbol table. The code
...
was doing two calls to FindIndex for every character.
Review URL: https://codereview.chromium.org//11644038
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16417 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 03:07:10 +00:00
asiva@google.com
7ea520f10f
Create read only handles for empty_array and sentinel objects
...
(trying out a basic framework and will extend it to others once this
works).
Review URL: https://codereview.chromium.org//11648006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16416 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 02:33:05 +00:00
meh@google.com
38aa3e1dee
Revert "Implement a native identical function in the VM."
...
This reverts commit 0f29c63d64de37beb5f1b927a492687fde6de58a.
BUG=
Review URL: https://codereview.chromium.org//11645060
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16414 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 01:50:27 +00:00
meh@google.com
585e671819
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=16400
Review URL: https://codereview.chromium.org//11613003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16412 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 01:14:32 +00:00
meh@google.com
5d390fdf6c
Revert "Implement a native identical function in the VM."
...
This reverts commit b6265dc1f0711711bcd26413826155f338c49c6d.
Merge remote-tracking branch 'git-svn' into revert-identical
Revert "Implement a native identical function in the VM."
This reverts commit b6265dc1f0711711bcd26413826155f338c49c6d.
Merge remote-tracking branch 'git-svn' into identical
Merge remote-tracking branch 'git-svn' into identical
stage for submission
BUG=
Review URL: https://codereview.chromium.org//11649045
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16402 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-20 21:49:54 +00:00
meh@google.com
d59b5937a6
Implement a native identical function in the VM.
...
Takes two objects and returns a boolean.
If the objects are SMIs, then returns true if the values are identical.
If the objects are not SMIs, then returns true if the references are identical.
BUG=7378
Review URL: https://codereview.chromium.org//11613003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16400 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-20 21:35:38 +00:00
ager@google.com
08b1e44502
Reapply "Optimize the message queue for many active ports with few messages."
...
BUG=
Review URL: https://codereview.chromium.org//11647038
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16394 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-20 20:03:07 +00:00
ager@google.com
c3c47bbc98
Revert "Optimize the message queue for many active ports with few messages."
...
No failures locally. I'll investigate tomorrow.
R=iposva@google.com
BUG=
Review URL: https://codereview.chromium.org//11642048
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16392 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-20 19:40:29 +00:00
srdjan@google.com
324f1715bc
Mark final fields as immutable.
...
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16390 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-20 19:29:52 +00:00
ager@google.com
6e945a2578
Optimize the message queue for many active ports with few messages.
...
The current message queue implementation is very inefficient if you are using
many active ports with few messages. This happens when you use 'call' a lot
on ports which is currently done in dart:io.
This patch does not remove messages from the queue when closing a port. Instead
it drops messages for closed ports when it processes them. This dramatically
speeds up dart:io benchmarks that enqueue tons of writes on a file output
stream.
R=iposva@google.com
BUG=http://dartbug.com/6911
Review URL: https://codereview.chromium.org//11440035
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16388 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-20 19:20:44 +00:00
fschneider@google.com
3546cf0b35
Cache resolution of two static functions frequently used in I/O.
...
Review URL: https://codereview.chromium.org//11636017
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16360 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-20 12:42:11 +00:00
vegorov@google.com
9a45691c76
When replacing one value with another ensure that replacement has SSA index assigned.
...
R=srdjan@google.com
BUG=dart:7513
Review URL: https://codereview.chromium.org//11638030
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16352 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-20 00:16:42 +00:00
regis@google.com
9cdeb399d1
Simplify method invocation runtime entries.
...
Review URL: https://codereview.chromium.org//11636025
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16343 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-19 21:26:29 +00:00
srdjan@google.com
b7ed42c921
Fix test failure issue 7471: Signature classes have different type checking rules, i.e., they have no subclasses but other signature classes may be subtypes (must check signature).
...
Review URL: https://codereview.chromium.org//11640025
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16339 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-19 19:47:13 +00:00
vegorov@google.com
04c4cf1860
Set kArrayCid as ResultCid for CreateArray instruction.
...
Propagate the length of the array returned by CreateArray in constant propagation.
Fold constant RelationalOp instructions.
Together this allows to kill considerable amount of unrechable code emitted from array literal allocation.
R=fschneider@google.com
BUG=
Review URL: https://codereview.chromium.org//11635017
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16331 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-19 17:47:01 +00:00
fschneider@google.com
3a1ab92a21
Make getter for capacity in _GrowableObjectArray private.
...
Review URL: https://codereview.chromium.org//11606023
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16314 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-19 11:48:30 +00:00
fschneider@google.com
3a38233a6f
Inline ByteArrayBase.length in the flow graph optimizer.
...
Review URL: https://codereview.chromium.org//11628011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16311 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-19 10:43:13 +00:00
srdjan@google.com
000fd5bf35
UnboxDouble: convert smi constants to doubles at compile time instead of at runtime.
...
Review URL: https://codereview.chromium.org//11645006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16296 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-18 23:48:03 +00:00
asiva@google.com
8af296c9c8
Cleanup the exceptions create code to use Arrays instead GrowableArrays so
...
that it is consistent with the DartEntry invoke code that it calls finally.
Review URL: https://codereview.chromium.org//11639007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16295 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-18 23:47:35 +00:00
asiva@google.com
2c6de68680
Changed the API in DartEntry for invoking dart code from C++ to make it more compatible with the requirements of the runtime.
...
Deleted all the code duplication that was added to circumvent the old DartEntry API requirements.
Review URL: https://codereview.chromium.org//11613009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16288 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-18 21:36:01 +00:00
meh@google.com
b406d5cb4e
Revert "Cleanup CodeObservers (and update build file)"
...
This reverts commit b528d673e762b0db88b902ec2e45f917e21d8a67.
BUG=
Review URL: https://codereview.chromium.org//11638002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16285 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-18 19:59:30 +00:00
meh@google.com
cc626035f1
Cleanup CodeObservers (and update build file)
...
- Move CodeObserver registration to the OS abstraction
- Add DISALLOW and AllStatic to Code Observers where appropriate
The builds for Mac and Windows broke when I submitted the earlier CL (11572032). This CL removes obselete files from the .gypi build file.
BUG=7321
Review URL: https://codereview.chromium.org//11630007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16284 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-18 19:54:12 +00:00
meh@google.com
4264ab7907
Revert "Cleanup CodeObservers"
...
This reverts commit 16a9677a8a8f0fb8f91c9e6348e188aa167b36c7.
BUG=
Review URL: https://codereview.chromium.org//11607022
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16277 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-18 19:11:09 +00:00
srdjan@google.com
1601d234c5
Fix build.
...
Review URL: https://codereview.chromium.org//11607021
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16274 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-18 18:57:05 +00:00
meh@google.com
6adb8b3e6d
Cleanup CodeObservers
...
Move CodeObserver registration to the OS abstraction
Add DISALLOW and AllStatic to Code Observers where appropriate
BUG=7321
Review URL: https://codereview.chromium.org//11572032
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16273 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-18 18:54:30 +00:00
srdjan@google.com
18b376a8ad
Add DoubleToSmi optimistically, preventing boxing/unboxing of doubles and propagate smi-nessof the result.
...
Review URL: https://codereview.chromium.org//11568044
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16272 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-18 18:43:29 +00:00
srdjan@google.com
5a698bba3d
Use call counts to prevent cold calls from being inlined.
...
Review URL: https://codereview.chromium.org//11541002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16269 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-18 18:15:41 +00:00
iposva@google.com
391cefa02e
- Consider the growth policy even when allocating large pages.
...
Review URL: https://codereview.chromium.org//11434056
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16267 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-18 17:45:55 +00:00
regis@google.com
6665f3c92c
Include super type in interface list for cycle detection (issue 4318).
...
Report an error if a type appears in both extends clause and implements clause.
Add language test.
Close old pending issue 4905685.
Review URL: https://codereview.chromium.org//11613007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16237 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-18 00:13:33 +00:00
regis@google.com
aef9047742
Invoke noSuchMethod instead of immediately throwing NoSuchMethodError when
...
invoking a non-closure as a closure (reopened issue 3326).
Address comments of last cl.
Review URL: https://codereview.chromium.org//11612002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16220 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-17 19:35:16 +00:00
vegorov@google.com
9fc1b54794
Store optimized flow graph statistics on the function itself.
...
This gives a good estimate for an early bailout from the inlining attempt.
BUG=
Review URL: https://codereview.chromium.org//11567012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16212 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-17 15:22:16 +00:00
cshapiro@google.com
49f6f9f36d
Merge the Merlin heap tracing to top-of-trunk.
...
Review URL: https://codereview.chromium.org//11428067
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16199 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-15 19:58:45 +00:00
regis@google.com
3ae792bbf4
Implement InvocationMirror.invokeOn method in the vm (issue 7227).
...
Review URL: https://codereview.chromium.org//11570042
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16187 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-15 00:28:41 +00:00
tball@google.com
3282ae3f72
Second version of support for specifying an unhandled exception callback
...
in Dart. Isolate.spawnFunction optionally takes a callback parameter,
which is not resolved until an unhandled exception occurs. If a callback
wasn't specified, the VM will then call an "_unhandledExceptionCallback"
function if it is defined in the isolate's source file. If no callback
is provided, the error is logged as the isolate is closed.
Review URL: https://codereview.chromium.org//11558034
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16186 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-15 00:20:07 +00:00
regis@google.com
849585ef7c
Implement Function.apply in vm (issue 5670).
...
Fix a closure parameter count check bug (unveiled by an apply test).
Review URL: https://codereview.chromium.org//11564029
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16175 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-14 19:04:01 +00:00
asiva@google.com
e2e6ae3437
Fix windows build.
...
Review URL: https://codereview.chromium.org//11566025
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16152 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-14 07:17:27 +00:00
asiva@google.com
d3dcb3a952
Fix build break.
...
Review URL: https://codereview.chromium.org//11565028
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16150 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-14 06:59:26 +00:00
asiva@google.com
0a5bf36268
Changes per discussion with Anton
...
- Add a new API call Dart_StringTolatin1 so that the contents of a
string object that satisfies Dart_IsStringLatin1 can be gotten
- Tweak Dart_MakeExternalString to copy out the contents of the string
for valid string objects that can not be externalized by the VM
(e.g strings in the VM isolate)
Review URL: https://codereview.chromium.org//11580003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16149 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-14 06:44:26 +00:00
srdjan@google.com
27296584c2
Increase optimziation counter threshold to 3000, improves dart2js preformance.
...
Review URL: https://codereview.chromium.org//11442059
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16127 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-13 16:27:09 +00:00
vegorov@google.com
6586895d5f
Implement store to load forwarding.
...
Implementation is done on top of load to load forwarding. In addition to killing loads stores now generate values for corresponding load ids.
To find load expression id corresponding to a store we change KeyValueTrait of the map used for load numbering. New trait allows to lookup a load by store.
R=fschneider@google.com
BUG=
Review URL: https://codereview.chromium.org//11568011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16119 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-13 15:31:29 +00:00
fschneider@google.com
9e77dd7986
Store canonical type argments in a hash table instead of linear list.
...
The code closely follows the symbol table implementation, but adjusted
for use with TypeArguments objects.
Review URL: https://codereview.chromium.org//11474056
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16117 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-13 15:24:32 +00:00
vegorov@google.com
a3cf827526
Never try to add 0 bytes to free list.
...
R=iposva@google.com
BUG=dart:7288
Review URL: https://codereview.chromium.org//11564015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16114 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-13 14:48:30 +00:00
vegorov@google.com
1ee5f51793
Improve redundant load elimination.
...
Previously it incorrectly computed OUT sets during the fix point iteration: did not propagate changed from IN to OUT.
However just computing bitset representation of IN set was actually not enough because different values might be coming in from different predecessors.
This algorithm inserts phis at merge points.
R=fschneider@google.com
BUG=
Review URL: https://codereview.chromium.org//11505002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16109 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-13 14:10:38 +00:00
meh@google.com
1125aff405
Move generate_perf_events_symbols flag to VM (new issue with @google address)
...
Changes reviewed and approved here:
https://chromiumcodereview.appspot.com/11490026
Created a new issue using meh@google.com instead of meh@chromium.org so I can commit to trunk.
BUG=
Committed: https://code.google.com/p/dart/source/detail?r=16016
Review URL: https://codereview.chromium.org//11549011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16084 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-13 00:42:19 +00:00
iposva@google.com
d66477ee50
- Remove duplicate declaration of flag.
...
Review URL: https://codereview.chromium.org//11548048
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16083 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-13 00:39:12 +00:00