Commit Graph

13143 Commits

Author SHA1 Message Date
kasperl@google.com f7a56d3f70 Revert "Rename OutOfMemoryException to OutOfMemoryError."
This reverts r13818.

TBR'ed.

R=lrn@google.com
BUG=

Review URL: https://codereview.chromium.org//11229003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13820 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-19 13:11:15 +00:00
lrn@google.com 58f3453267 Rename OutOfMemoryException to OutOfMemoryError.
Also move ExceptionImplementation to core.

Review URL: https://codereview.chromium.org//11228002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13818 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-19 12:20:52 +00:00
iposva@google.com 5473080454 - Remove a couple static_cast and make them safe, by checking
the handle types.
- Ensure that the obj handle does not survive past the zone unwind.
Review URL: https://codereview.chromium.org//11188070

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13803 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-18 22:33:45 +00:00
srdjan@google.com 03a61f332c Apply optimization after class-id propagation: instance calls without ICData are optimized by using input argument class-ids to create fake ICData. This reduces the number of deoptimizations.
Review URL: https://codereview.chromium.org//11187046

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13798 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-18 20:41:58 +00:00
fschneider@google.com 66ad689447 Inline indexed store ([]=) array operations in checked mode.
Review URL: https://codereview.chromium.org//11186047

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13794 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-18 18:23:00 +00:00
iposva@google.com 5e9f303d5d - Do not bump allocate in old-space pages. Always use
the freelist in preparation for chunked allocation.
Review URL: https://codereview.chromium.org//11186013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13792 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-18 17:40:12 +00:00
fschneider@google.com bb295716fc Disable hoisting of checked-mode assertions out of loops.
They can only be safely hoisted if the loop is always executed at least
once. For now, I added a TODO to add an analysis for safely hoisting these
asserts.

TEST=tests/language/optimized_hoisting_checked_mode_assert.dart
Review URL: https://codereview.chromium.org//11195042

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13791 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-18 17:37:04 +00:00
hausner@google.com ddcca5bc14 Check illegal reference to 'this' in factory redirection
Fixes bug 2103.
Review URL: https://codereview.chromium.org//11190033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13790 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-18 17:20:59 +00:00
srdjan@google.com ac562c09b8 Fix optimization of %: replace IC call even if not optimizable.
Review URL: https://codereview.chromium.org//11190036

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13762 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-17 22:57:55 +00:00
hausner@google.com 77614b7263 Fix Ping Pong snapshot test
More illegal constructor names.
Review URL: https://codereview.chromium.org//11194037

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13757 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-17 20:39:42 +00:00
hausner@google.com 506ae29b8a Enable constructor name check by default
Remove the runtime flag that turns on the name check
for named constructors.

Eliminate obsolete test and test case.
Review URL: https://codereview.chromium.org//11194033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13755 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-17 20:02:07 +00:00
hausner@google.com 533b525b7a Add warning flag for legacy getter syntax
Review URL: https://codereview.chromium.org//11190009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13753 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-17 18:36:37 +00:00
tball@google.com 058a5a10ba Removed StackZone allocation from DARTSCOPE macro, added StackZones in the few places they were still needed.
BUG=

Review URL: https://codereview.chromium.org//11185015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13751 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-17 18:06:26 +00:00
fschneider@google.com da85f59f04 Enable more redundancy elimination for checked mode asserts.
This CL enables CSE for AssertBoolean and AssertAssignable.
In additions it allows removing redundant assignable-checks
by using static class-id information from the optimized IL.
Review URL: https://codereview.chromium.org//11186023

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13743 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-17 14:34:37 +00:00
srdjan@google.com 64a5b5f609 In optimized code always deoptimize if we encounter an instance call without type feedback (ICData has no checks).
Fix a bug in inliner: do not inline methods that have no compiled code as we can not deoptimize into them. This is the simplest fix, more complex fixes can be implemented if we see a need for them.

This improves the speed of Meteor by 15% and NavierStokes by 40% (Mac OS X). 
Review URL: https://codereview.chromium.org//11186007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13712 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-16 23:46:27 +00:00
tball@google.com 2cd8436c5a Changed StackZone and ApiZone to be containers for Zone.
BUG=

