Commit Graph

2037 Commits

Author SHA1 Message Date
turnidge@google.com bfc3132e94 Missing file from last commit.
Review URL: https://chromiumcodereview.appspot.com//10874043

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11263 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 21:59:28 +00:00
turnidge@google.com be1824962e Make StringBase._substringUnchecked a native function.
This avoids making a throw-away list on every substring operation.
Fixed the underscore on the function name while I was at it.
Review URL: https://chromiumcodereview.appspot.com//10874038

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11262 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 21:48:40 +00:00
tball@google.com 7e2aafa16a Reordered handle validity tests in order of handle type likelihood.
This slightly speeds up verification in Api::UnwrapHandle, which 
only runs with DEBUG enabled.


git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11260 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 21:26:15 +00:00
srdjan@google.com 49a23354e7 If a PolymorphicInstanceCall has a single target, move its check into a separate class check so that it can get eliminated.
Review URL: https://chromiumcodereview.appspot.com//10876052

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11259 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 21:25:27 +00:00
regis@google.com a0c527b5d8 Add convenience static members of Type: Smi and Mint.
Use them during type propagation.
Various cleanups.
Review URL: https://chromiumcodereview.appspot.com//10873036

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11258 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 21:04:13 +00:00
iposva@google.com d8f4530942 - Remove redundant assertion.
- Add flag --verify-handles to enable checking when assigning to handles.
Review URL: https://chromiumcodereview.appspot.com//10872043

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11250 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 18:55:42 +00:00
hausner@google.com 0300d88b1b Gentle start with removing explicit interfaces
Review URL: https://chromiumcodereview.appspot.com//10832401

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11248 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 18:32:10 +00:00
srdjan@google.com a1774ecfb1 Specify kSmiCid as result of get string or array length operation.
Review URL: https://chromiumcodereview.appspot.com//10875033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11247 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 18:24:55 +00:00
zerny@google.com 50b114c606 Compute the def-use list on-demand by walking the dominator tree.
This replaces the previous implementation that maintained the def-use lists.

R=vegorov@google.com,kmillikin@google.com

Review URL: https://chromiumcodereview.appspot.com//10879036

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11241 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 16:23:05 +00:00
fschneider@google.com 212c5a4994 Revert my last change r11227.
TBR=kmillikin@google.com
Review URL: https://chromiumcodereview.appspot.com//10871040

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11229 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 13:39:24 +00:00
fschneider@google.com cd606f44f0 Add a simple dominator based redundancy elimination.
It enables elimination of redundant expressions across
basic blocks.

Currently used for smi checks and class checks, but will
be extended to other expressions in a separate CL.
Review URL: https://chromiumcodereview.appspot.com//10872035

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11227 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 13:17:16 +00:00
kmillikin@google.com a953c03b36 Use the location summary to represent safepoint information.
Pass a LocationSummary everywhere instead of a BitmapBuilder.  The
LocationSummary contains information about live registers.

R=vegorov@google.com
BUG=

Review URL: https://chromiumcodereview.appspot.com//10873027

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11219 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 10:08:37 +00:00
ager@google.com 7d86630418 Use patching for regexp implementation.
BUG=

Review URL: https://chromiumcodereview.appspot.com//10880020

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11218 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 09:24:40 +00:00
ager@google.com 8accd53776 Move exit from the builtin library to dart:io.
R=sgjesse@google.com
BUG=

Review URL: https://chromiumcodereview.appspot.com//10879033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11217 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 08:50:22 +00:00
fschneider@google.com e450dfb95a Add a smi-check instruction for arithmetic smi operations.
The flowgraph optimizer inserts smi checks for the inputs of
arithmetic smi operations:

      PushArgument v0
      PushArgument v1
v2 <- InstanceCall(+, v0, v1) IC[1: Smi, Smi]

becomes

      CheckSmi(v0)
      CheckSmi(v1)
v2 <- BinarySmiOp(+, v0, v1)


Each input operand is checked separately. This avoids using a temp
register for a combined smi check. It also allows us to easily eliminate
the checks for left and right input separately.

There are two ways to eliminate smi checks:
1. By common subexpression elimination: if the value checked is already
   checked for smi-ness before.
2. By class-id propagation: If the input value is guaranteed to be a smi.
Review URL: https://chromiumcodereview.appspot.com//10867012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11216 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 08:24:29 +00:00
kmillikin@google.com 5b27429411 Do not clear the spill slots in optimized code.
Also, change all calls in the prologue to have a stackmap.

R=vegorov@google.com
BUG=

