Ryan Macnak
6fe15f6df9
[vm] Represent tagged pointers as C++ value types instead of C++ pointer types.
...
This works around bugs in UndefinedBehaviorSanitizer and Clang.
Bug: b/28638298
Change-Id: I6be595f9664516019d28017d24559583a1ae3a21
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/144354
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
2020-04-25 05:21:27 +00:00
Alexander Markov
69791c50f8
[vm/nnbd] Use InitInstanceField instruction for late instance fields
...
Fixes https://github.com/dart-lang/sdk/issues/41299
Issue https://github.com/dart-lang/sdk/issues/41417
Change-Id: I1219ddaffcf3a2b17226305eeea8455c73f4ca78
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143189
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2020-04-20 23:30:14 +00:00
Vyacheslav Egorov
beb7114861
[vm/compiler] Add check to prevent inclusion of compiler headers into AOT runtime
...
This relands commit b0a71d364c
Cq-Include-Trybots: dart/try:vm-kernel-precomp-linux-release-simarm64-try,vm-kernel-precomp-linux-release-simarm-try,vm-kernel-linux-release-simarm64-try,vm-kernel-linux-release-simarm-try,vm-kernel-precomp-linux-release-x64-try
Change-Id: I1d32e5d0d44f4e422d188643b548ed81859f7d74
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143807
Commit-Queue: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
2020-04-17 13:11:08 +00:00
Alexander Aprelev
c7861f309f
Revert "[vm/compiler] Add check to prevent inclusion of compiler headers into AOT runtime"
...
This reverts commit b0a71d364c as it broke precomp builds.
Change-Id: Ieb776739b8d3e9ac74794e05fc20a793625e5f09
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143865
Commit-Queue: Alexander Aprelev <aam@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2020-04-16 23:51:09 +00:00
Vyacheslav Egorov
b0a71d364c
[vm/compiler] Add check to prevent inclusion of compiler headers into AOT runtime
...
#if defined(DART_PRECOMPILED_RUNTIME)
#error "AOT runtime should not use compiler sources (including header files)"
#endif // defined(DART_PRECOMPILED_RUNTIME)
Remove #if defined(DART_PRECOMPILED_RUNTIME) from most compiler sources.
Change-Id: Id175c83fdbea38d9d5e1371ff433e3888f2afe8a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143523
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2020-04-16 22:59:03 +00:00
Alexander Markov
d5c38cd354
[vm/nnbd] Use InitStaticField instruction for late static fields
...
Issue: https://github.com/dart-lang/sdk/issues/41299
Issue: https://github.com/dart-lang/sdk/issues/41417
Issue: https://github.com/dart-lang/sdk/issues/40796
Change-Id: Ibcc0ea55c6262ccafdda6c3fb1b28f357297c1de
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143100
Reviewed-by: Martin Kustermann <kustermann@google.com >
Reviewed-by: Liam Appelbe <liama@google.com >
Benchmark: Vyacheslav Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2020-04-15 20:04:34 +00:00
Liam Appelbe
b504faaefc
[vm] Stop storing to temp in LoadLateField
...
Use an expression temp instead.
Change-Id: Ifa1de272a90448f376bdcac88b0c458c0ddd21b4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134088
Commit-Queue: Liam Appelbe <liama@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2020-01-31 23:45:42 +00:00
Alexander Markov
07a63a17a4
[vm,aot,bytecode] Handle procedure-attributes metadata when generating bytecode
...
Change-Id: I26e1a15d979ce13ca60298de28ced49b6882cf52
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119765
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
2019-10-03 16:27:33 +00:00
Alexander Markov
8ad0832bcb
[vm/bytecode] Use static types of parameters when compiling from bytecode
...
Change-Id: Iefcad78db4bd05542ff5c05ebf298bfa6154810f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/115773
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
Reviewed-by: Aart Bik <ajcbik@google.com >
2019-09-06 21:04:09 +00:00
Ryan Macnak
2be92b08c2
[vm] Remove more of the Dart 1 compiler.
...
Change-Id: Ib00e040f44275b9437e7fc622bf285607f4e4124
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105681
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2019-06-12 01:00:29 +00:00
Ryan Macnak
d9c40462c2
[vm] Rename kImplicitStaticFinalGetter to kImplicitStaticGetter.
...
This function kind is used for any static field with an initializer. It has nothing to do with whether the field is final.
Change-Id: I3faa2d2d77fd4bbd801624bc0bba88476b8f3cb0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99622
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2019-04-17 00:47:15 +00:00
Ryan Macnak
144bfdfce6
[vm] Use a separate kind tag for static field initializers.
...
This is preparation for handling implicit static getters as a bytecode.
Change-Id: Ic9fd186161d900c3b4c0bb773726b0cd0f35451e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99105
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2019-04-15 22:54:36 +00:00
Alexander Markov
61f0f5bc43
[vm/bytecode] Declare members in bytecode
...
This change replaces kernel AST declarations of fields and functions
with bytecode declarations.
Size of dilp files is reduced by 11-12%.
Startup latency:
Time to the first full frame: 1.945s -> 1.687s
FinalizeClass: 554ms -> 277ms
FinishClassLoading: 296ms -> 156ms
There are following regressions in bytecode mode, which will be fixed
in future:
* dart:mirrors are not supported yet (implementation of mirrors relies
on reading kernel AST in certain cases).
As the result, lib_2/mirrors/* tests fail.
* native extensions are not supported yet (annotations on libraries
and classes in AST are cleaned up as they could reference members
which are now removed from AST).
As the result, standalone_2/entrypoints_verification_test test fails.
* language_2/spread_collections/const_error_test/* tests fail
due to https://github.com/dart-lang/sdk/issues/36286 .
Change-Id: I5130f401fd7b84038b136136e7ccc1a6e51b6cea
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97561
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2019-03-26 21:40:10 +00:00