Review URL: https://codereview.chromium.org//11028145

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13707 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-16 22:05:40 +00:00
srdjan@google.com 5f2287b55b Add value tests to intrinisics GrowableArray _setData and setLength. Thos are private native methods that could be invoked via mirrors with incorrect values.
Review URL: https://codereview.chromium.org//11195007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13704 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-16 21:55:36 +00:00
johnmccutchan@google.com 64da247024 Intrinsify writing to Uint8 and Int8 arrays on IA32.
Review URL: https://codereview.chromium.org//11074016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13703 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-16 21:39:18 +00:00
hausner@google.com 384115d235 Remove built-in identifier 'negate' from VM
Keep the token kNEGATE for the backend to distinguish between
unary and binary - operator.
Review URL: https://codereview.chromium.org//11199002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13700 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-16 20:19:06 +00:00
johnmccutchan@google.com 180917268a Intrinsify natural world typed array getters
Review URL: https://codereview.chromium.org//11139004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13696 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-16 18:52:14 +00:00
srdjan@google.com 427cbb2b84 Fix receiver's type for constructors.
Review URL: https://codereview.chromium.org//11187003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13685 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-16 16:36:46 +00:00
regis@google.com adb534674c Change core lib, dart2js, and more for new optional parameters syntax and semantics (new semantics is not enforced yet).
Review URL: https://codereview.chromium.org//11090016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13684 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-16 16:03:47 +00:00
fschneider@google.com 6b501e5d8b Optimize type checks for boolean expressions using class-id information.
This CL adds a canonicalization pass for AssertBoolean instructions.
If the input class id is guaranteed to be bool, the check can be
eliminated.
Review URL: https://codereview.chromium.org//11191002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13683 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-16 15:59:48 +00:00
srdjan@google.com fc6afec8de Inline indexed load and store of typed array float64.
NavierStokes time improves from 34,775us to 12,000us (v8 runs NavierStokes in 16000 us).
Review URL: https://codereview.chromium.org//11092090

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13682 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-16 15:40:54 +00:00
srdjan@google.com f2f42283fa Fix crashes in intrinsified float32/float64 array setters when attempting to store a Smi. Added tests.
Review URL: https://codereview.chromium.org//11144021

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13664 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-15 20:04:13 +00:00
hausner@google.com 1811a6b913 Support for type dynamic in VM
Old name Dynamic is supported, and automatically converted to
lower-case dynamic when parsed.

VM flag --warn_legacy_dynamic prints warnings when Dynamic
is found.
Review URL: https://codereview.chromium.org//11125005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13637 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-12 22:40:24 +00:00
kmillikin@google.com f49dcf37e9 Guard against buffer overflow in the x64 disassembler.
BUG=

Review URL: https://codereview.chromium.org//11092099

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13598 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-12 08:12:24 +00:00
asiva@google.com 1bf642129d - Get rid of RawClosure class and use RawInstance for closures.
- Simplify SetRaw to not require an access to the Current Isolate.
Review URL: https://codereview.chromium.org//11087070

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13581 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-11 20:34:08 +00:00
srdjan@google.com 4d16e710a5 Apply John's change (Issue 11077007: Intrinsify Float64 array access on ia32 and x64.).
Review URL: https://codereview.chromium.org//11087087

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13576 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-11 19:44:47 +00:00
regis@google.com 3969668ab8 Resolve interfaces before starting finalizing classes (issue 5586).
Review URL: https://codereview.chromium.org//11088079

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13563 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-11 17:28:33 +00:00
asiva@google.com 6b07453dd6 - Remove deprecated Dart API calls Dart_ClosureSmrck and DartClosureSetSmrck
- Remove the smrck field from RawClosure object.
Review URL: https://codereview.chromium.org//11017069

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13559 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-11 17:08:30 +00:00
fschneider@google.com 54ea76dc6b Remove support for optimized dart leaf functions.
This optimization does not bring any benefit since all functions
have at least a call in the slow-path of the stack-overflow check.

