We need to relax vm/dart/causal_stacks/async_throws_stack_no_causal_test
Change-Id: I40c08d432afeac839ce4f49bbf48c3707b23ef7f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138804
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Samir Jindel <sjindel@google.com>
In Iteration.deeptree.syncstar benchmark _SyncIterator.moveNext takes
majority of time. If _moveNextFn is cached in a local variable,
then loading a function object out of _moveNextFn closure is hoisted
out of the loop and executed even if _moveNextFn is not called.
The function and cached moveNextFn are also saved to frame.
This extra code results in a slight slowdown of _SyncIterator.moveNext
when _yieldEachIterator != null.
Iteration.deeptree.syncstar(RunTime) 98877 -> 81541 us
(with NNBD core libraries)
Change-Id: Ieac94e106632f9c923eb72d9221bcdecb52fa652
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138609
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Use --debug to switch on observatory, assert checking, and stdout/stderr
passthrough from the analysis server when running dartdev migrate.
Also adds --sdk-path and --server-path options so you have the ability
to run without the snapshot or from the non-NNBD SDK.
Change-Id: I52aba5268e1f8c2fe1d555b5dfb10e8f9133299d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138610
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Janice Collins <jcollins@google.com>
The original revision is in Patchset 3.
Four bugs were fixed:
1. JoinEntryInstr::SuccessorCount() is not the correct way to get the
number of successor blocks from the Join block;
JoinEntryInstr::last_instruction()->SuccessorCount() must be used
instead.
2. BitVector::Equals() was non-deterministically returning 'false'
for equal vectors.
3. All blocks need to be processed at least once during the Analysis
phase (not only in the SaveResults phase).
4. We were not removing write barriers from StoreIndexed instructions,
even though we had support for it.
This reverts commit 7fd8ad5a2d.
Fixes https://github.com/dart-lang/sdk/issues/40780
Change-Id: I9650ec2c547ec49cf88ca0524e14f6c245621f6a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138086
Commit-Queue: Samir Jindel <sjindel@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
I needed to fix AST nodes for parameters to know about the required
token when computing the beginning token and child entities.
Change-Id: Icb0fc27bc1e9f6650376f5870944fb8f592a5e8c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138744
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
This is (intended to be) a small step towards removing the batch compiler.
Change-Id: I201c56b6d33420f91d2f4b989682670cd8d6a387
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138508
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
I created a class to hold the methods that compute feature scores.
I moved more of the code into the feature computer.
I addressed a couple of TODO items.
I implemented a couple of extra ways of viewing the data so that I could
convince myself of the right feature definition for the feature that uses
the context type.
Change-Id: I448eb74e93e854a75be32d2a16ab0b50e295f4a7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138700
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Included change in fileapi_supported_throws_test to sanity test the
change in async_minitest.
Change-Id: I6e6b6b4eb0740ae695a85d4b3c1e2b4f8f63615a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138614
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Mark _isSubtypeOf() as never returning null so we don't have to test the
values it returns. Omits the dart.dtest() calls on the result in the
compiled output.
Change-Id: If9ae3b9f0ee6af83dba9fa2474547cc6d168a5fc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138611
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Avoid checking for legacy, nullable, null and top. These checks should
all return false because if they were true the dispatch would have gone
directly to the as() or _check() methods on LegacyType, NullableType,
Null, DynamicType, and VoidType. Object? is dispatched through
NullableType.
Add is(), as(), and _check() instance methods to VoidType with logic
similar to DynamicType.
Change-Id: Ib28f40605c66fa7e8569ace405eba51035f2079a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138668
Reviewed-by: Mark Zhou <markzipan@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
* adding the bool type changes from dart.dtest to dart.test
* making it positional and not named removes objects creations when calling
wrapType and loading the value is more direct
* marking it @notNull gets rid of dart.test.
Change-Id: Ib372e165b0b4117606a7a96f29e560ea0199aa18
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138669
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
In order to have instance calls with unboxed parameters, all
the possible targets need to be able to those parameters unboxed.
Then, the methods were partitioned according to the class hierarchy,
and the inferred types from TFA are used to determine the parameters
that could be unboxed.
This is done for non-nullable integer and double parameters, and
return value.
dart-aot linux x64:
Bench2D 8.028%
DeltaBlue 4.688%
ParticleSystemPaint 27.79%
Flutter release android-armv8:
velocity_tracker_bench -2.026% (less is better)
flutter_gallery_total_size -0.1460%
flutter_gallery_instructions_size -0.2715%
flutter_gallery_readonlydata_size 0.0539%
Issue https://github.com/dart-lang/sdk/issues/33549
Change-Id: Iedd9b4321c3d78b406ea1708e15c747754433027
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138501
Commit-Queue: Victor Agnez Lima <victoragnez@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Samir Jindel <sjindel@google.com>
This version includes a fix for building with the iOS simulators.
Bug: https://github.com/dart-lang/sdk/issues/39611
Change-Id: I99532e891e57733fd04785c9c2b6e56285a2bb95
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138570
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Chinmay Garde <chinmaygarde@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
The paths in the SourceEdits I was constructing needed to be converted,
and since it wasn't a "new failure," the windows trybot for the previous
CL passed anyway (and didn't include output of what went wrong).
Change-Id: I5bb2a52bf8cf112d6a2dae0b5749d1ae4e900e2a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138575
Auto-Submit: Mike Fairhurst <mfairhurst@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
Towards #40434
Towards #38875Fixes#33834
- Add a shared error message for a non-external constructor.
- Check for non-external non-factory constructors constructors in the JS interop
checks.
- Remove commented out code in Dart2JS that used to handle this check.
- Clean up skipped tests due to the missing static error. The status in
`legacy_status_dart2js.csv` has no behavior impact but is removed for
completeness.
- Add `external` to a few test cases.
- Remove unused dart2js error message.
- Add `annotating` to hardcoded spelling list.
- Ignore missing example for web specific error message.
- Switch some dart2js error expectations to GENERIC since the message is no
longer defined with other dart2js errors.
Non-external synthetic constructors are ignored for now. An upcoming change will
automatically convert these to external.
Change-Id: I3b4a042392826c528689d81c4255f5369a0a7a90
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138043
Commit-Queue: Nate Bosch <nbosch@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
As a side-effect this should result in slightly less stub code when
--use_slow_path is passed.
Note:
Most of the delta is indentation of code now enclosed in:
if (!FLAG_use_slow_path) {...}
Functionally this hoists the flag check out to simply not emit the ASM
that would otherwise ultimately get unconditionally jmp'd over.
Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64-try
Change-Id: I22dad5a33bbd66e0e5ab50517e9d96a278383479
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137781
Commit-Queue: Clement Skau <cskau@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
For a method invocation temps might get allocated for both the receiver
and argument(s) so that:
A().foo(await null)
becomes:
Future<void> tmp0
...
tmp0 = A() // <- Type mismatch.
yield ...
tmp0 = tmp0.foo(:result) // <- Correct type.
This happens because the liveness analysis finds that the (previously
dynamic) temps can be reused.
Unfortunately 121988 added typing information to these temps, which
means they can't be simply reused in all cases.
This fix makes the temps dynamic again (by removing the type) but adds
unsafecasts to all VariableGets to propagate the know type.
Bug: https://github.com/flutter/flutter/issues/51828
Change-Id: I89c82763e0d4f8b102bb55dec3b694d017345517
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138500
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Clement Skau <cskau@google.com>
Use a JavaScript Symbol() for Array rti property. This makes the
property non-enumerable, avoiding making the property visible via
JS-interop.
The code is feature-tested so that IE11 still works with an enumerable
String property.
Bug: 40535
Change-Id: Ic8b64dac5751989fe4b8d023b0626c3db04676c6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137245
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>