Commit Graph

13143 Commits

Author SHA1 Message Date
cshapiro@google.com 661488717d Avoid integer overflow when computing the size of new space in bytes.
Review URL: https://codereview.chromium.org//11276022

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14118 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-26 01:26:56 +00:00
iposva@google.com dc2c8b3707 - Consolidate code into the old generation.
- Record pointers between code objects.
- Collect unreferenced code objects.
Review URL: https://codereview.chromium.org//11265026

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14113 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-25 23:46:01 +00:00
tball@google.com 5f320829e7 Updated GetTimeZoneName() to return "" if localtime_r fails or has a NULL for its tm_zone value, like V8 does. Also updated GetTimeZoneOffsetInSeconds() to return 0 on localtime_r failure, like V8.
BUG=5943

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14112 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-25 23:38:45 +00:00
srdjan@google.com e632c8e383 Check class instruction supports Smi check. This fixes missed inlining of isOdd/isEven
Fixed a nasty bug in equality optimization. Make sure that we emit CheckSmiInstr instead of CheckClassInstr if we are only checking for smi.
 
Review URL: https://codereview.chromium.org//11262025

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14098 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-25 20:18:54 +00:00
fschneider@google.com 058f8105d6 Small IL cleanup.
1. Remove manual inlining and intrinsification of Double.toDouble
and Integer.toInt. The flow graph inliner can handle these since
they are not native library functions.

2. Remove unused member instance_call_ from UnarySmiOp.

R=kmillikin@google.com
Review URL: https://codereview.chromium.org//11267043

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14079 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-25 14:31:44 +00:00
vegorov@google.com 8b4d018b36 Simplify range analysis algorithm.
Replace generic fix point range analysis algorithm based on widening and narrowing operators with an ad hoc single dominator tree pass.

To improve precision discover initial value and direction of the growth for simple induction variables.

R=fschneider@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14068 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-25 11:38:31 +00:00
ager@google.com d378a0fd4f Revert change that was based on a local change that was not
part of the test script change.

R=sgjesse@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14065 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-25 09:57:06 +00:00
ager@google.com 01e373bef0 Fix CCTestSuite in test.dart.
R=sgjesse@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14064 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-25 09:38:51 +00:00
srdjan@google.com e63391f16e Hopefully fix warnings of uninitialized variables.
Review URL: https://codereview.chromium.org//11264024

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14053 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-25 00:33:11 +00:00
srdjan@google.com cdd5477f91 Intrinsify Mint/Smi combined comparisons by extending a Smi to a 64 bit integer and doing a 64-bit integer compare (ia32 only).
Review URL: https://codereview.chromium.org//11262019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14051 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-25 00:24:17 +00:00
iposva@google.com 3b3998d62f - Do not pre-resolve static calls. This makes it easier to
record the out-going edges to other generated code.
Review URL: https://codereview.chromium.org//11266022

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14046 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-24 22:29:34 +00:00
srdjan@google.com 9c4cb91442 Trace when disabling optimized code (--trace-disabling-optimized-code)
Review URL: https://codereview.chromium.org//11282003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14036 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-24 20:38:53 +00:00
fschneider@google.com ed643e35ae Fix deoptimzation bug in hoisting smi operation out of loops.
The hoisted operations used an incorrect deoptimization target
so that the program continued with an incorrect environment
after deoptimization.

TEST=tests/language/deopt_smi_op.dart
Review URL: https://codereview.chromium.org//11270013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14033 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-24 18:18:11 +00:00
floitsch@google.com 09f6d09d88 Make isEmpty a getter.
Review URL: https://codereview.chromium.org//11238035

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14022 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-24 15:04:32 +00:00
floitsch@google.com 0e47b363ae Make hasNext a getter instead of a method.
Review URL: https://codereview.chromium.org//11230011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14015 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-24 13:05:11 +00:00
fschneider@google.com 113e753734 Enable merging of comparisons into branches in checked mode.
Instead of inserting an explicit type check at branches, the
branch instruction checks the input for boolean itself:

"if (a < b)" will be translated by the flowgraph builder
like this:

  CheckedBranch(a < b)

before it would look like this:

  t1 <- (a < b)
  t2 <- AssertBool(t1)
  Branch(t2 === true)


Also in this change:
flow_graph_optimizer.cc contains a small fix of an assert triggered when running with --trace-optimization.
Review URL: https://codereview.chromium.org//11232063

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14006 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-24 10:44:00 +00:00
zerny@google.com 79ddbd6638 Set previous pointer to graph entry for initial definitions.
This should be replace with direct pointers to the containing block on all
instructions.

