Commit Graph

4457 Commits

Author SHA1 Message Date
hausner@google.com f58745f751 Fix parsing and resolving of prefixed names
R=regis@google.com

Review URL: https://codereview.chromium.org//352523002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37631 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-23 23:26:26 +00:00
srdjan@google.com 3da591793a Always inline Object.==.
R=zra@google.com

Review URL: https://codereview.chromium.org//351713002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37630 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-23 23:18:02 +00:00
srdjan@google.com 97021b5861 Add class id constants fields to dart:_internal class 'ClassID'. Use the fields in the library (more uses to come).
R=asiva@google.com

Review URL: https://codereview.chromium.org//351673002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37628 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-23 22:41:59 +00:00
zra@google.com 2ab7fa6c72 Omits size bits when writing RawObject tags to a snapshot.
Makes snapshot ~30KB smaller.

R=asiva@google.com

Review URL: https://codereview.chromium.org//349293002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37626 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-23 22:18:04 +00:00
fschneider@google.com 0d82ac5c05 Remove unused pc-descriptor kind kReturn.
This kind is not needed since the only place where it is used
can be just replaced with kRuntimeCall as it behaves the same.

R=hausner@google.com

Review URL: https://codereview.chromium.org//345103002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37592 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-23 10:50:50 +00:00
koda@google.com b23b4ddd52 Verify that GC can handle trailing fillers in large pages.
Assert that filler objects created by String::MakeExternal and Array::MakeArray in large pages are never marked.

Add unit test that exercises the verification code.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org//344913003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37577 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-22 00:49:41 +00:00
asiva@google.com 51d2a5d219 Fix build breakage.
Review URL: https://codereview.chromium.org//345973003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37569 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-20 21:20:30 +00:00
asiva@google.com 9a718b8235 Add a function Dart_AllocateWithNativeFields which allocates an object and sets the native fields in one call.
R=srdjan@google.com

Review URL: https://codereview.chromium.org//349643003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37568 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-20 21:08:33 +00:00
srdjan@google.com d44423b766 Add VM internal Dart class 'ClassID' used to manage class-ids of known classes. Next CL: add constant fields corresponding to each class id (smiCid, oneByteStringCid, etc).
R=asiva@google.com

Review URL: https://codereview.chromium.org//345223003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37567 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-20 20:56:55 +00:00
koda@google.com bd979f84d5 Send allocation stats with each class and show in class view.
For each class, if there are any allocations, shows current number of instances, shallow size, and the already existing link for retained size.

Also refactor code in ClassTable to reduce duplication.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//345543003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37566 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-20 20:17:42 +00:00
johnmccutchan@google.com c897df4e7b Make size of sample variable based on the profile depth flag.
R=iposva@google.com

Review URL: https://codereview.chromium.org//345713006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37553 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-20 14:46:54 +00:00
fschneider@google.com b1dfcdde00 Compute ranges for >> smi shifts and eliminate overflow check for smi << operations.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//330263002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37541 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-20 12:06:48 +00:00
johnmccutchan@google.com 3eb3bc3fa9 Extend Range analysis to 64-bit range and mint operations
- Convert many private static functions into public static methods on Range or RangeBoundary classes.
- Simplify ConstraintInstr::InferRange to just use RangeBoundary::Min and RangeBoundary::Max calls.
- Extend RangeBoundary to 64-bits.
- Include mints in RangeAnalysis.
- Introduce generic Range::BinaryOp.
- Require ranges passed to Range::BinaryOp are finite.
- Clamp ranges attached to BinarySmiOpInstr and BinaryMintOpInstr.
- InferRange for BinaryMintOp and UnboxInteger instructions.
- Correctly set mint constant ranges.
- Add many tests.

R=fschneider@google.com, vegorov@google.com

Review URL: https://codereview.chromium.org//328503003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37521 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-19 21:13:26 +00:00
srdjan@google.com def66a2a93 Double constants in code should be canonical.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//348623004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37518 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-19 21:08:50 +00:00
regis@google.com 8cf0d1034e Ensure that a javascript compatibility warning results in a
JavascriptCompatibilityError being thrown in all cases when --warning_as_error
is specified.
Prior to this change, some javascript compatibility warnings resulted in a
compile time error.
Change expectations accordingly in tests.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//347873002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37515 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-19 20:57:41 +00:00
iposva@google.com f14e2c1842 - Cleanup FlowGraph:
Bailout is not really needed any longer after removing the optimize_try_catch flag.
  Ensure the availability of VerifyUseLists in non-DEBUG code.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//342093002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37474 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-19 05:26:33 +00:00
regis@google.com 32f3e11d99 Cleanup of error and warning reporting.
R=hausner@google.com, srdjan@google.com

