johnmccutchan@google.com
968e805cfc
Unboxed load/store indexed of Float32x4
...
Review URL: https://codereview.chromium.org//13818006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21274 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-11 12:50:46 +00:00
kmillikin@google.com
40002d8663
Revert "Incrementally recompute dominators when inlining."
...
This reverts svn commit r21268 due to dart2js test failures.
TBR=fschneider@google.com
Review URL: https://codereview.chromium.org//13910003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21270 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-11 11:49:07 +00:00
vegorov@google.com
49a0fbd7fc
Align start of the page's object area to match OS::kMaxPreferredCodeAlignment.
...
On ia32 we were aligning it only by 8 bytes which would later negate all our attemps to align code objects by 16 or 32 bytes as the very first code object would be misaligned and the rest would have the same misalignment modulo preferred code alignment.
BUG=
Review URL: https://codereview.chromium.org//13927008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21269 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-11 11:46:46 +00:00
kmillikin@google.com
9cb005c517
Incrementally recompute dominators when inlining.
...
Before: we marked the entire graph's dominator tree invalid in case there
were multiple exits from an inlined function and recomputed dominators after
inlining. Now: in case there are multiple exits we collect them in a fresh
join block and compute its immediate dominator as the nearest common
ancestor in the dominator tree over all predecessors.
Review URL: https://codereview.chromium.org//14067002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21268 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-11 11:44:36 +00:00
sgjesse@google.com
52f54a2edd
Add support for typed data views on native threads
...
The deserializer running outside the VM can now decode typed data
views. As the typed data views are implemented as normal Dart
instances and not a internal VM object the deserializer have been
expanded to process serialized objects of the type used to create
these views. The typed data object that the view is based on will
always be serialized as part of the message.
Currently only vews created with constructor Uint8List.view on top of
an Uint8List are supported.
R=ager@google.com
BUG=https://code.google.com/p/dart/issues/detail?id=9484
Review URL: https://codereview.chromium.org//14065006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21252 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-11 07:15:08 +00:00
regis@google.com
5900ae72af
A patch class must be given the same name as the class it is patching, otherwise
...
the generic signature classes it defines will not match the patched generic
signature classes. Therefore, new signature classes will be introduced and the
original ones will not get finalized.
Review URL: https://codereview.chromium.org//14097006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21235 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-10 22:34:02 +00:00
zra@google.com
2c5cea8d4e
Supports FrameLookup vm test on MIPS
...
As with the similar CL for ARM, also:
- Supports inline allocation of objects.
- Supports checking of inline cache and instance calls.
- Supports subtype test cache.
- Supports (some) equality checks.
- Supports for (some) conditional branches.
- Supports for pool pointer setup in stubs.
Review URL: https://codereview.chromium.org//14076005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21233 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-10 21:59:57 +00:00
srdjan@google.com
02f305a0f1
Intrinsify OnebyteString's substringUnchecked. Significant performance improvement on Json benchmarks.
...
Review URL: https://codereview.chromium.org//13964002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21232 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-10 20:37:02 +00:00
regis@google.com
bdcca76e3a
Prohibit use of dynamic when extending or implementing classes (was crashing).
...
Added test.
Fix typos in array patch.
Cleanup factory result finalization.
Do not verify field offsets after a finalization error.
Review URL: https://codereview.chromium.org//13992002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21217 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-10 16:43:39 +00:00
vegorov@google.com
70ccbd02aa
Repair compilation with VTune support.
...
R=fschneider@google.com
Review URL: https://codereview.chromium.org//14063008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21215 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-10 16:10:46 +00:00
vegorov@google.com
11edd87390
Convert diamond shaped control flow into a single conditional instruction.
...
Adds a IfConverter pass that right now recognizes two simple patterns cond ? 0 : 2^n and cond ? x : x+-1 that can be generated without branches on ia32 and x64 using setcc instruction.
R=fschneider@google.com
Review URL: https://codereview.chromium.org//14057004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21207 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-10 15:09:46 +00:00
sgjesse@google.com
6082783a04
Fix issue with serializing typed array views
...
This makes the code
void isolate() {
port.receive(print);
}
main() {
Uint8List list = new Uint8List(1);
spawnFunction(isolate).send([1, new Uint8List.view(list.buffer, 0, 1)]);
}
not crash.
R=asiva@google.com
BUG=
Review URL: https://codereview.chromium.org//13866012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21200 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-10 13:41:32 +00:00
hausner@google.com
226b3f4ce4
Fix issue 9744
...
Allow for debugger stack frames that have no corresponding pc descriptor
entry, i.e. the PC is not at a known safe point. In that case, we cannot
return a code location nor variables.
Fixes 9744
Review URL: https://codereview.chromium.org//13948009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21175 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-09 23:36:51 +00:00
iposva@google.com
0d0fcbe7e1
Changelist to land https://codereview.chromium.org/13452007/ for Siva.
...
Review URL: https://codereview.chromium.org//13813018
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21160 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-09 17:51:24 +00:00
vegorov@google.com
4d4a91ac04
Fix bug in ParallelMoveResolver::EmitSwap: implement swaps of FPU spill slots.
...
Remove representation from location. Presence of representation in location encoding was violating the invariant that unequal locations must be disjoint (where equality for locations is defined in terms of bitwise equality of their encoding). This could lead ParallelMoveResolver to treat XMM1 containing unboxed double as unequal location to XMM1 containing unboxed mint, which is obviously incorrect.
For similar reason eliminate kFloat32x4StackSlot and kUint32x4StackSlot distinction is eliminated and both are replaced with kQuadStackSlot. Register allocator now guarantees that no kQuadStackSlot occupies the same space as any other kDoubleStackSlot. This also shrinks optimized stack when only doubles are used (but might lead to a higher stack utilization when a mixture of doubles and quads is used).
Implement allocation of scratch Cpu and Xmm registers for ParallelMoveResolver. This also allows to remove push(eax)/pop(eax) pairs when resolving memory-memory cycles on ia32.
BUG=dart:9710
Review URL: https://codereview.chromium.org//13801014
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21148 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-09 12:23:46 +00:00
zra@google.com
cae56d75ed
Introduces a second temporary register for MIPS assembler macros.
...
- Also, adds macros for comparisons followed by branches, and uses them.
Review URL: https://codereview.chromium.org//13483018
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21118 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-08 22:04:27 +00:00
hausner@google.com
1a4d308dea
Add library id to code location object
...
Add libraryId field to the JSON Location object in the debugger
wire protocol.
Review URL: https://codereview.chromium.org//13771013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21098 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-08 18:31:56 +00:00
zra@google.com
d5be052e40
Adds macros to the MIPS assembler for detecting overflow.
...
Review URL: https://codereview.chromium.org//13722022
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21085 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-08 16:51:12 +00:00
regis@google.com
b37703989f
Implement write barrier on ARM.
...
Enable StoreIntoObject and DartEntry vm tests.
Review URL: https://codereview.chromium.org//13638019
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21083 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-08 16:44:39 +00:00
floitsch@google.com
343fa26d65
Remove deprecated Expect from the libraries.
...
Review URL: https://codereview.chromium.org//13724021
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21079 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-08 16:07:34 +00:00
vegorov@google.com
a273179ac8
Use locale insensitive method to parse double literals.
...
Using strtod does not work because Dart grammar does not necessary match grammar used by strtod. Some locales (e.g. Russian and Danish) use comma instead of dot for radix point.
R=iposva@google.com
BUG=
Review URL: https://codereview.chromium.org//13529014
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21074 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-08 14:32:46 +00:00
hausner@google.com
ee69789e07
Add line table command to debugger
...
New command returns token information of a script. This will enable
the editor/debugger to translate token offsets to line numbers.
Review URL: https://codereview.chromium.org//13533016
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21009 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-05 23:45:14 +00:00
srdjan@google.com
cbe8bd9a3a
Restore r20998 with a bug fix: add field to guarded_fields_ when it contains relevant cid. Was missing most cases and did not check for unique adds.
...
Review URL: https://codereview.chromium.org//13726023
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21008 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-05 23:26:53 +00:00
srdjan@google.com
e7f1ae5383
Revert r20998.
...
Review URL: https://codereview.chromium.org//13739002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21001 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-05 21:44:17 +00:00
srdjan@google.com
44938de19c
Fix guarded_cid handling: add field to list of guarded_field at LoadField creation time.
...
Review URL: https://codereview.chromium.org//13529021
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20998 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-05 21:01:30 +00:00
floitsch@google.com
8fd6d0aafd
Remove Expect from core library.
...
Committed: https://code.google.com/p/dart/source/detail?r=19755
Reverted: http://code.google.com/p/dart/source/detail?r=19756
Review URL: https://codereview.chromium.org//12212016
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20996 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-05 19:43:16 +00:00
regis@google.com
46a5dbeb26
Support UseDartApi vm test on ARM.
...
Review URL: https://codereview.chromium.org//13671004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20981 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-05 16:46:53 +00:00
asiva@google.com
ecc5b67833
- Create an all static TypedDataView class which uses implicit field offset
...
values to get direct access to the fields of a typed data view object.
- Added a verification step after class finalization to ensure that the
implicit field offsets in TypedDataView match the actual values in the
dart instance.
Review URL: https://codereview.chromium.org//13472019
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20948 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-05 05:19:36 +00:00
johnmccutchan@google.com
7e1450cb9b
Flow graph SIMD changes
...
Review URL: https://codereview.chromium.org//13471013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20945 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-04 23:23:30 +00:00
regis@google.com
158d90d50f
Prevent expensive and unnecessary error formatting in the case a bound check is
...
postponed to run time (issue 9106).
Eliminate bound check at compile time in some cases.
Fix bound checking of mutually referencing bounds.
Added test.
Review URL: https://codereview.chromium.org//13653005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20938 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-04 20:24:49 +00:00
tball@google.com
95dfaf1718
Updated VM stacktrace support (20898) with platform-
...
independent version of strndup.
Review URL: https://codereview.chromium.org//13587008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20936 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-04 18:48:24 +00:00
srdjan@google.com
29d8c954ac
There are still issues with using guarded-cid (tests/compiler/dart2js/cpa_inference_test.dart fails). Disabled via flag until I have figured it out.
...
Review URL: https://codereview.chromium.org//13455008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20935 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-04 18:13:00 +00:00
zra@google.com
0cc80971fb
Implements type checking in MIPS needed for FindCodeObject test.
...
Review URL: https://codereview.chromium.org//13619008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20932 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-04 17:55:06 +00:00
zra@google.com
9e05e96e90
Fixes a bug in MIPS simulator runtime call handling.
...
Also:
- Fixes a bug in the MIPS SimulatorDebugger that
causes a crash if the pc is an illegal address
- Reenables the FindCodeObject test on MIPS when
checking is off
Review URL: https://codereview.chromium.org//13489008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20924 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-04 16:56:00 +00:00
srdjan@google.com
d01002343e
Fix checked mode crash when clearing reaching type of a value.
...
When replacing uses we clear type information that is set by a previous type propagation (e.g. by CheckSmi). This led to unexpected behavior: value guarded by a CheckSmi but not Smi. Adding another type propagation pass before code generation.
Review URL: https://codereview.chromium.org//13125002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20921 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-04 16:13:50 +00:00
fschneider@google.com
5e0ac1419e
Use range analysis to improve constant propagation.
...
This CL runs a second round of constant propagation after range
analysis to eliminate additional unreachable code. Range analysis
is changed to mark branches as constant if the constraints they
generate are unsatisfiable.
The second pass of constant propagation only visits branches and
removes unreachable code, but does not do full constant propagation.
This proves useful when inlining array view operations where the
following pattern occurs:
for (i = 0; i < length; i++) {
if (i < 0 || i >= length) {
throw 123;
}
foo();
}
In this example the if-statement will be eliminated completely.
Also, fix a bug in range analyis where constraints of already
constrained values were missing.
Review URL: https://codereview.chromium.org//13469013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20914 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-04 12:42:17 +00:00
srdjan@google.com
aef6e5d616
Fix issue 9644: object stores become large pieces of code if heap tracing is turned on; jumps around the the store must not use near labels.
...
Review URL: https://codereview.chromium.org//13588005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20902 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-03 22:34:02 +00:00
tball@google.com
404dc8ca8b
Rollback of 20898 (Windows doesn't support strndup)
...
Review URL: https://codereview.chromium.org//13583008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20901 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-03 22:29:07 +00:00
tball@google.com
94c40f13f3
Added VM support for isolate stacktrace status.
...
Review URL: https://codereview.chromium.org//12842015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20898 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-03 22:03:06 +00:00
zra@google.com
fd72ee418a
Implements optional parameter handling in MIPS vm.
...
- Deocdes ic data and argument descriptor.
- Removes SUB instruction from assembler and disassembler.
Review URL: https://codereview.chromium.org//13474009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20895 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-03 21:43:52 +00:00
regis@google.com
05e2ba9540
Support FrameLookup vm test on ARM, requiring among other things:
...
Maintain a separate top_exit_frame_info for simulated frames and use it to
verify that longjumps are safe.
Make sure unwinding of scopes works in the presence of a simulator.
Support inline allocation of objects.
Support checking of inline cache and instance calls.
Support subtype test cache.
Support (some) equality checks.
Support for (some) conditional branches.
Support for pool pointer setup in stubs.
Review URL: https://codereview.chromium.org//13502002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20890 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-03 20:17:14 +00:00
srdjan@google.com
ec54a6e409
Mark CallLeafRuntimeStubCode as failing on Mips/Mac OS X.
...
Added some cleanups.
Review URL: https://codereview.chromium.org//13575002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20885 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-03 19:42:29 +00:00
srdjan@google.com
ae25ca904c
Fix issue 9608: When replacing call with assert assignable, transfer call's deopt_id to the new node.
...
Review URL: https://codereview.chromium.org//13464021
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20871 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-03 16:22:24 +00:00
iposva@google.com
4dff6b8e2b
- Remember objects (not addresses) in the old generation containing new pointers.
...
Review URL: https://codereview.chromium.org//13406004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20828 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-02 22:45:18 +00:00
hausner@google.com
b0b38313ec
Add text location in debugger event
...
- Adding token number in text location data. Line number will be
removed when the editor knows how to convert a token number to its
line number.
- "location" field in stack frames is now optional. If it is not present, there
is no corresponding textual location for the code location.
- Add location info of "paused" and "interrupted" events.
Stack trace will go away in these events.
Review URL: https://codereview.chromium.org//13144018
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20816 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-02 20:41:29 +00:00
zra@google.com
3e080d1b34
Adds native/leaf runtime call stub and redirection on MIPS.
...
Review URL: https://codereview.chromium.org//13473010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20813 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-02 20:24:55 +00:00
zra@google.com
c4b55c1276
Third codegen test passing for simulated MIPS.
...
Review URL: https://codereview.chromium.org//13407003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20794 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-02 16:40:14 +00:00
srdjan@google.com
60e57ecfe1
Optimizes 'as' operation in similar way as 'instanceof': collect type feedback in unoptimized mode and try to convert it to a simple classcheck in optimized code.
...
Review URL: https://codereview.chromium.org//13190014
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20783 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-02 15:30:14 +00:00
kasperl@google.com
f15b6960c0
Add a new implementation of HashMap that uses JS objects for its (multiple) hash tables.
...
I'll start refactoring the implementation to make it a bit more
maintainable, but I wanted to get your first impressions.
R=erikcorry@google.com ,lrn@google.com ,srdjan@google.com
BUG=
Review URL: https://codereview.chromium.org//12827018
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20770 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-02 11:51:36 +00:00
asiva@google.com
7b72985c3e
First step for fixing Issue 9416.
...
Review URL: https://codereview.chromium.org//13351002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20760 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-02 00:01:15 +00:00