srdjan@google.com
70d8860c17
Optimize concatenation of lists of onebyte strings by implementing it in Dart.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//14820013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22532 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-08 21:33:03 +00:00
asiva@google.com
30b5101fd1
Fix for issue 10488 standalone/basic_debugger_test flaky
...
R=hausner@google.com
Review URL: https://codereview.chromium.org//15051002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22531 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-08 21:27:54 +00:00
srdjan@google.com
ddc9d23610
Inline _OneByteString._setAt. The key knowledge is that _setAt is an internal method that has to be called with correct arguments, therefore no checks are needed.
...
R=fschneider@google.com , zra@google.com
Review URL: https://codereview.chromium.org//14917020
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22528 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-08 20:03:33 +00:00
asiva@google.com
b51b053da4
Remove print_bootstrap flag as it is not needed anymore considering that we
...
load core libraries directly from the sources and do not concatenate all the
files into a single script file.
R=regis@google.com
Review URL: https://codereview.chromium.org//14631014
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22523 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-08 18:56:38 +00:00
asiva@google.com
5cecc4b95c
Fix windows build break.
...
Review URL: https://codereview.chromium.org//15010004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22516 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-08 17:06:09 +00:00
asiva@google.com
dee399907b
Fix windows build.
...
Review URL: https://codereview.chromium.org//14680010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22515 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-08 16:58:32 +00:00
asiva@google.com
89ef11e004
Final step towards loading core library scripts directly from the sources
...
- Modify bin.gypi to ensure that the io library and patch files are read
directly from the sources. Remove the source buffer generation step in
the gypi files for all the io library and patch files.
- Restructure the code a bit to eliminate some code duplication.
- Delete runtime/tools/concat_library.py
R=ager@google.com , sgjesse@google.com
Review URL: https://codereview.chromium.org//14752008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22514 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-08 16:42:46 +00:00
podivilov@google.com
d83e6dddf4
Fix Clank+Dart compilation.
...
R=iposva@google.com
Review URL: https://codereview.chromium.org//15023007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22505 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-08 13:00:09 +00:00
ricow@google.com
3cf4ca80ce
Speculative fix for android build.
...
It is really hard to follow the directory logic, with DART_DIR being just ../../.. and a few pushd and cd commands thrown in.
I don't particularly like this solution either, this is basically to verify that I am assuming correctly in that this is caused by the relative paths being messed up.
Review URL: https://codereview.chromium.org//14961005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22494 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-08 06:22:24 +00:00
asiva@google.com
e5d6ee272a
Minor cleanup.
...
R=srdjan@google.com
Review URL: https://codereview.chromium.org//14828006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22488 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-08 00:44:50 +00:00
vegorov@google.com
2565ca222f
Implement a variation of scalar replacement for non-escaping allocations.
...
AllocationSinking pass discovers non-escaping allocations that have no input uses other than uses in the stores into its own fields.
Every environment use of such allocation is replaced by a state snapshot (MaterializeObject instruction) that describes the state of each initialized field in the object. State snapshots are computed through an additional round of load-forwarding.
Once snapshots are computed allocations are removed from the graph.
MaterializeObject instructions are not compiled into native code but produce deoptimization instructions instead that describe how object should be materialized at deoptimization.
Deoptimization instructions now follow the following format:
[mat obj #1 ]...[mat obj #N][ret addr][... mat arguments ...][... real frames ...]
- the prefix describes each object to materialize on deopt via kMaterializeObject instruction;
- actual values that are needed for materialization are emited as a part of bottom-most stack frame. This is done to simplify implementation: they need to be discoverable by a GC during materialization phase. At the end of deoptimization they will be removed from the stack;
- normal stack slots can refer to materialized objects via kMaterializedObjectRef instruction.
Additionally this change contains fixes in load-forwarding that are needed to guarantee that all artificial LoadField instructions inserted during AllocationSinking are correctly replaced with actual values.
Limitations of the current implementation:
- can't eliminate allocations that flow into phis but otherwise don't actually escape;
- can't sink allocations out of loops;
- allocation with type arguments are not handled.
R=regis@google.com , srdjan@google.com , zra@google.com
Review URL: https://codereview.chromium.org//14935005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22485 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-07 23:40:42 +00:00
zra@google.com
fabc87d633
Fixes for integer division on ARM hardware so that assembler tests pass.
...
Now, all VM tests that pass on SIMARM, pass on ARM.
Also, more assertions in the ARM disassembler and simulator to
make sure that condition codes aren't used with bkpt.
R=regis@google.com
Review URL: https://codereview.chromium.org//14784011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22471 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-07 18:21:18 +00:00
regis@google.com
53347a3337
Remove stack_frame_<arch>.cc files.
...
The architecture specific information is in stack_frame_<arch>.h files.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//14925005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22470 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-07 18:06:21 +00:00
vsm@google.com
3c0e1cc3bc
Add extra Dart_FileReadCallback argument to android embedder
...
R=gram@google.com
Review URL: https://codereview.chromium.org//14819009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22468 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-07 16:49:47 +00:00
kmillikin@google.com
5868a6bffa
Use the constant pool for all constants, not just null.
...
Remove constants from the instruction stream in optimized code at SSA
construction time. Modify the range analysis pass to analyze values in the
constant pool.
R=fschneider@google.com
Review URL: https://codereview.chromium.org//14846022
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22458 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-07 12:50:37 +00:00
iposva@google.com
c3c942407b
Fix dartbug.com/10415:
...
- Append 'on "$os_$arch"' to the version string on the VM.
Review URL: https://codereview.chromium.org//14593004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22452 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-07 07:59:03 +00:00
asiva@google.com
4577abd566
Third step towards loading core library scripts directly from the sources
...
- Read the patch source files using the source mapping array generated for
patch files instead of relying on a generated buffer containing the sources.
- Modify the gyp files to ensure that all patch libraries are read directly
from the sources. Remove the source buffer generation step in the gypi
files for all patch files.
R=hausner@google.com , iposva@google.com
Review URL: https://codereview.chromium.org//14784010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22436 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-06 18:16:25 +00:00
kmillikin@google.com
7e31a88a0a
Initial support for polymorphic inlining.
...
Consider each polymorphic variant separately for inlining in frequency
order. Share inlined bodies for shared targets.
Insert an SSA redefinition of the receiver in each inlined variant to
prevent hoisting. Hoisting code specialized to the receiver (e.g.,
direct access to internal fields of typed data arrays) out of the
inlined body is not safe.
R=fschneider@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//14740005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22434 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-06 17:22:18 +00:00
asiva@google.com
fbfcf71847
Fix build break in --checked mode.
...
Review URL: https://codereview.chromium.org//14872009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22433 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-06 17:18:04 +00:00
asiva@google.com
469ff38c70
Fix for issue 10395, call noSuchMethod if a method is not found when using the Dart C API.
...
R=srdjan@google.com
Review URL: https://codereview.chromium.org//14980002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22432 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-06 17:07:34 +00:00
floitsch@google.com
968ebcff5a
Make Completers asynchronous.
...
BUG= http://dartbug.com/9990
R=ajohnsen@google.com , lrn@google.com
Review URL: https://codereview.chromium.org//14690009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22417 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-06 15:15:15 +00:00
kustermann@google.com
79a5d57ed1
Fixed bug in vm/benchmark_test.h
...
The Benchmark objects were marked as 'const', but Benchmark::CreateIsolate
writes to 'Benchmark::isolate_'. This was not discovered so far, since GCC
places the global Benchmark objects into a read-write section.
It turns out that clang is able to create the const Benchmark objects at
compile time and puts them into a read-only section of the ELF file (it probably
inlines the constructor).
Thus, at runtime Benchmark::CreateIsolate tries to write to a read-only address
and crashes with a SEGV.
R=iposva@google.com
Review URL: https://codereview.chromium.org//14988005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22415 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-06 14:49:21 +00:00
sgjesse@google.com
1b3aff5e11
Change async read buffer sizes on Windows
...
When reading from the console using ReadFile on Windows the buffer size must
be a bit smaller than 32k. Use a 16k buffer in that case and raise the buffer
size to 64k otherwise.
R=ajohnsen@google.com
BUG=https://code.google.com/p/dart/issues/detail?id=9429
Review URL: https://codereview.chromium.org//14589014
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22411 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-06 12:28:45 +00:00
srdjan@google.com
ab188d327c
Improve performance of String.fromCharCodes by implementing it in Dart. Add tow internal natives to Dart in order to be able to allocate and fill a String. Next step is to implement String.concatAll in Dart as well and to inline String._setAt operation (currently intrinsified).
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//14862006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22399 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-03 23:48:10 +00:00
asiva@google.com
ea5a3919c5
Resubmit 22380 after fixing the windows build.
...
R=hausner@google.com
Review URL: https://codereview.chromium.org//14645025
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22396 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-03 22:50:26 +00:00
regis@google.com
880af693cf
Introduce architecture specific headers describing Dart stack frames.
...
The actual cleanup will follow in another cl.
R=asiva@google.com
Review URL: https://codereview.chromium.org//14831004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22394 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-03 21:42:16 +00:00
iposva@google.com
083c9e5e95
- Remember the fact that an object has been added to the
...
store buffer by a bit in the header.
- This bit can be used to filter out redundant additions
into the store buffer making the dedup sets not needed.
- Remove the need for a HashSet when remembering old to
new references.
Review URL: https://codereview.chromium.org//14307013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22393 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-03 20:59:42 +00:00
regis@google.com
deeb192b03
Cleanup deoptimization code to make it architecture independent (in progress).
...
Implement some optimizing code on ARM in order to debug the above cleanup using
inline_stack_frame_test (still skipped in the vm status file).
This is not quite working yet, because CompilerDeoptInfo::CreateDeoptInfo
makes assumptions about the stack layout that are not valid for ARM or MIPS.
This will be cleaned up in a following cl.
R=srdjan@google.com , zra@google.com
Review URL: https://codereview.chromium.org//14812005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22386 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-03 18:39:40 +00:00
asiva@google.com
dab8758e7a
Revert 22380 to investigate windows build break.
...
Review URL: https://codereview.chromium.org//14927003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22382 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-03 18:26:34 +00:00
asiva@google.com
27e78fb6f8
Second step towards loading core library scripts directly from the sources
...
- Modify the library source generator to generate a source mapping array
The generated array is of the following format:
const char* dart::Bootstrap::corelib_source_paths_[] = {
"dart:core", "/workspace1/dart-all/dart/sdk/lib/core/core.dart",
"bool.dart", "/workspace1/dart-all/dart/sdk/lib/core/bool.dart",
...
...
};
- Read the source file using the source mapping array instead of relying on
a generated buffer containing the sources
- Modify the gyp files to ensure that all libraries are read directly
from the sources. This CL does not change the patch part yet.
Remove the source concatentation step in the gypi files for all the core
libraries.
R=hausner@google.com , iposva@google.com
Review URL: https://codereview.chromium.org//14786012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22380 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-03 18:12:24 +00:00
whesse@google.com
0ae62a79dc
dart:io | Implement truly asynchronous version of FileSystemEntity.type().
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//14907002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22364 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-03 12:02:10 +00:00
sgjesse@google.com
b8c729fe9e
Mark test as flaky
...
R=iposva@google.com
BUG=https://code.google.com/p/dart/issues/detail?id=10409
Review URL: https://codereview.chromium.org//14730006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22360 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-03 11:11:01 +00:00
whesse@google.com
396011beae
dart:io | Add asynchronous versions of the methods of FileSystemEntity and Link.
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//14642012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22354 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-03 08:39:16 +00:00
asiva@google.com
74364b11b2
Potentially fix the crash reported in Issue 10385
...
- Fix use of a tagged pointer
- Fix a memory leak
R=srdjan@google.com
Review URL: https://codereview.chromium.org//14623015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22345 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-02 23:10:53 +00:00
zra@google.com
87ae3bb45f
Allows "Hello, world!" to run on ARM hardware.
...
Also, enables more vm tests on SIMMIPS.
R=regis@google.com
Review URL: https://codereview.chromium.org//14605006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22344 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-02 22:58:52 +00:00
srdjan@google.com
6843db8020
Implement Smi.toString in Dart instead of calling to C++ natives. Large performance improvement.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//14629015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22341 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-02 21:40:43 +00:00
vegorov@google.com
f005802733
Improve load forwarding:
...
- stores/loads that access different fields can't alias each other;
- if result of the AllocateObject does not escape then stores/loads to it does not alias stores/loads to other objects.
Other:
- rename LoadFieldInstr's value to instance to better convey meaning and match StoreInstanceFieldInstr;
- slightly bump inlining_size_threshold;
- canonicalize UnboxDouble(BoxDouble(v)) and BoxDouble(UnboxDouble(v)) patterns;
R=srdjan@google.com
BUG=
Review URL: https://codereview.chromium.org//14872002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22340 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-02 21:20:49 +00:00
srdjan@google.com
596f203f2a
Do not copy immutable arrays in String.createFromCharCodes. Tighten the types a little in string_patch.dart.
...
R=hausner@google.com
Review URL: https://codereview.chromium.org//14868002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22338 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-02 20:45:06 +00:00
zra@google.com
3c10f6b796
On MIPS, keeps Object::null() in a register.
...
On MIPS, we have a lot of registers, and we don't use very many of them.
This change removes the second temporary register TMP2, and instead
dedicates a register to holding Object::null(), which is used frequently
for comparisons, etc..
Also, uses branch delay slot when leaving a dart frame and returning.
R=regis@google.com
Review URL: https://codereview.chromium.org//14854010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22331 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-02 17:53:34 +00:00
iposva@google.com
a6fb0962e2
- Fixed some old-style casts.
...
- Remove TODO as it is not feasible to ever enable.
R=kustermann@google.com
Review URL: https://codereview.chromium.org//14628009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22313 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-02 11:40:23 +00:00
ajohnsen@google.com
6a78c0c0b8
Add v6Only named argument to ServerSocket and etc.
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//14766003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22309 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-02 11:23:40 +00:00
regis@google.com
76c8e61855
Fix ARM memory addressing mode 3 in assembler.
...
Update assembler test.
R=zra@google.com
Review URL: https://codereview.chromium.org//14637013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22285 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-01 21:33:08 +00:00
regis@google.com
303011f48d
Enable all vm tests on simarm (skip 2 timing out byte array tests).
...
Reduce number of iterations in inline_stack_frame_test to avoid time out.
R=zra@google.com
Review URL: https://codereview.chromium.org//14651005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22280 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-01 21:10:00 +00:00
hausner@google.com
8e29370a1b
BREAKING CHANGE: enforce part of directive
...
For historical reasons, the VM is currently too lenient when parsing library parts. Files that get loaded through a 'part' directive must start with a 'part of libraryname;' clause. The VM so far has not reported an error if the clause is missing.
This change enforces the grammar as the Spec mandates it. Library parts that do not start with 'part of' will no longer compile.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//14791005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22278 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-01 20:46:48 +00:00
johnmccutchan@google.com
aa1d4b4062
Inline remaining Float32x4 operations.
...
BUG=
R=srdjan@google.com
Review URL: https://codereview.chromium.org//14781002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22277 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-01 20:40:24 +00:00
gram@google.com
249ab96c72
Fix Android build.
...
R=vsm@google.com
Review URL: https://codereview.chromium.org//14791003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22276 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-01 20:26:51 +00:00
hausner@google.com
7f1fac8d1d
Loosen aggressive assert in debugger stack trace code
...
A closure may be called from native code. In that case we will not
find a saved context variable in the dart frame 'below' the closure.
R=asiva@google.com
Review URL: https://codereview.chromium.org//14783002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22268 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-01 18:34:48 +00:00
zra@google.com
aa2dd0acf7
On MIPS, uses more branch delay slots.
...
Also, tries to reorganize loops to look like what gcc produces.
R=regis@google.com
Review URL: https://codereview.chromium.org//14733002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22262 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-01 16:56:31 +00:00
ajohnsen@google.com
a516bbc22d
Enable IPv6 by default in dart:io.
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//14766004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22240 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-01 12:18:53 +00:00
sgjesse@google.com
2fdb878ebe
Change the signature for all network bind calls.
...
All the bind calls on RawServerSocket, ServerSocket,
RawSecureServerSocket, SecureServerSocket and HttpServer (and
bindSecure on HttpServer) now have mandatory address and port
parameters. All the rest of the parameters are named optional
(including backlog).
The address parameter can be an InternetAddress or a String for all
these calls.
R=ajohnsen@google.com , whesse@google.com
BUG=
Review URL: https://codereview.chromium.org//14640008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22227 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-01 09:14:04 +00:00