Commit Graph

13143 Commits

Author SHA1 Message Date
srdjan@google.com 1a2bb17304 - Port AssertBool and AssertAssigneable to new location template.
- Change AssertAssigneable to always have instantiator and instantiator-type-arguments (if only as a null literal).
Review URL: https://chromiumcodereview.appspot.com//10446019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7962 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-24 20:25:37 +00:00
fschneider@google.com 7a212e5d27 Add support for temp locations and port Load-/StoreStaticField to use locations.
The temps are allocated like inputs (can be fixed register or not). Temp registers
are always distinct from all inputs and the output.
Review URL: https://chromiumcodereview.appspot.com//10443013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7961 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-24 20:14:53 +00:00
iposva@google.com c1b1f8cd6e - Bump the code heap size to avoid running out during testing.
Review URL: https://chromiumcodereview.appspot.com//10450020

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7957 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-24 18:11:21 +00:00
srdjan@google.com eeda4b5810 First step toward an optimizing compiler:
- Fix ic-data instrumentation
- Optimize '+' for Smi-s only, by replacing the instance call with inlined operations.
- Add deoptimization stub
- Add deoptimzation support.
Review URL: https://chromiumcodereview.appspot.com//10431006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7952 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-24 16:50:57 +00:00
srdjan@google.com 8dd46bccc7 Implement some intrinsics on x64, fix a bug in ia32 intrinciscs (must return false if there is a fall-through, so that slow path will be generated).
Review URL: https://chromiumcodereview.appspot.com//10450006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7951 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-24 16:15:09 +00:00
iposva@google.com 63941a8d3a - Rename NativeLoadField/NativeStoreField to LoadVMField/StoreVMField.
- Implement code patterns for LoadVMField/StoreVMField.
- Fix order of inputs in StoreVMField.
Review URL: https://chromiumcodereview.appspot.com//10451006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7936 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-24 01:13:04 +00:00
fschneider@google.com 0fe5a83b1c Make order of function definitions in intermediate_language_x64.cc consistent.
This is a purely mechanical change moving code around.
Review URL: https://chromiumcodereview.appspot.com//10445003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7935 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-24 00:53:39 +00:00
regis@google.com 96ca3951e7 Address review comments missed in previous change.
Review URL: https://chromiumcodereview.appspot.com//10432010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7934 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-23 23:00:20 +00:00
fschneider@google.com 571857d4a8 Move two more instructions to intermediate_language_x64.cc.
This CL changes AllocateObject and AllocateObjectWithBoundsCheck
to use location-based code generator templates.
Review URL: https://chromiumcodereview.appspot.com//10425007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7928 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-23 22:17:13 +00:00
turnidge@google.com 6d0932f0b2 Make Dart_GetClass work for private classes.
Review URL: https://chromiumcodereview.appspot.com//10433003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7926 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-23 21:54:00 +00:00
regis@google.com b0593c8af4 Disallow repeated formal parameters (issue 2240).
Review URL: https://chromiumcodereview.appspot.com//10434005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7925 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-23 21:47:05 +00:00
hausner@google.com 6ddf54511d Replace linked list of loaded libraries
Replace the linked list of loaded libraries with a growable array
or libraries in the object store. This array will be used in the
debugger, where we use the index of a library in the array as an
id number, similarly to the class id and the table of loaded classes.
Review URL: https://chromiumcodereview.appspot.com//10414084

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7923 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-23 20:28:21 +00:00
regis@google.com 5fe23d1497 Disallow repeated type parameters (issues 2239 & 2240).
Add test.
Review URL: https://chromiumcodereview.appspot.com//10426002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7922 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-23 20:05:40 +00:00
turnidge@google.com 05b5d44b0e spawnUri. Take two. This time I'll wait for Anton before committing :-).
See original change 7756 for description.
Review URL: https://chromiumcodereview.appspot.com//10407042

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7917 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-23 18:32:51 +00:00
iposva@google.com 004aecbed5 - Enable throwing of OOM on allocation failure.
Review URL: https://chromiumcodereview.appspot.com//10417046

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7892 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-23 04:30:38 +00:00
iposva@google.com 5c7499c4fe - Add more information to --verbose-gc.
Review URL: https://chromiumcodereview.appspot.com//10414069

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7890 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-23 03:29:00 +00:00
srdjan@google.com d67923100b CTX and TMP registers may not be allocated.
Review URL: https://chromiumcodereview.appspot.com//10399136

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7888 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-23 00:27:01 +00:00
asiva@google.com d373e34a00 Trace heap size during initialization after reading the snapshot.
Review URL: https://chromiumcodereview.appspot.com//10414048

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7887 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-23 00:17:07 +00:00
fschneider@google.com ca607bfb11 This should avoid duplicating too much boilerplate code.
Review URL: https://chromiumcodereview.appspot.com//10412043

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7884 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-23 00:05:30 +00:00
fschneider@google.com 69ed22f647 Add a location summary to LoadLocal, StoreLocal and ConstantVal.
This CL makes those three code generation patterns location-based.
Review URL: https://chromiumcodereview.appspot.com//10416025

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7878 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-22 20:44:15 +00:00
regis@google.com 9c094b4330 Properly finalize type with malformed type argument.
Add test.
Review URL: https://chromiumcodereview.appspot.com//10411070

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7871 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-22 18:59:14 +00:00
vegorov@google.com 6af73201b6 Convert CurrentContext and StoreContext to locations code generation scheme
R=srdjan@google.com
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7869 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-22 18:36:19 +00:00
asiva@google.com bd1b6021a4 Revert code heap size back to 8MB and fix the benchmark invocation to set the code heap size for benchmark runs to 10MB so that the compile all run of dart2js will be fine.
Review URL: https://chromiumcodereview.appspot.com//10332296

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7868 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-22 18:35:48 +00:00
srdjan@google.com 7ecab7dcab More inlined type checking for x64.
Review URL: https://chromiumcodereview.appspot.com//10409067

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7867 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-22 18:31:55 +00:00
hausner@google.com b00ae2d1a0 Introduce remote objects in Debugger protocol
Review URL: https://chromiumcodereview.appspot.com//10407071

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7864 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-22 18:06:34 +00:00
iposva@google.com 3b3b6e5000 - Add a math library. Currently it mostly matches the Math class in dart:core.
- Add a useable Random number generator.
Review URL: https://chromiumcodereview.appspot.com//10389150

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7860 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-22 16:54:31 +00:00
srdjan@google.com 8c56dddebe Temporary raise code heap size 8Mb -> 10Mb until compile all in checked mode explicitly increases it.
Review URL: https://chromiumcodereview.appspot.com//10388223

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7839 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-22 01:29:37 +00:00
srdjan@google.com 7e0f0ec4e8 Started porting inlined type checks to x64 (will be the future pattern for other architectures).
Review URL: https://chromiumcodereview.appspot.com//10414026

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7837 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-22 00:55:20 +00:00
fschneider@google.com e1114c1f98 Reland: Migrate {Closure,Instance,Static}Call to use location-based code generation templates.
This is the same CL as http://codereview.chromium.org/10407077/ with compilation on ia32 fixed:

Added missing empty function definitions in intermediate_language_ia32.cc.

TBR=
Review URL: https://chromiumcodereview.appspot.com//10407082

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7835 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-22 00:27:16 +00:00
fschneider@google.com 917f996138 Reverting r7833 because of failing compilation.
TBR=
Review URL: https://chromiumcodereview.appspot.com//10392191

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7834 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-22 00:12:42 +00:00
fschneider@google.com 4d1182d43d Migrate {Closure,Instance,Static}Call to use location-based code generation templates.
Calls that have all arguments pushed on the stack can share a common location-summary.
For the (non-optimizing) flow-graph compiler this means:
1. Nothing to do for the inputs.
2. The result is in fixed register RAX.
Review URL: https://chromiumcodereview.appspot.com//10407077

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7833 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-22 00:01:15 +00:00
fschneider@google.com a2e40a1dae Avoid redundant pop/push before Throw/ReThrow in the flow-graph compiler.
Since the runtime call expects its arguments on the stack, we
can just push them in the same way we do in other places.

The current code already assumes that the arguments are pushed in
the correct order.
Review URL: https://chromiumcodereview.appspot.com//10408048

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7831 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-21 23:19:55 +00:00
regis@google.com 8f45ccddc1 Add flag to measure impact of type check elimination.
Review URL: https://chromiumcodereview.appspot.com//10407074

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7826 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-21 22:21:12 +00:00
asiva@google.com 2a25dbda09 Fix some dart api functions to use the proper unwrap patterns.
Review URL: https://chromiumcodereview.appspot.com//10411038

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7824 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-21 21:41:49 +00:00
regis@google.com b3c4682a81 Remove compile-time error for unresolved factory names (issue 3079).
Add test.
Review URL: https://chromiumcodereview.appspot.com//10332276

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7822 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-21 20:42:34 +00:00
vegorov@google.com 7f95f43a76 Introduce locations based code generation.
Instructions and computations switched to the new code generation scheme should implement two virtual functions:

- locs() should return pointer to a LocationSummary object, that specifies location constraints for the instruction/computation.

- EmitNativeCode() should emit instructions/computations native code using locations provided through LocationSummary object attached to the instruction.

For converted functions instruction pattern should be removed from the FlowGraphCompiler visitor. It will not be used as long as instruction/computation returns non-NULL from locs().

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7818 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-21 19:51:17 +00:00
fschneider@google.com 13c3beec30 Make saving and restoring of the context around closure calls explicit.
This is a first step to refactor the codegen-templates to be reused
between optimizing and non-optimizing backend.