Review URL: https://chromiumcodereview.appspot.com//10877011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11215 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 08:16:12 +00:00
ager@google.com 4a397228dc Quick fix for SDK after Expando addition in the VM.
Two files named expando.dart leads to one overwriting the other in
the SDK. Maybe we should use patching for Expando? In any case, we
are working towards not having the implementation file in the SDK
at which point we can revert this change.

Minor style cleanup.

R=ajohnsen@google.com,cshapiro@google.com
BUG=

Review URL: https://chromiumcodereview.appspot.com//10872029

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11210 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 06:12:06 +00:00
cshapiro@google.com 5134359169 Disable an expensive GC assert unless heap verification also enabled.
This assert verifies every pointer being pushed on the mark stack as
belonging to old-space.  Unfortunately, it turns out that checking for
containment in old-space domainates the running time of programs that
frequently invoke an old-space garbage collection.

Review URL: https://chromiumcodereview.appspot.com//10880019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11209 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 04:24:01 +00:00
regis@google.com 9efad2644b Re-enable checking of native resolvers.
Review URL: https://chromiumcodereview.appspot.com//10882007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11206 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 03:26:20 +00:00
srdjan@google.com 74a9161438 Fix inlining and intrinsification for moved Math methods.
Review URL: https://chromiumcodereview.appspot.com//10877030

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11201 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 01:10:47 +00:00
regis@google.com 3e6596ba22 Temporarily disable checking of native resolvers to make Dartium build green.
A more permanent fix will follow.
Review URL: https://chromiumcodereview.appspot.com//10869024

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11200 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 01:01:14 +00:00
regis@google.com fbd17a4d20 Fix Mac build.
Review URL: https://chromiumcodereview.appspot.com//10869022

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11199 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 00:42:43 +00:00
regis@google.com 55c106f812 Make ClassFinalizer indifferent on whether we are generating a snapshot or not.
Add flag --error_on_malformed_type.
Remove obsolete flag --verify_implements.
Support snapshotting of LanguageError (for malformed types) and ApiError.
Review URL: https://chromiumcodereview.appspot.com//10871005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11198 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 00:27:49 +00:00
cshapiro@google.com 2e00a80dd5 Provide an Expando implementation for the VM.
Review URL: https://chromiumcodereview.appspot.com//10861041

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11196 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-23 00:03:40 +00:00
srdjan@google.com b6042c9419 Fix printing of symbols for profiling on x64.
Review URL: https://chromiumcodereview.appspot.com//10870018

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11192 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-22 22:48:10 +00:00
asiva@google.com 596a5f1af9 Use kInstanceCid instead of object_store()->object_class() when checking to see if the class is object class.
Review URL: https://chromiumcodereview.appspot.com//10873004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11190 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-22 22:21:44 +00:00
rnystrom@google.com f65d68a677 When a directory contains read-only files, try to make them writable when recursively deleting on Windows.
Review URL: https://chromiumcodereview.appspot.com//10867003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11175 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-22 16:46:21 +00:00
ager@google.com 722c1a3ce6 Deprecate Math object in corelib in favor of dart:math library.
Review URL: https://chromiumcodereview.appspot.com//10829459

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11155 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-22 14:33:01 +00:00
whesse@google.com b6cda7c0d2 Check for an error handle passed in, in all dart_api functions that return a handle. Pass the error handle through unchanged.
BUG=

Review URL: https://chromiumcodereview.appspot.com//10834084

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11148 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-22 13:42:06 +00:00
kmillikin@google.com 57f5dbafd6 Give a length field to stack bitmaps.
The bitmaps describing the stack have an explicit length field.  It is now
an assertion failure to read bits outside the length --- they are no longer
assumed to be false.

Also remove an unused method and simplify the implementation of
BitmapBuilder by removing an embedded member that was always referred to via
a pointer.

R=vegorov@google.com
BUG=