Review URL: https://codereview.chromium.org//340203003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37468 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-18 22:30:34 +00:00
koda@google.com a65edb0397 VM service: List all instances of a class.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//340673002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37465 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-18 20:55:09 +00:00
johnmccutchan@google.com b67b9f0e20 Remove timers from Service_Isolate test because the internal C++ json parser can't handle floating point numbers.
Review URL: https://codereview.chromium.org//340843003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37462 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-18 20:16:52 +00:00
johnmccutchan@google.com 452545ddcd Visual refresh of allocation profile page
- Redo layout of page.
- Show human readable strings for used, free, and external memory for each space.
- Track time of last forced GC/accumulator reset in isolate and display them in allocation profile page.
- Track allocation statistics on Class object itself.
- Make isolate's heap reporting use heap's PrintToJSON.
- Manually insert allocation profile table rows into dom (removes usage of template repeat).
- Add some timing information to allocation profile page update (to help diagnose slow downs).

Other changes:
- Upgrade to Polymer 0.11-dev (finally ends erroneous console spam).
- Replace enteredView/leftView with attached/detached (polymer change).
- Add <link> tag to polymer.html for each element (polymer change).
- Move <script> tag outside of element (uniformity, clarity).
- Remove unused collapsible-content element.

R=koda@google.com

Review URL: https://codereview.chromium.org//342513004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37456 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-18 17:39:37 +00:00
zra@google.com 1dc0e2331b Removes open arrays (e.g. data[0]) from raw objects.
Replaces them with data() methods as in RawArray.

R=asiva@google.com, srdjan@google.com

Review URL: https://codereview.chromium.org//333773006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37450 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-18 15:58:16 +00:00
fschneider@google.com 1657f150f1 Fix our initial dead phi elimination in the presence of try-catch.
BUG=dartbug.com/19519
TEST=tests/language/try_catch_optimized4_test.dart
R=vegorov@google.com

Review URL: https://codereview.chromium.org//340113002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37444 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-18 14:27:45 +00:00
fschneider@google.com 941ffb9a52 Enable OSR optimization for functions with try-catch.
This is working. I added and extended tests to cover the
different cases  where OSR can occur (inside/outside try/catch)

BUG=dartbug.com/16313,dartbug.com/17442
R=srdjan@google.com

Review URL: https://codereview.chromium.org//335793003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37441 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-18 09:16:25 +00:00
srdjan@google.com 1a82ace818 Clean ups: isolate() -> I
R=regis@google.com

Review URL: https://codereview.chromium.org//345473002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37430 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 22:32:49 +00:00
koda@google.com 5d9bf05ca5 Grow new gen when enough of it survives.
1M default initial size is enough to run "hello world" without triggering scavenge.

Default sizes are doubled on 64-bit (like old gen).

Also clean up and clarify "new gen capacity". In particular, rename confusing flag "new_gen_heap_size".

R=iposva@google.com

Review URL: https://codereview.chromium.org//329163003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37429 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 22:25:35 +00:00
hausner@google.com 6cc8cbc53b Adding embedder API function Dart_FinalizeLoading
Embedder must call Dart_FinalizeLoading when all outstanding
load requests are satisfied, to complete the deferred loading
futures.

R=asiva@google.com

Review URL: https://codereview.chromium.org//341543004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37423 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 21:05:30 +00:00
srdjan@google.com ee210974f6 Reduce default capacity of growable list from 4 to 2 elements. Improves performance.
R=asiva@google.com

Review URL: https://codereview.chromium.org//337383004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37421 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 20:49:47 +00:00
zra@google.com 419dce3183 Fixes field access on MIPS for classes with many fields.
This mirrors yesterday's fix for ARM.

R=regis@google.com

Review URL: https://codereview.chromium.org//338353005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37419 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 20:44:24 +00:00
koda@google.com b700281db4 Missing file.
Review URL: https://codereview.chromium.org//343503002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37416 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 20:16:00 +00:00
johnmccutchan@google.com 1833604ae6 Show pid on Observatory VM page
BUG=
R=koda@google.com

Review URL: https://codereview.chromium.org//331323002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37415 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 20:15:49 +00:00
koda@google.com 2b2d188df7 Heap::AllocateExternal may trigger GC, so fix String::MakeExternal.
Note that this may happen even for size 0 (since we may be overdue for a GC).

Some unit tests still optimistically expect that GC will not trigger.

R=asiva@google.com

Review URL: https://codereview.chromium.org//342503002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37414 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 19:41:13 +00:00
rmacnak@google.com 7ce5c53f0b Pass around the current isolate in exception handling code.
R=asiva@google.com

Review URL: https://codereview.chromium.org//326183002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37409 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 18:17:03 +00:00
srdjan@google.com 58fd318f4c Cleanup: use a ZoneGrowableArray instead of Array for ICData map.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//333403002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37400 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 15:52:05 +00:00
johnmccutchan@google.com 03854e0e8c Make TypedList not implement ByteBuffer.
BUG=https://code.google.com/p/dart/issues/detail?id=10136
R=asiva@google.com, iposva@google.com

