srdjan@google.com
833476b2b3
Improve double pow performance for few simple exponents (0.0, 1.0, 2.0, 3.0).
...
R=iposva@google.com , johnmccutchan@google.com
Review URL: https://codereview.chromium.org//237313004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35035 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-14 18:04:51 +00:00
zra@google.com
1c03aa73a8
Adds more arithmetic ops to arm64.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//236173002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35024 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-14 17:03:04 +00:00
zra@google.com
3a21a88e52
Adds comparisons, labels, branches.
...
Also adds compare-and-branch, test-and-branch, and
unconditional branch with 26-bit offset instrucitons
to the disassembler and simulator, but not to the
assembler, yet, since they'll require a bit more
work and this CL is getting big.
R=regis@google.com
Review URL: https://codereview.chromium.org//235363005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34993 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-11 20:40:11 +00:00
hausner@google.com
f58b04e387
Improve breakpoint resolution
...
Fix breakpoint setting in exception handlers.
Fixes issue 17880.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//233973003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34986 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-11 18:04:19 +00:00
ajohnsen@google.com
82f487f92f
Fix File:copy FD leak, and add file-closes to some tests.
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//233053004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34961 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-11 07:48:49 +00:00
johnmccutchan@google.com
8f0056371d
Initial UserTag and dart:profiler library
...
R=asiva@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//230863005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34949 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-10 22:32:45 +00:00
johnmccutchan@google.com
ef666553a1
Add runtime and native entry tags
...
- Split runtime and native entry tags.
- Set runtime / native entry address as vm tag in stubs.
- Add reverse native entry resolver (pc to name) to public API (breaking change).
- Hookup reverse resolver for standalone VM (io + bootstrap + builtin natives).
- Runtime entries are registered with tags.
- Profiler queries for tag names via the reverse native entry resolver.
- Profiler outputs named entry tags as children under parent tag (runtime or native).
R=asiva@google.com
Review URL: https://codereview.chromium.org//227433004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34941 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-10 20:26:45 +00:00
zra@google.com
e8eef533d1
Prevents GC of code from intrinsified functions.
...
R=srdjan@google.com
Review URL: https://codereview.chromium.org//226663004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34936 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-10 18:02:46 +00:00
iposva@google.com
090e15d537
Do not try to move lines around after test!
...
- Fix typo in field name.
R=ajohnsen@google.com
Review URL: https://codereview.chromium.org//233313005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34935 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-10 17:58:47 +00:00
iposva@google.com
9adfe60489
- Apply review comments from https://codereview.chromium.org/232223004/
...
- Use isWindows where appropriate.
R=ajohnsen@google.com
Review URL: https://codereview.chromium.org//233093004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34934 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-10 17:49:31 +00:00
ajohnsen@google.com
5aa521fa7b
Report the correct error, when recursive delete fails on Windows.
...
BUG=
R=ricow@google.com
Review URL: https://codereview.chromium.org//227913007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34933 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-10 17:13:02 +00:00
fschneider@google.com
79a5307d5b
VM: Implement closure calls as instance calls.
...
Conceptually f() becomes f.call() where the .call method performs the actual
closure call. The closure call itself is implemented without a stub.
The check if the object called is a closure becomes a class-id check
which can be hoisted out of loops.
R=iposva@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//227723002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34917 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-10 10:56:00 +00:00
sigurdm@google.com
dc92146b57
Load deferred chunks in the right order.
...
A chunk can depend on classes in shared chunks. Therefore sort they are
sorted, and loaded sequentially.
BUG= dartbug.com/17890
R=floitsch@google.com
Committed: https://code.google.com/p/dart/source/detail?r=34698
Reverted: r34702
Review URL: https://codereview.chromium.org//221663005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34915 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-10 08:48:11 +00:00
koda@google.com
f7ba0c9191
Fix used vs. capacity growth computation mismatch.
...
Free space was not being taking into consideration,
effectively growing more when more garbage was collected.
This change makes the growth uniform. (In the future,
we probably want to grow more when less was collected.)
R=iposva@google.com
Review URL: https://codereview.chromium.org//231983004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34909 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-10 00:24:23 +00:00
iposva@google.com
566ec5d5b9
- Do not keep the environment alive past the process spawn.
...
- Avoid creation of many temp objects while creating the process
environment.
- "if (identical(true, value))" makes no sense.
R=asiva@google.com
Review URL: https://codereview.chromium.org//232223004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34907 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-10 00:15:47 +00:00
hausner@google.com
10f6318d87
Allow function literals in string interpolation
...
Interpolated strings in initializers can contain function literals. Add a test case to the function literals test.
Fixes issue 18112.
R=regis@google.com
Review URL: https://codereview.chromium.org//232213003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34903 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-09 23:42:58 +00:00
zra@google.com
11434b57aa
Adds logical operations to arm64.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//231373003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34901 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-09 22:14:47 +00:00
turnidge@google.com
1eba6be2b2
Implement new stacktrace and deoptimization stress testing flags:
...
--deoptimize-every=N
--deoptimize-filter=FunctionName
--stacktrace-every=N
--stacktrace-filter=FunctionName
Add a word of stack_overflow_flags to the Isolate. Use a bit in this
word to indicate whether or not a function is being compiler for OSR.
This allows us to distinguish an OSR overflow from a stress-testing
overflow.
BUG=
R=johnmccutchan@google.com , zra@google.com
Review URL: https://codereview.chromium.org//226543007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34887 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-09 18:27:37 +00:00
srdjan@google.com
42ddbe7ff0
Fix simarm64 build on Mac OS X
...
Review URL: https://codereview.chromium.org//229383006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34856 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 23:58:23 +00:00
srdjan@google.com
3658a1a6de
Fixes issue 18099: missed type guard dependency in implicit getters.
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//229353002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34855 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 23:56:49 +00:00
hausner@google.com
625b564a4b
Fix instance method resolution with abstract accessors and methods
...
Fix issue 18082
R=gbracha@google.com , regis@google.com
Review URL: https://codereview.chromium.org//227703010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34845 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 22:14:24 +00:00
johnmccutchan@google.com
1eb7046d00
Restore WritableRegister input LiveRange shape
...
BUG=
R=zra@google.com
Review URL: https://codereview.chromium.org//229143002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34838 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 20:25:22 +00:00
johnmccutchan@google.com
3834c9a869
Support for multiple register values
...
- Adds a PairLocation type (Location is still a single word but now has two tags one for constants and one for pairs).
- New representations: kPairOfTagged & kPairOfUnboxedDouble.
- Register allocator uses second SSA index for Definitions that use two registers.
- Fix LiveRange shape for kWritableRegister inputs.
- Updated MergedMathInstr that returns a kPairOfTagged or kPairOfUnboxedDouble (depending on the merged math kind).
- A new instruction (ExtractNthOutput) for extracting a single register from an instruction that has a output register pair.
Open issues that need to be addressed in a follow up CL:
- Adjust PhiInstr and handling of PhiInstr in the register allocator to work with output pairs (once unboxed mints are in GPRs).
R=fschneider@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//215363004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34833 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 16:13:43 +00:00
zra@google.com
5ed6eb4cb4
Adds ldr and str to arm64.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//227593012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34831 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 15:43:16 +00:00
lrn@google.com
49853292aa
Add crash expectation for test in debug mode due to Issue 17857.
...
Review URL: https://codereview.chromium.org//225023037
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34815 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 09:19:13 +00:00
lrn@google.com
88ba8efed9
Optimize one-byte string's toUpperCase.
...
R=ajohnsen@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//213293002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34812 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 07:19:33 +00:00
iposva@google.com
bf47f476ad
- Ensure the Null class is recognized when writing snapshots.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//225023033
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34806 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-08 00:34:14 +00:00
hausner@google.com
83f80fe560
Add const static field optimization that got lost in last checkin
...
My last change list accidentally got rid of an optimization where the parser replaces const static field references with the value of the field. This causes many more compile-time “execute once” calls. This change adds back the special case.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//227863002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34798 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-07 21:30:54 +00:00
koda@google.com
6721f81926
Reset growth control state after isolate initialization.
...
(a) When enabling the growth control, e.g. after isolate
initialization, the current usage should be the new basis for
growth control. This is consistent with the behavior before
r34747.
(b) Advise GC only when the number of allowed pages has been
(strictly) exceeded, rather than met. This is consistent with
the behavior before r34747.
Part (a) fixes the Havlak performance regression (3%).
R=iposva@google.com
Review URL: https://codereview.chromium.org//227683004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34793 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-07 18:40:45 +00:00
zra@google.com
01ac0b3dc9
Removes stub from arm64 to fix build.
...
R=srdjan@google.com
Review URL: https://codereview.chromium.org//227563003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34787 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-07 17:56:59 +00:00
hausner@google.com
2b4e3c7c99
Implement deferred constant support
...
Compile time constants lose their const-ness if they are referred
to through a deferred prefix. This CL adds a flag to some ast node
types that remembers whether a field or closure was referred to
via a deferred prefix. If so, the compile-time const analysis flags
the value as non-const.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//226953002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34785 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-07 17:31:32 +00:00
fschneider@google.com
61b0757d05
Fix bug in closure call stub.
...
Since closure calls and method calls both use the same lazy-compile stub,
we need a GC-safe value in the IC data register also at closure calls.
TBR=srdjan@google.com
Review URL: https://codereview.chromium.org//224723017
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34777 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-07 11:47:13 +00:00
fschneider@google.com
9ed4cf1cb6
Simplify and improve handling of IC and megamorphic cache miss handling.
...
Instead of going back and forth from stub code to C++, perform
only the lookup in C++ and call target functions only from
stub code.
noSuchMethod and implicit closure invocations are now also work with
the megamorphic cache. Before they would go slow-case in the megamorphic case.
This CL eliminates the InstanceFunctionLookup stub that was previously
used to handle noSuchMethod and implicit closure invocations.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//221173011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34774 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-07 09:27:43 +00:00
koda@google.com
b3535bf501
Extend Timer to track longest contiguous interval, and add GC timer.
...
R=turnidge@google.com
Review URL: https://codereview.chromium.org//215893006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34749 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-04 22:13:59 +00:00
koda@google.com
5e4d540c27
Corrected resubmssion of r34736.
...
Fix: Division by page size in NeedsGarbageCollection.
Original description:
Generalize the interface of page space controller.
Gather used/capacity/external into SpaceUsage object,
and use it for testing whether GC is needed before or
after an allocation.
This refactor does not affect policy, but prepares for:
1. Replacing promotion failure check/tracking.
2. Better growth control for external allocation.
TBR=iposva@google.com
Review URL: https://codereview.chromium.org//225303006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34747 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-04 21:04:48 +00:00
koda@google.com
09b1d66049
Revert r34736 due to slowdown.
...
TBR=sra@google.com
Review URL: https://codereview.chromium.org//225023011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34741 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-04 18:39:10 +00:00
regis@google.com
91388a5f79
Simplify and fix instantiation of recursive types.
...
Add tests for non-contractive types.
Cleanup language tests status file.
Enhance tracing of type finalization.
R=hausner@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//224793002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34739 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-04 18:27:53 +00:00
turnidge@google.com
d358d84eb7
Begin implementing flag --deoptimize-filter=FUNC for ia32.
...
Currently not functional - committing so that srdjan can investigate
why it doesn't work.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//226303002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34737 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-04 18:05:37 +00:00
koda@google.com
00445b37ea
Generalize the interface of page space controller.
...
Gather used/capacity/external into SpaceUsage object,
and use it for testing whether GC is needed before or
after an allocation.
This refactor does not affect policy, but prepares for:
1. Replacing promotion failure check/tracking.
2. Better growth control for external allocation.
R=iposva@google.com
Review URL: https://codereview.chromium.org//220723010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34736 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-04 17:46:15 +00:00
srdjan@google.com
6d56854a9a
Add optimization for pow(base, 0.5) to the other architectures as well.
...
R=zra@google.com
Review URL: https://codereview.chromium.org//220723017
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34717 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-03 19:44:18 +00:00
zra@google.com
dcc2284689
Adds subract, move wide immediate instructions to ARM64.
...
Also adds tests for move, add shift, add extended.
R=regis@google.com
Review URL: https://codereview.chromium.org//214233006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34715 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-03 18:26:11 +00:00
iposva@google.com
dd7d6dd375
- Handle doubles transferred in message snapshots specially.
...
- Do not encode doubles using integer compression.
R=asiva@google.com
Review URL: https://codereview.chromium.org//221973004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34681 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-03 00:58:14 +00:00
johnmccutchan@google.com
431761e878
Miscellaneous Observatory UI improvements
...
Update cursor over expander in profiler
Ressurect json-view
Show arrow in profiler tree
Clicking on <code-ref> link in profiler doesn't expand tree
<code-ref> only shows a link for Dart code
Port script-view to use script-inset
Add function source to function view
Add counters to isolate view
Add counters to isolate summary
R=turnidge@google.com
Review URL: https://codereview.chromium.org//221263002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34661 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-02 18:30:01 +00:00
srdjan@google.com
58f2385da4
Add flag --inlining-callee-size-threshold (80), that prevents inlining too large functions. 'Accidentally' restores performance of NBody. Improves compilation speed (dart analyzer and stress6 test)
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//222553002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34657 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-02 18:03:37 +00:00
zra@google.com
2fe51715e5
Begins work on ARM64, first assembler test.
...
Most new code is in constants_arm64.h and
{assembler,disassembler,simulator}_arm64.{h,cc}
The rest of the CL just #def's out tests, modifies status files,
and adds UNIMPLEMENTED functions, etc.
R=regis@google.com
Review URL: https://codereview.chromium.org//221133002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34654 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-02 17:39:32 +00:00
ajohnsen@google.com
a3e5a06a90
Speed up snapshots of *int8lists, by using memmove.
...
BUG=https://code.google.com/p/dart/issues/detail?id=17951
R=asiva@google.com , sgjesse@google.com
Review URL: https://codereview.chromium.org//221943002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34649 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-02 15:53:23 +00:00
ajohnsen@google.com
37994d7588
Trigger old-space GC when scavange made the external heap of old-space larger than max old-space size.
...
BUG=
R=koda@google.com
Review URL: https://codereview.chromium.org//220113004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34647 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-02 14:24:53 +00:00
fschneider@google.com
cc9e3b8068
Introduce a lazy-compile stub for functions.
...
The function's code pointer is either a lazy-compile stub
or the compiled code. The function is compiled on invocation.
There is no need to check for null when invoking a function. This means
one check less when invoking functions via a stub. For this I added a LazyCompile
stub.
Additional cleanup in Stackmap and PcDescriptors (remove unused code pointer,
and changed smi-lengh into a raw integer).
R=zra@google.com
Review URL: https://codereview.chromium.org//203523011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34643 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-02 12:37:48 +00:00
srdjan@google.com
883486f303
Fix builds for finicky compilers.
...
Review URL: https://codereview.chromium.org//221623002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34625 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-01 23:39:56 +00:00
srdjan@google.com
4fed01aef9
Optimize pow(x, 0.5) to use sqrt instead.
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//221433002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34624 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-01 23:25:06 +00:00