fschneider@google.com
bece5d05c8
Fix a bug in SSA renaming introduced when using the RemoveFromGraph helper for removing instructions.
...
The helper function RemoveFromGraph resets previous and next instruction pointers to NULL
when deleting an instruction.
I changed it to return the successor of the removed instruction so that the function is
more convenient to use while iterating over the list of instructions.
Review URL: https://chromiumcodereview.appspot.com//10692072
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9332 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-03 08:35:00 +00:00
iposva@google.com
65d96de4e8
- Separate store buffer data in the isolate into the StoreBufferBlock and
...
the actual StoreBuffer.
- Add a HashSet class to use for the StoreBuffer data.
- Fix allocation sites for definite old objects.
- Remove obsolete leaf runtime entry StoreBuffer.
Review URL: https://chromiumcodereview.appspot.com//10702067
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9323 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-03 00:10:23 +00:00
regis@google.com
d95cbc8d7f
Use VM type cast and save handles.
...
Review URL: https://chromiumcodereview.appspot.com//10693071
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9317 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-02 21:42:53 +00:00
fschneider@google.com
eba7136e7b
Make IL instructions a doubly-linked list within basic blocks.
...
In order to be able to efficiently iterate backwards over instructions
and removing or replacing instructions in the graph we want them to
be a double-linked list inside basic blocks. The list has the following
1. Block entry instructions do not have a previous instruction.
2. The last instruction in a block may or may not have a next instruction:
- Branches have a NULL-successor.
- Normal block exits have a block entry instructions as successor.
This CL also makes the accessor for previous and next instruction in this
list non-virtual. This avoidis the current code duplication there.
Review URL: https://chromiumcodereview.appspot.com//10665022
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9297 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-02 16:08:58 +00:00
fschneider@google.com
31dfb3d8da
Fix bailing out of SSA compilation and enable --use-ssa on x64 by default.
...
We need to re-parse the function when retrying compilation after bailing out
because of the side-effects to the AST (break-, continue-labels).
To improve test coverage I'm enbabling building of SSA on x64 now.
Review URL: https://chromiumcodereview.appspot.com//10694053
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9291 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-02 15:41:37 +00:00
ager@google.com
52230ca22b
Support posting of external data into dart as external uint8 arrays through the Dart API.
...
The native ports use the snapshot reader to create the dart objects. Added support for reading external arrays from snapshots but no support for writing them. The only way an external array is written to a snapshot is through the api message writer.
This allows dart:io to avoid one copy of data read from files and sockets. This change only contains one use of the new API.
R=asiva@google.com ,iposva@google.com
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//10698011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9281 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-02 07:22:32 +00:00
hausner@google.com
11d2c19fc4
Make sure breakpoints are enabled
...
With my previous checkin it became possible that internal
code breakpoints became disabled. Now make sure that when
one of these breakpoints is re-used, it becomes enabled.
Review URL: https://chromiumcodereview.appspot.com//10690053
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9265 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-29 20:39:48 +00:00
cshapiro@google.com
d0ce05d8b7
Enhance raw object validation check and enable checks in release builds.
...
BUG=3866
Review URL: https://chromiumcodereview.appspot.com//10693044
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9262 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-29 20:23:26 +00:00
hausner@google.com
c4280b8b89
Fix Dart_RemoveBreakpoint
...
The debugger code assumed that breakpoints can only be removed
while the debugger is paused. That is not true. An embedder can
remove breakpoints while the isolate is idle and running any
Dart code.
Fix for issue 3781 (http://dartbug.com/3781 )
Review URL: https://chromiumcodereview.appspot.com//10698051
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9258 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-29 18:24:35 +00:00
fschneider@google.com
da315f478e
Revert r9253 because of dartium test failures
...
TBR=vegorov
Review URL: https://chromiumcodereview.appspot.com//10693048
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9256 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-29 17:27:12 +00:00
fschneider@google.com
6e4bc9fb91
Add a goto instruction to the IL use it to terminate basic blocks.
...
Having an explicit control instruction at the end of each
basic block allows to easily remove instructions inside
a block because the last_instruction pointer can not change.
Review URL: https://chromiumcodereview.appspot.com//10700034
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9253 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-29 16:31:37 +00:00
turnidge@google.com
a45c6255ba
Add Dart_CurrentIsolateData().
...
Review URL: https://chromiumcodereview.appspot.com//10690027
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9228 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-28 21:28:12 +00:00
regis@google.com
c0bd7c81dd
Introduce a VM type cast to avoid repeating a type test and spare a handle.
...
Review URL: https://chromiumcodereview.appspot.com//10713008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9226 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-28 21:12:06 +00:00
turnidge@google.com
ac6dc9ecb5
Increase the iteration count for the UseDartApi benchmark.
...
Review URL: https://chromiumcodereview.appspot.com//10693034
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9223 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-28 21:04:58 +00:00
turnidge@google.com
3f940819a7
Add a callback to inform embedders when an isolate is being shut down.
...
Review URL: https://chromiumcodereview.appspot.com//10450016
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9211 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-28 18:15:17 +00:00
turnidge@google.com
376000a1dd
Add a unit test which exercises using Dart_LoadSource to load a "late"
...
source file. Seems to work...
Review URL: https://chromiumcodereview.appspot.com//10659015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9210 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-28 17:56:26 +00:00
iposva@google.com
c26489d34d
- Skip old objects early while scavenging.
...
Review URL: https://chromiumcodereview.appspot.com//10696022
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9197 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-28 05:00:49 +00:00
hausner@google.com
7a10c09bfb
Include variable names with _
...
Include local variables that begin with _.
Review URL: https://chromiumcodereview.appspot.com//10697011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9189 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-27 21:36:42 +00:00
regis@google.com
1036a3888f
Consider upper bounds of type parameters in type checks.
...
Fix pointer visiting in TypeParameter.
Make TypeParameter::index() non-virtual.
Review URL: https://chromiumcodereview.appspot.com//10696013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9188 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-27 20:08:30 +00:00
hausner@google.com
86b00700aa
Add a platform-independent max uword value.
...
Review URL: https://chromiumcodereview.appspot.com//10695009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9181 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-27 17:24:41 +00:00
hausner@google.com
0300423892
Write once debug everywhere
...
Review URL: https://chromiumcodereview.appspot.com//10696009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9177 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-27 16:25:11 +00:00
hausner@google.com
3aedbb74e8
Better breakpoint placement
...
Instead of using token distance to find the first possible breakpoint
position in a line, use generated code address, so the debugger
breaks before the first call on a source line.
Fix issue 3653
http://code.google.com/p/dart/issues/detail?id=3318
Review URL: https://chromiumcodereview.appspot.com//10686003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9176 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-27 16:13:49 +00:00
iposva@google.com
541a166410
- Premark vm_isolate objects to avoid having to test for them
...
during marking.
Review URL: https://chromiumcodereview.appspot.com//10675010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9143 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-27 00:08:03 +00:00
regis@google.com
8997078334
Remove old code generator.
...
Review URL: https://chromiumcodereview.appspot.com//10665038
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9122 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-26 17:43:44 +00:00
hausner@google.com
fbeaabda52
Debugger support to display global variables
...
- Add library id to ActivationFrame
- Add debugger function to get all global variables visible in
a library (including imported variables).
- Add LibraryPrefixIterator
- Fix Dart_GetLibraryImports
Review URL: https://chromiumcodereview.appspot.com//10657048
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9121 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-26 17:32:34 +00:00
vegorov@google.com
30288c500e
Fix a bug in liveness analysis code and add more comments.
...
R=fschneider@google.com
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//10657044
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9106 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-26 12:14:02 +00:00
asiva@google.com
9e6f43e6e3
Prepare for writing token streams directly into a snapshot and reading it directly from the snapshot using memmove.
...
Review URL: https://chromiumcodereview.appspot.com//10665035
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9098 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-26 00:18:14 +00:00
srdjan@google.com
79cf5eb293
Forgot to save file, missed changed comment.
...
Review URL: https://chromiumcodereview.appspot.com//10662034
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9096 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 23:54:05 +00:00
srdjan@google.com
a799978f11
Recognize leaf functions: skip stack check and populating the pc slot, store the pc slot lazily in case of deoptimization.
...
Review URL: https://chromiumcodereview.appspot.com//10668034
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9095 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 23:50:37 +00:00
iposva@google.com
da8c641cc4
- Sort sources in gyp files.
...
Review URL: https://chromiumcodereview.appspot.com//10663029
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9091 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 23:05:42 +00:00
regis@google.com
6ac43401e1
Minimize differences between ia32 and x64 sources to facilitate maintenance.
...
Review URL: https://chromiumcodereview.appspot.com//10636038
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9089 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 22:25:21 +00:00
srdjan@google.com
7508deeeab
Intrinsify fixed and growable array allocation on x64.
...
Review URL: https://chromiumcodereview.appspot.com//10657012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9075 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 18:13:33 +00:00
asiva@google.com
f05e3736d8
Fix issue 1968, replace usage of inline 'asm' constructs in 'stack alignment', 'jump to exception handler' and 'jump to error handler' code with calls to appropriate stubs.
...
Review URL: https://chromiumcodereview.appspot.com//10664004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9071 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 17:35:20 +00:00
regis@google.com
0532a90a2f
Implement type cast in the VM.
...
Review URL: https://chromiumcodereview.appspot.com//10659005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9070 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 17:23:11 +00:00
vegorov@google.com
2f23dc4b60
Simple iterative liveness analysis over SSA.
...
R=fschneider@google.com
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//10666026
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9069 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 17:07:16 +00:00
hausner@google.com
0b403430bf
Fix parent function of deeply nested closures
...
We got the parent of nested closures wrong if the nesting level
was > 2.
Fix for issue 3412.
Review URL: https://chromiumcodereview.appspot.com//10665009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9065 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 15:43:04 +00:00
iposva@google.com
cccf112d1e
- Document the store barrier.
...
Review URL: https://chromiumcodereview.appspot.com//10658008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9051 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-23 00:17:25 +00:00
iposva@google.com
d4bd618e75
- Fix the x64 store-barrier.
...
- Allow assembler test drivers to be shared across architectures.
- Add a shared StoreIntoObject assembler test.
Review URL: https://chromiumcodereview.appspot.com//10636017
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9050 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 23:48:51 +00:00
srdjan@google.com
4bb866d2f8
Expand ia32 intrinsic for integer modulo, implement it for x64. Next step will be to emit it directly.
...
Review URL: https://chromiumcodereview.appspot.com//10663006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9048 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 23:28:34 +00:00
cshapiro@google.com
18381ac8d5
Log growth policy decisions when verbose gc is enabled.
...
This change also rationalizes some use of signed and unsigned types and
corrects the use of time values recorded for analysis.
BUG=3535
Review URL: https://chromiumcodereview.appspot.com//10576004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9045 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 21:17:38 +00:00
srdjan@google.com
f7a999dc34
Do not issue Mint/Smi code sequence if we have only Smi/Smi comnbination.
...
Review URL: https://chromiumcodereview.appspot.com//10642026
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9044 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 21:07:03 +00:00
asiva@google.com
5cbd276939
Make the parser agnostic to the TokenStream implementation. This is the first step towards compacting the token stream.
...
Pull the data stream writer/reader code out of snapshot into a generic file so that it can be reused into the token stream compaction implementation.
Review URL: https://chromiumcodereview.appspot.com//10632009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9043 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 20:37:01 +00:00
srdjan@google.com
8ee92c41d6
Fixed a typo, one more reason to get rid of StrictCompare vs StrictCompareComp distinction.
...
Review URL: https://chromiumcodereview.appspot.com//10634032
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9039 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 18:28:16 +00:00
fschneider@google.com
63d4ad7d5f
Add new files and data structures for the new register allocator.
...
This CL adds new files to hold the new register allocator and
adds a parallel-move instructions that will be used to insert
moves for register constraints, spills and phi-resolution.
No new functionality added yet.
Review URL: https://chromiumcodereview.appspot.com//10635020
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9027 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 10:59:06 +00:00
iposva@google.com
936e659da1
- Remove extra jumps from store barrier on x64.
...
Review URL: https://chromiumcodereview.appspot.com//10641018
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9014 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 07:57:11 +00:00
regis@google.com
2262d6e9e3
Minimize differences between ia32 and x64 sources to facilitate maintenance.
...
Review URL: https://chromiumcodereview.appspot.com//10651008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9012 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 01:24:36 +00:00
srdjan@google.com
0e445c937e
Fix excessive deoptimizations in Meteor: kSHL on two Smi-s can easily overflow, which led to deoptimization. In case of overflow call the IC target directly in case instead of deoptimizing. Necessary only for IA32.
...
Review URL: https://chromiumcodereview.appspot.com//10632010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9009 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 23:02:30 +00:00
regis@google.com
df25e13d4c
Improve inlining of bit_and operation for Mint and Smi in new compilers.
...
Review URL: https://chromiumcodereview.appspot.com//10592028
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8998 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 19:37:15 +00:00
fschneider@google.com
da7d212fef
Correctly reset global isolate state after bailout from the flow-graph compiler.
...
This CL fixes a bug where the global ic_data_array was not reset when a bailout happened.
Review URL: https://chromiumcodereview.appspot.com//10636004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8997 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 18:58:23 +00:00
hausner@google.com
7d00d4b2e6
Do not collect stack trace unnecessarily
...
The debugger collected stack traces on each exception throw
even when the debugger client specifies "no pause on exception".
This fixes the asserts that Anton saw in some tests.
Review URL: https://chromiumcodereview.appspot.com//10645003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8996 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 18:48:20 +00:00