Revert "Revert "Fixed issue in MallocHooks where a MallocHookScope was accidentally removed during a merge, causing a deadlock in the hooks. Also turned off stack trace collection in a test that was timing out as a result of the stack trace collection.""
This reverts commit 1a5b555aa9.
BUG=
R=zra@google.com
Review-Url: https://codereview.chromium.org/2711353003 .
Also use redefined receiver consistently when inlining recognized methods.
This CL re-enables type propagation from CheckClassId instructions which
was disabled as a temporary stop-gap to prevent illegal code motion.
(reverts https://codereview.chromium.org/1928633002)
Now uses of redefined values that are dominated by the redefinition are renamed before doing LICM.
Related to #26347.
R=vegorov@google.com
Review-Url: https://codereview.chromium.org/2709093003 .
- The interface for a factory constructor in an external library would
reference the class type parameters instead of its own.
- When a class from an external library gets promoted to mixin level,
the rest of the library should not be considered "being loaded".
This would cause members to not get added to the AST.
BUG=
R=kmillikin@google.com
Review-Url: https://codereview.chromium.org/2710783004 .
The following error was reported on bots with the new analysis driver,
but it was not reported before, because DartWorkManager.getErrors()
skips non-Dart sources.
WARNING|STATIC_WARNING|PART_OF_DIFFERENT_LIBRARY|/b/build/slave/azr-be/build/sdk/tests/language/top_level_prefixed_library_test.lib|6|6|22|Expected this library to be part of 'TopLevelPrefixedLibrary', not 'TopLevelMultipleFilesTest.dart'.
The test does not state its intentions, so I did my best guess and
fixed the library name.
R=hausner@google.com, brianwilkerson@google.com
BUG=
Review-Url: https://codereview.chromium.org/2691903007 .
Mark language/vm/causal_async_exception_stack2_test as failing
Skip co19 spawnUri_A01_t06 test as it is racy.
BUG=
Review-Url: https://codereview.chromium.org/2696003002 .
UX improvements:
- [x] Stop printing the suffix <%s_async_body> and <%s_async_gen_body> for the generated closures.
Fixes#28743
- [x] Don't include the duplicate frame below the asynchronous suspension marker.
Fixes#28742
Bug fixes:
- [x] Fix service protocol enum naming so that it is consistent with other enums.
Fixes#28726
Misc:
- [x] Stop using package:stack_trace now that the VM does it for us.
BUG=
R=asiva@google.com, devoncarew@google.com, rmacnak@google.com
Review-Url: https://codereview.chromium.org/2690683002 .
Also fix stack trace collection to always include invisible frames. It can happen that a visible function is inlined into an invisible function, and we don't expand inlined frames until we print a stack trace.
dart2js product x64:
compile time: 12.459s
VMIsolate(CodeSize): 152292
Isolate(CodeSize): 3343117
ReadOnlyData(CodeSize): 3728928
Instructions(CodeSize): 8677600
Total(CodeSize): 15901937
->
compile time: 14.195s (+13%)
VMIsolate(CodeSize): 174034
Isolate(CodeSize): 3892418 (+16%)
ReadOnlyData(CodeSize): 5036320 (+35%)
Instructions(CodeSize): 8682624
Total(CodeSize): 17785396 (+12%)
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2687143005 .
This CL improves the stack traces that accompany exceptions. Whenever an
async function is entered, we remember how we got there. This is similar
in spirit to package:stack_trace but the implementation is more efficient
and memory usage can be more easily reasoned about.
Tracking causal stack traces:
- [x] Upon entry to an async function, capture the synchronous stack trace prefix and store it into the closure.
- [x] Upon entry to an async* function, capture the synchronous stack trace prefix and store it into the closure.
- [x] Before returning from an async function, clear the Thread's asynchronous stack trace.
- [x] After resuming an async function, load the sychronous stack trace prefix into the Thread.
- [x] Filter stack traces to remove async machinery.
Service protocol changes:
- [x] Send causal async stack trace.
Observatory changes:
- [x] Display causal async stack trace below async functions.
Fixes https://github.com/dart-lang/sdk/issues/27661R=asiva@google.com, rmacnak@google.com
Comparisons: https://docs.google.com/a/google.com/document/d/10r6jEqr8OCiDZ4y9SYU_uOimcHiOGAZMly2ghTErALI/edit?usp=sharing
Review-Url: https://codereview.chromium.org/2646443005 .
When referring to constants via a deferred prefix in an await expression
the transformation must make sure that the generated code before and after
the deferred load agree on the number of captured variables. (i.e. the number
of await-temp variables introduced by the await-transformer is the same)
This CL uses a temporary in the case of compile-time constants, because before
the deferred load, a reference lib.C is translated into a static getter which
also requires a temporary.
Fixes#28678R=hausner@google.com
Review-Url: https://codereview.chromium.org/2683973002 .
Test deep_nesting2_negative_test crashes dart2js in host_checked mode.
This might be related to the Fasta front-end.
BUG=#28597
TBR
Review-Url: https://codereview.chromium.org/2668983002 .