I'm suggesting to remove support for this optimization since it
does not get triggered currently, therefore is also not tested.
Plus we have inlining now, which already makes calls to (small 
enough) leaf functions fast.
Review URL: https://codereview.chromium.org//11086044

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13555 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-11 16:35:47 +00:00
fschneider@google.com 667b0d5185 Mark optimized functions with a * in the perf event symbol output.
This allows to distinguish time spent in optimized code vs unoptimized code
in our profile information.
Review URL: https://codereview.chromium.org//11028143

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13547 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-11 15:07:49 +00:00
fschneider@google.com f52b2fb960 Fix bug in the sminess propagation that limited optimization opportunities.
The existing code did not add phi-uses of phis to the worklist properly and
as a result the sminess was not propagated across phis.
Review URL: https://codereview.chromium.org//11087079

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13544 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-11 14:19:41 +00:00
fschneider@google.com 5113b2411a Remove support for generating visualizer format file for the flowgraph.
Review URL: https://codereview.chromium.org//11099061

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13536 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-11 12:25:55 +00:00
iposva@google.com bc26800a4f - Generate a version string based on the VERSION file.
- Add a Dart_VersionString to the API.
- Print version string when passing --version to the standalone binary.
Review URL: https://codereview.chromium.org//11086065

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13514 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-11 07:17:09 +00:00
cshapiro@google.com 5e5049047e Add missing scope initializations.
Review URL: https://codereview.chromium.org//11017064

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13506 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-10 23:36:13 +00:00
srdjan@google.com e01b80da2c Report error in APIs if type is malformed instead of crashing. Example:
Dart_FunctionReturnType: malformed type encountered: 'file:///sources/dartall/dart/pkg/intl/lib/intl.dart': Error: line 235 pos 10: cannot resolve class name 'dynamic' from 'Intl'
Review URL: https://codereview.chromium.org//11099049

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13500 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-10 20:54:49 +00:00
srdjan@google.com cd3a59cbdc Fix a crash in compiler.
Review URL: https://codereview.chromium.org//11087062

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13496 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-10 20:27:33 +00:00
zerny@google.com 22e619ff31 Recursive inlining.
Due to large performance regressions on dart2js the default depth is set to 1, i.e., we only inline the first level of calls by default. The depth can be changed with the inlining_depth_threshold flag.

R=kmillikin@google.com

Review URL: https://codereview.chromium.org//11029027

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13471 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-10 13:18:40 +00:00
fschneider@google.com 483f813769 Slightly improved register constraints for mint add and sub.
Review URL: https://codereview.chromium.org//11099034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13462 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-10 10:49:06 +00:00
zerny@google.com 5200dfb8b1 Remove slow assert from VM.
Replaced slow-asserts with verify-compiler and removed vm/assert.h

R=srdjan@google.com
BUG=5720

Review URL: https://codereview.chromium.org//11017027

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13456 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-10 08:03:28 +00:00
srdjan@google.com 4ad647121f Fix build breakage, removed arguments twice instead of once.
Review URL: https://codereview.chromium.org//11092038

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13448 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 22:40:54 +00:00
srdjan@google.com c83fd716e4 Implement SmiToInt and DoubleToInt. All necessary tests are in tests/language/arithmetic_test.dart
Review URL: https://codereview.chromium.org//11098009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13443 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 21:43:10 +00:00
asiva@google.com 517ff06459 Instead of aborting with an assert, exit with an error when we get an OOM
while handling messages. This is a temporary solution until we have the
isolate error handling mechanism in place (for issue 1403).
Review URL: https://codereview.chromium.org//10915295

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13433 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 19:49:11 +00:00
srdjan@google.com 8e7aee9048 Address Florian's comments.
Review URL: https://codereview.chromium.org//11090027

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13427 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 18:46:25 +00:00
fschneider@google.com b38daebd36 Faster 64-bit left-shift for ia32.
This CL adds a fast left-shift that operates on unboxed mints.
(64-bit integers) to the ia32 optimizing compiler.
Review URL: https://codereview.chromium.org//11085004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13408 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 11:59:44 +00:00
iposva@google.com 78c30b0775 - Update status files for failing tests.
Review URL: https://codereview.chromium.org//11093013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13387 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 00:47:42 +00:00
iposva@google.com 5f2f50f960 Land http://codereview.chromium.org/11047027/ for Matthias:
Implement export clause in VM 

Implement export namespace support in VM compiler. 

Missing functionality: ensuring that a name is only re-exported once.
Review URL: https://codereview.chromium.org//11028084

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13384 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-09 00:14:42 +00:00
regis@google.com 6c7a1f30fd Look up getter in super call (issue 3621).
Review URL: https://codereview.chromium.org//11088014

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13376 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-08 21:37:34 +00:00