The context is now explicitly saved in a temporary local variable and
not passed as an argument to the ClosureCall instruction anymore.
Review URL: https://chromiumcodereview.appspot.com//10409043

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7811 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-21 17:59:02 +00:00
srdjan@google.com a8ff0d8bbd Hopefully fixing Windows warnings: fix array member initialization of EmbeddedArray.
Review URL: https://chromiumcodereview.appspot.com//10392182

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7808 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-21 17:37:03 +00:00
floitsch@google.com cc15d26cf7 Reapply "Add support for timezone offset and timezone name."
This reapplies commit 7800.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7805 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-21 16:11:20 +00:00
floitsch@google.com 77ade89e4a Revert "Add support for timezone offset and timezone name."
This reverts commit 7803.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7804 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-21 15:13:46 +00:00
floitsch@google.com 618c649c33 Reapply "Add support for timezone offset and timezone name."
This reapplies commit 7800.
Original CL: https://chromiumcodereview.appspot.com/10383218/

Don't write *foo += x.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7803 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-21 15:07:11 +00:00
floitsch@google.com 5b99866ecd Revert "Add support for timezone offset and timezone name."
This reverts commit 7801..

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7802 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-21 14:40:27 +00:00
floitsch@google.com 36d9c69461 Add support for timezone offset and timezone name.
Review URL: https://chromiumcodereview.appspot.com//10383218

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7801 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-21 14:36:43 +00:00
regis@google.com 6fb0a9b281 Default parameter values are now allowed in interface methods and in abstract
methods, but not in function type aliases.
Made a negative test positive.
Disabled erroneous co19 tests (new co19 issue 123).
Review URL: https://chromiumcodereview.appspot.com//10392175

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7782 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-18 23:59:59 +00:00
asiva@google.com c483079e45 Remove the special stub code region as we don't need it anymore. With the new frame layout convention we can find the first dart frame quickly.
Review URL: https://chromiumcodereview.appspot.com//10409038

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7778 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-18 23:28:34 +00:00
asiva@google.com 88ca1a6cac Remove script source from the snapshot in order to reduce the size and to make the image size smaller. When the source for a script is needed we regenerate the source (a close approximation).
The size of the core isolate snapshot (corelibs, builtin, io etc.) prior to
this change is 1438238 bytes and after the change it is 769026 bytes.
The CorelibIsolateStartup times goes from 5389 microseconds to 4843 microseconds.
Review URL: https://chromiumcodereview.appspot.com//10414005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7774 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-18 22:27:06 +00:00
srdjan@google.com d016f51e9c Start porting fast typechecks to x64.
Review URL: https://chromiumcodereview.appspot.com//10407018

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7760 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-18 20:10:29 +00:00
turnidge@google.com 76d4586dea Revert my last change.
Review URL: https://chromiumcodereview.appspot.com//10332257

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7757 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-18 18:35:04 +00:00
turnidge@google.com 6a8c82db83 Implement spawnUri from dart:isolate. This function allows us to
launch an isolate running a different script.  Finally.

Reviewers: This isn't as hard to review as it looks.  Dive right in!

Siggi: Take a look at my test status file changes and make sure I'm
excluding the right stuff.

Much of the churn in the CL comes from moving ownership of the
import_map.  It used to be set per-library and is now set per-isolate.
This caused a lot of superficial diffs.

DART EMBEDDING API CHANGES:

- Dart_IsolateCreateCallback now takes a script_uri and main argument
  instead of a name_prefix argument.  The script_uri argument allows
  the callback to launch different scripts.  The main argument is used
  in creating the isolate debug name.

- Dart_CreateIsolate now takes script_uri and main arguments.  These
  are used to build the isolate's debug name.

- Dart_LibraryTagHandler, Dart_LoadScript, and Dart_LoadLibrary no
  longer take an import_map.

- Added Dart_SetImportMap.

- Added Dart_RootLibrary to provide access to the root library for the
  current isolate.

OTHER STUFF

Add a couple of tests for spawnUri -- the existing tests assume that
scripts end in a .js suffix which isn't going to work out for us.

Changed how the debug name for isolates get built a bit.

Refactored bin/main.cc a bit.  Fixed some problems with error handling
while creating isolates.

Minor refactoring in builtin.dart to always pass is_windows rather
than relying on it being squirreled away.
Review URL: https://chromiumcodereview.appspot.com//10386107

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7756 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-18 18:22:10 +00:00
regis@google.com f5076a5857 Reapply this reverted change:
Implement updated method overriding rules (issue 2943).
Review URL: https://chromiumcodereview.appspot.com//10387186

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7749 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-18 16:19:39 +00:00