Review URL: https://chromiumcodereview.appspot.com//10832410

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11138 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-22 12:42:54 +00:00
fschneider@google.com f5ec253dec Split BinaryOp into BinarySmiOp and BinaryMintOp.
This refactoring is a preparation for inserting explicit
class checks for arithmetic operations.
Review URL: https://chromiumcodereview.appspot.com//10879005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11132 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-22 11:17:57 +00:00
srdjan@google.com 4b19055cfa Factor out code for insertin class checks.
Review URL: https://chromiumcodereview.appspot.com//10868013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11121 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-22 00:42:00 +00:00
asiva@google.com 4c6c2c096b Retry r11091 with explicit template instatiation to keep the linker happy.
Review URL: https://chromiumcodereview.appspot.com//10869005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11118 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-22 00:18:43 +00:00
srdjan@google.com daee26c4be Separate the checks from StoreInstanceField so that they can be eliminated.
Review URL: https://chromiumcodereview.appspot.com//10870004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11116 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-22 00:11:26 +00:00
asiva@google.com 630474f412 Update status file.
Review URL: https://chromiumcodereview.appspot.com//10832437

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11111 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 22:59:04 +00:00
asiva@google.com d3bf4f62b6 Turn off SNPrintf_BadArgs on linux and windows.
Review URL: https://chromiumcodereview.appspot.com//10860056

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11108 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 22:35:06 +00:00
asiva@google.com a4a52e0801 Add a symbol for PatchClass as it currently has a null for the name.
Review URL: https://chromiumcodereview.appspot.com//10837298

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11107 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 22:34:40 +00:00
srdjan@google.com d5ad183f5b Add --use_cha (default true, switch to false if you use dynamic class loading). Use CHA to specify receiver class if no subclasses of the receiver exist, eliminate check class computation.
Remove all optimized code whenever we load scripts/libraries/snapshots. Currently this occurs only when no Dart frame is live on stack. Future change (deoptimization) will allow dynamic class loading in presence of live Dart frames.
The cost of removing all optimized code is supposed to be low. If that assumptions turns out to be false I can add more elaborate tracking of optimized functions.
Review URL: https://chromiumcodereview.appspot.com//10825483

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11106 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 22:31:49 +00:00
dgrove@google.com bacdd20e96 Continued deletion of frog.
Review URL: https://chromiumcodereview.appspot.com//10860071

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11098 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 21:09:52 +00:00
regis@google.com 3790edb5e1 Move class hierarchy analysis to its own source.
Review URL: https://chromiumcodereview.appspot.com//10827450

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11097 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 21:09:28 +00:00
asiva@google.com 9155bc295c Revert change 11091.
Review URL: https://chromiumcodereview.appspot.com//10866004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11096 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 21:01:10 +00:00
turnidge@google.com bcc03b28e9 More mirrors changes to bring vm mirrors more in line with the
current proposed mirrors api.
Review URL: https://chromiumcodereview.appspot.com//10825431

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11095 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 20:46:25 +00:00
asiva@google.com b54731bd82 Currently we use a generated number as the class id for object class, this change tries to pin it to kInstanceCid so that we can do all the checks for object class using this class id.
Review URL: https://chromiumcodereview.appspot.com//10861023

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11091 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 20:13:39 +00:00
ajohnsen@google.com 0d078037e2 Re-apply 'Unify dart:isolate.' with fixes for autogenerated dart2js and dartium html files.
Old Review URL: https://chromiumcodereview.appspot.com//10828410

BUG=

Review URL: https://chromiumcodereview.appspot.com//10828411

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11084 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 18:47:43 +00:00
vegorov@google.com fc29df7d47 Clean up EmitSmiBinaryOp template to remove redundant moves.
Now register allocator takes care of preserving values needed for deoptimization.

R=srdjan@google.com
BUG=

Review URL: https://chromiumcodereview.appspot.com//10836362

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11069 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 16:22:21 +00:00
whesse@google.com bb7c2d9969 Fix dart:io Process class on the Windows plaform, which had some race conditions.
BUG=dart:4414

Review URL: https://chromiumcodereview.appspot.com//10825473

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11050 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 14:24:22 +00:00
vegorov@google.com 7a6cdd92c7 Remove support for non-ssa optimizing code generation.
This kills FrameRegisterAllocator and related code.

BUG=

Review URL: https://chromiumcodereview.appspot.com//10832411

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11045 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 13:58:57 +00:00
fschneider@google.com 855e718f5b Make Value not a subclass of Computation.
Instead I introduce one new computation to materialize constants.

sizeof(UseVal) drops from 64 to 32.
sizeof(ConstantVal) drops from 48 to 16.
Review URL: https://chromiumcodereview.appspot.com//10829451

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11041 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 13:36:36 +00:00
fschneider@google.com 33efb39372 Fix a bug in Equals for UseVal and ConstantVal.
TEST=vm/intermediate_language_test.cc
Review URL: https://chromiumcodereview.appspot.com//10828414

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11037 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 13:07:40 +00:00
whesse@google.com b074764cfb Fix for bug dart 3639: Process.run gets stuck on Mac
BUG=
TEST=Run fresh build no macosx10.7. Observe finishing to completion without being stuck on dartdoc step

Review URL: https://chromiumcodereview.appspot.com//10834423

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11034 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 11:45:48 +00:00