- API breakage: Dart_IsolateBlocked, Dart_IsolateUnblocked -> Dart_ThreadDisableProfiling, Dart_ThreadEnableProfiling.
- Remove IsolateProfilerData.
- Move thread at blocking call count from isolate to thread.
- Always interrupt threads unless they are blocked.
- We can no longer count "idle" ticks.
- Only record sample if thread is the current mutator of an isolate.
- Refactor ThreadInterrupterCallback to ensure that Thread* is valid.
Threads are only ever sent signals if ThreadInterruptsEnabled is true. Which is controlled by two functions:
void DisableThreadInterrupts();
void EnableThreadInterrupts();
R=asiva@google.com, iposva@google.com
Review URL: https://codereview.chromium.org/1412733008 .
Change the compile-time constant map to use a pair (url, token_pos) as
the key. Previously, the two values were concatenated into a string, which creates a lot of new strings.
BUG=
R=srdjan@google.com
Review URL: https://codereview.chromium.org/1424393002 .
Values assigned to a local variable are assumed to satisfy the type
annotation if --trust-type-annotations is given.
Bounds checks are omitted if --trust-primitives is given.
BUG=
R=sra@google.com
Review URL: https://codereview.chromium.org/1408783004 .
When inlining functions that unconditionally throw (have zero normal returns),
the optimizer inserts a branch with a true condition and relies on
constant propagation to remove the rest of the caller which becomes unreachable
after inlining.
This allows to compilesuch functions without running constant propagation by
replacing uses of the return value with null.
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1419553005 .
We introduce 3 invalidation generation counters: CHA, field and library prefixes. If one of the counters was incremented during compilation, and is relevant for that compilation, the code installation is skipped since that code may have become invalid in the meantime.
Add BackgroundCompilationResult that remembers the 3 invalidation generations.
The generational counter can rollover, which is OK.
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org/1418813008 .
Final fields always yield the same value. Replace GetField operations with references to pevious in-scope GetField operations. If it is safe, hoist the GetField to the loop where the input is defined.
This is a temporary pass while I continue on load elimination.
R=asgerf@google.com
Review URL: https://codereview.chromium.org/1415923012 .
When we add a new file in IDEA and open it in the editor, this causes
analysis.setSubscriptions to be send immediately, even before watcher
notices it. The server reacts by requesting the fully resolved unit, and
so causes creation of a not-explicit CacheEntry. So, when later we handle
applyChanges(), the entry already exists. In this case we still need to
mark it as explicit.
R=brianwilkerson@google.com
BUG=
Review URL: https://codereview.chromium.org/1411243010 .
This build picks up improved `.analysis_options` support, aligning CLI with server (and giving it support for error filters and language configuration such as `enableSuperMixins`).
R=keertip@google.com
Review URL: https://codereview.chromium.org/1415223006 .
- Include the embedder's portion of the service isolate's Dart code in precompiled snapshots. Swap it in as the root library when running precompiled instead of loading from source.
- Make linter happy with gen_snapshot.
- Fix profiler to consider Instructions in the VM isolate may have their corresponding Code in the regular isolate.
- Make non-functional service RPCs fail cleanly instead of crashing.
BUG=http://dartbug.com/24651R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/1418833004 .
Add neg-instruction to the MIPS backend and use it instead of mul with -1.
Fixes the test that requires that identical(nan, -nan) == false.
TEST=language/nan_identical_test
R=zra@google.com
Review URL: https://codereview.chromium.org/1425143003 .
* Adds language configuration support to `.analysis_options`:
analyzer:
language:
enableSuperMixins: true
(with validation).
* Extracts context configuration out of `server` context_manager and into `analyzer` where it can be re-used by `analyzer_cli`.
* Some general cleanup of option validation (with more to come!)
R=brianwilkerson@google.com
Review URL: https://codereview.chromium.org/1423333002 .