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