R=kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14001 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-24 09:46:24 +00:00
zerny@google.com 8459bad004 Inlining of calls with optional parameters.
R=kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13999 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-24 08:22:11 +00:00
lrn@google.com bc7f07ae86 Move ObjectNotClosureException and ClosureArgumentMismatchException to patch file.
They are no longer available in the core library, and are only used by the VM.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13992 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-24 06:17:21 +00:00
regis@google.com d00ed7fbc6 Ambiguous references do not necessarily cause compilation errors (issue 5736).
Triage related co19 test failures.
Review URL: https://codereview.chromium.org//11232071

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13987 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-23 22:29:44 +00:00
srdjan@google.com b794eea01a Print time when tracing compiler.
Review URL: https://codereview.chromium.org//11251002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13985 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-23 20:56:51 +00:00
hausner@google.com aad056b3f3 Fix resolution of super getters and setters
Issue 2243
Review URL: https://codereview.chromium.org//11230061

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13981 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-23 18:02:25 +00:00
floitsch@google.com 27cadf2b66 isEven, isOdd, isNegative, isMaxValue, isMinValue, isInfinite, isPositive, isSingleValue.
Review URL: https://codereview.chromium.org//11227042

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13974 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-23 16:15:36 +00:00
srdjan@google.com 9eea0fc253 Convert 'identical' to strict equal.
Review URL: https://codereview.chromium.org//11234047

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13973 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-23 16:13:33 +00:00
srdjan@google.com f6bea97c8c Cleanups in the inliner.
Review URL: https://codereview.chromium.org//11231065

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13972 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-23 16:03:56 +00:00
fschneider@google.com 17a4e32364 Propagate class-id through checked mode type checks.
Review URL: https://codereview.chromium.org//11230053

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13969 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-23 15:46:28 +00:00
zerny@google.com 0bc2e84cb3 Restructure code generation timers and add sub-timers for inlining phases.
R=kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13927 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-23 08:14:59 +00:00
zerny@google.com 500e301a13 Avoid rediscovering blocks on each call to FlowGraph::InlineCall.
R=kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13922 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-23 06:11:31 +00:00
hausner@google.com 76ef223e2d Make super accessible in closures.
Fix issue 3197.
Review URL: https://codereview.chromium.org//11225050

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13917 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-23 00:13:39 +00:00
hausner@google.com 08bc0fb331 Add == method name to symbol table
Review URL: https://codereview.chromium.org//11236050

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13915 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-22 23:23:57 +00:00
srdjan@google.com d9bd043867 Fix a typo in super ==.
Review URL: https://codereview.chromium.org//11232050

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13909 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-22 20:59:41 +00:00
srdjan@google.com 90967baab9 Fix super ==: Test first for null before call inf super ==.
Review URL: https://codereview.chromium.org//11230034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13907 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-22 20:33:12 +00:00
hausner@google.com 2f93dfb15d Fix inheritance of certain static members in VM
Fixes bug 3778
Review URL: https://codereview.chromium.org//11225033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13901 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-22 18:54:58 +00:00
johnmccutchan@google.com d90ad834d5 Inline load and store index on Float32Arrays.
Review URL: https://codereview.chromium.org//11198072

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13893 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-22 17:04:50 +00:00
regis@google.com 3f0b894dbe Enforce new optional parameter rules.
Review URL: https://codereview.chromium.org//11186064

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13891 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-22 16:46:26 +00:00
zerny@google.com 8e36c2f3cc Cache parsed functions when inlining.
R=kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13882 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-22 15:13:32 +00:00
zerny@google.com 4ba428f441 Enable recursive inlining.
Reverts r13842.

R=kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13877 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-22 14:19:08 +00:00
vegorov@google.com 0df78cb708 Allow splitting at lifetime holes.
If the allocation finger is moved past lifetime hole unwind pending interval to the start of the range before attempting to split.

R=fschneider@google.com
BUG=dart:6094

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13874 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-22 13:36:35 +00:00
fschneider@google.com 9797d9caa2 Avoid creating unnecessary environments during SSA renaming.
Only instructions that can deoptimize and Goto-instructions
ever need an environment.
Review URL: https://codereview.chromium.org//11225028

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13871 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-22 13:31:31 +00:00
floitsch@google.com 9074fd0178 Make hashCode a getter and not a method.
Review URL: https://codereview.chromium.org//11191078

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13866 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-22 12:41:04 +00:00
lrn@google.com aa78cf0c87 Remove unused WrongArgumentCountException.
Review URL: https://codereview.chromium.org//11236020

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13863 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-22 11:52:48 +00:00
fschneider@google.com 89cab1577b Enable redundancy elimination for array loads.
This CL also adds a second round of CSE if necessary to make use
 of secondary effects for more optimization opportunities.
Review URL: https://codereview.chromium.org//11234002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13859 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-22 10:40:19 +00:00
lrn@google.com e0527ef304 Change StackOverflowException to be an Error.
Also change OutOfMemoryError to actually extend Error.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13857 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-22 09:51:14 +00:00
tball@google.com e0db231c1a Fixed failing 4_External_Functions_A01_t01 test, updated co19-runtime.status with triaged test bug numbers.
BUG=5430

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13843 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-19 22:15:11 +00:00
srdjan@google.com 6d6f514a20 Temporary change inlining-depth-threshold to 1 until crash in optimizing compiler is fixed (apdoc.dart)
Review URL: https://codereview.chromium.org//11232018

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13842 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-19 21:39:13 +00:00
srdjan@google.com 65a6a39cc4 Tuned inlining parameters:
inlining_size_threshold: 250 -> 50
inlining_depth_threshold: 1 -> 3

All measurements on my Linux box:

dart2js: 2% slower, 9% increased code size.

The following benchmarks got approx. 20% faster: DeltaBlueClosures, Richards, BinaryTrees, Sum, Towers, RayTrace.
Review URL: https://codereview.chromium.org//11231014

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13840 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-19 21:07:21 +00:00
hausner@google.com 63cf1b15d2 Handle super != and ?
Fix two bugs regarding != and argument definition test.

issue 2554
issue 6050
Review URL: https://codereview.chromium.org//11225006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13837 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-19 20:06:03 +00:00
asiva@google.com 753b46a887 Put the GDB symbols stuff under conditional compile.
Review URL: https://codereview.chromium.org//11231009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13829 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-19 17:41:00 +00:00
srdjan@google.com 1cc23f0907 Fix bigint modulo operation. Fixes bug 6056
Review URL: https://codereview.chromium.org//11192074

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13823 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-19 15:01:18 +00:00
lrn@google.com 89f5daea9e Rename OutOfMemoryException to OutOfMemoryError.
This is a reapply with missing status file changes.

TBR=kasperl@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13822 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-19 14:01:24 +00:00