Review URL: https://codereview.chromium.org//339763002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37397 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 14:34:45 +00:00
fschneider@google.com e169c20859 Fix bug in ARM instance field stores.
A large number of fields resulted in wrong offset
computation for the generated code for stores.

BUG=dartbug.com/19649
TEST=tests/language/large_class_declaration_test.dart
R=zra@google.com

Review URL: https://codereview.chromium.org//339593002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37389 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 09:28:24 +00:00
koda@google.com 9098859cb0 Refactor creation of FinalizablePersistentHandle into proper factory.
This exposes an issue (19482) with the API and external size tracking.

BUG=dart:19482
R=asiva@google.com

Review URL: https://codereview.chromium.org//337183002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37381 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-16 23:55:34 +00:00
srdjan@google.com 8f2dc961d0 Save ICData of unoptimized code in the function, thus preserving it across repated unoptimized compilations.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//335173002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37378 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-16 22:24:05 +00:00
iposva@google.com 5864eb56c6 - Use I instead of isolate() where possible.
R=srdjan@google.com

Review URL: https://codereview.chromium.org//338953003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37375 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-16 20:50:05 +00:00
koda@google.com 5886e8ec95 Light-weight stats counters for temporary experiments/debugging.
A single statement is enough to add a counter:
  ...
  Isolate::Current()->counters()->Increment("allocated", size_in_bytes);
  ...

I've been using these myself for a while now, but figured others might
find them useful too. They are not intended for production use, just temporary local experiments/investigation.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//336683003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37367 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-16 17:13:20 +00:00
fschneider@google.com f085adbd00 More precise range analysis for smi multiplication.
R=vegorov@google.com

Review URL: https://codereview.chromium.org//336773003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37355 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-16 11:13:55 +00:00
hausner@google.com 4eac05607f Lazy loading of deferred libraries
Defer reading of source code of deferred libraries until the
Dart code executes the loadLibrary() call.

R=iposva@google.com

Review URL: https://codereview.chromium.org//328923002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37334 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-13 22:43:31 +00:00
fschneider@google.com b0904c1409 Record field initializer with simple literals stores at compile-time.
This helps to rule out fields from being unboxing candidates earlier and
avoids generating extra code to track the type at runtime.

Also, align the location summary computation for instance field stores to
use the same condition as the code generation function.

R=vegorov@google.com

Review URL: https://codereview.chromium.org//330243003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37310 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-13 11:49:34 +00:00
ngeoffray@google.com 4936f84613 Fix a bug in ParallelMoveResolver::AllocateScratchRegister, where we end up allocating PC on ARM.
1) Iterate from first_free_register to last_free_register to ensure we're not using protected registers.
2) Break when finding an ok register.

2) fixes allocating PC on ARM by itself, but we could need 1) for another architecture.

The reason this has not been exposed yet, is because we call this method for a memory <-> memory
swap, which almost never happens on ARM.

R=vegorov@google.com

Review URL: https://codereview.chromium.org//337503003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37304 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-13 08:02:23 +00:00
fschneider@google.com fd11452415 Add range analysis for left-shift smi operations.
I factored some operations out into the Range and RangeBoundary class,
so that they can be used from unit tests and added cc tests.

R=johnmccutchan@google.com, vegorov@google.com

Review URL: https://codereview.chromium.org//333643004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37303 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-13 07:41:08 +00:00
regis@google.com 1186078de6 Add support to trace warnings in TraceBuffer.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//328663008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37298 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-13 00:47:15 +00:00
rmacnak@google.com 5afea71262 Setup R10/EDX to be valid Oops before stub calls so when the debug stub saves them to the stack the GC doesn't try to deference out of the heap.
BUG=http://dartbug.com/19331
R=asiva@google.com, iposva@google.com

Review URL: https://codereview.chromium.org//335443002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37297 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-12 23:50:48 +00:00
rmacnak@google.com da3b61d764 Add missing demangling to the VM's NoSuchMethodError. Ensure the VM's NoSuchMethorErrors for reflective invocation match those for non-reflective invocation.
Fix bug in VM demangling of setters.
Fix bug where test was not covering invocation on classes as intended.

BUG=http://dartbug.com/18042
R=asiva@google.com

Review URL: https://codereview.chromium.org//326263002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37294 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-12 22:53:00 +00:00
zra@google.com c46103f74a Updates snapshot test for last commit.
Review URL: https://codereview.chromium.org//330163002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37288 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-12 20:37:54 +00:00
zra@google.com 47e2465545 Begins removing intptr_t from raw object fields.
R=asiva@google.com

Review URL: https://codereview.chromium.org//328893002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37285 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-12 19:56:46 +00:00
koda@google.com 24cd5e2385 Double default new gen size on 64-bit (like old gen).
R=iposva@google.com

Review URL: https://codereview.chromium.org//329923004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37284 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-12 19:54:16 +00:00