Daco Harkes
04c1a2886f
[vm/ffi] SimDBC64 align stack frame
...
And regression test for dartbug.com/37069
Fixes: https://github.com/dart-lang/sdk/issues/37176
Follow up of: https://dart-review.googlesource.com/c/sdk/+/103814
Bug: https://github.com/dart-lang/sdk/issues/37069
Change-Id: I066561b487c691952496e2ca6878ac82cee0e02e
Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try, app-kernel-linux-debug-x64-try, vm-kernel-linux-debug-simdbc64-try,vm-kernel-mac-debug-simdbc64-try,vm-kernel-reload-mac-debug-simdbc64-try,vm-kernel-linux-debug-ia32-try,vm-dartkb-linux-debug-simarm64-try,vm-kernel-win-debug-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105941
Commit-Queue: Daco Harkes <dacoharkes@google.com >
Reviewed-by: Samir Jindel <sjindel@google.com >
2019-06-13 16:26:40 +00:00
Samir Jindel
68b2d53da5
Revert "[vm/ffi] SimDBC64 align stack frame"
...
This reverts commit f1038ee771 .
Reason for revert: breaks function_gc_test on ARM64
Original change's description:
> [vm/ffi] SimDBC64 align stack frame
>
> And regression test for dartbug.com/37069
>
> Fixes: https://github.com/dart-lang/sdk/issues/37176
> Follow up of: https://dart-review.googlesource.com/c/sdk/+/103814
> Bug: https://github.com/dart-lang/sdk/issues/37069
> Change-Id: I2c791271f936580d66a48485a60ab6cddb1ba4f8
> Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try, app-kernel-linux-debug-x64-try, vm-kernel-linux-debug-simdbc64-try,vm-kernel-mac-debug-simdbc64-try,vm-kernel-reload-mac-debug-simdbc64-try,vm-kernel-linux-debug-ia32-try,vm-dartkb-linux-debug-simarm64-try,vm-kernel-win-debug-x64-try
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104824
> Commit-Queue: Daco Harkes <dacoharkes@google.com >
> Reviewed-by: Samir Jindel <sjindel@google.com >
TBR=sjindel@google.com ,dacoharkes@google.com
Change-Id: Ibefa2e854f4a58b41384aca73a3bbbe86d75bf80
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: https://github.com/dart-lang/sdk/issues/37069
Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try, app-kernel-linux-debug-x64-try, vm-kernel-linux-debug-simdbc64-try, vm-kernel-mac-debug-simdbc64-try, vm-kernel-reload-mac-debug-simdbc64-try, vm-kernel-linux-debug-ia32-try, vm-dartkb-linux-debug-simarm64-try, vm-kernel-win-debug-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105840
Reviewed-by: Samir Jindel <sjindel@google.com >
Commit-Queue: Samir Jindel <sjindel@google.com >
2019-06-12 22:31:11 +00:00
Daco Harkes
f1038ee771
[vm/ffi] SimDBC64 align stack frame
...
And regression test for dartbug.com/37069
Fixes: https://github.com/dart-lang/sdk/issues/37176
Follow up of: https://dart-review.googlesource.com/c/sdk/+/103814
Bug: https://github.com/dart-lang/sdk/issues/37069
Change-Id: I2c791271f936580d66a48485a60ab6cddb1ba4f8
Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try, app-kernel-linux-debug-x64-try, vm-kernel-linux-debug-simdbc64-try,vm-kernel-mac-debug-simdbc64-try,vm-kernel-reload-mac-debug-simdbc64-try,vm-kernel-linux-debug-ia32-try,vm-dartkb-linux-debug-simarm64-try,vm-kernel-win-debug-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104824
Commit-Queue: Daco Harkes <dacoharkes@google.com >
Reviewed-by: Samir Jindel <sjindel@google.com >
2019-06-12 16:25:34 +00:00
Samir Jindel
8cbb11cc55
[vm/ffi] FFI callbacks on ARM32.
...
Please see go/dart-ffi-callbacks for design context and motivation.
Change-Id: Ie5edcb8837157c679954a670fb19d545e22fec69
Cq-Include-Trybots: luci.dart.try:vm-kernel-linux-debug-simdbc64-try, vm-kernel-linux-release-simdbc64-try, vm-kernel-mac-debug-simdbc64-try, vm-kernel-mac-release-simdbc64-try, vm-kernel-reload-mac-debug-simdbc64-try, vm-kernel-reload-mac-release-simdbc64-try, vm-kernel-linux-debug-ia32-try, vm-dartkb-linux-debug-simarm64-try, vm-kernel-win-debug-ia32-try, vm-ffi-android-debug-arm-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101828
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Aart Bik <ajcbik@google.com >
Reviewed-by: Daco Harkes <dacoharkes@google.com >
2019-06-03 14:36:04 +00:00
Samir Jindel
afc54e23e3
[vm/ffi] FFI callbacks on ARM64.
...
For design context and motivation, see go/dart-ffi-callbacks
Change-Id: Ie463a462c8676c4a1973f377acee067253aca9f0
Cq-Include-Trybots: luci.dart.try:vm-kernel-linux-debug-simdbc64-try, vm-kernel-linux-release-simdbc64-try, vm-kernel-mac-debug-simdbc64-try, vm-kernel-mac-release-simdbc64-try, vm-kernel-reload-mac-debug-simdbc64-try, vm-kernel-reload-mac-release-simdbc64-try, vm-kernel-linux-debug-ia32-try, vm-dartkb-linux-debug-simarm64-try, vm-kernel-win-debug-ia32-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101825
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Aart Bik <ajcbik@google.com >
Reviewed-by: Daco Harkes <dacoharkes@google.com >
2019-05-27 11:05:18 +00:00
Samir Jindel
0a5e5995e8
[vm/ffi] FFI callbacks on IA32.
...
Second part of implementing FFI callbacks, see go/dart-ffi-callbacks for design context.
Change-Id: Ibe8195e8cb40e0c1932b179fbc6df2b9668e2fa2
Cq-Include-Trybots: luci.dart.try:vm-kernel-linux-debug-simdbc64-try, vm-kernel-linux-release-simdbc64-try, vm-kernel-mac-debug-simdbc64-try, vm-kernel-mac-release-simdbc64-try, vm-kernel-reload-mac-debug-simdbc64-try, vm-kernel-reload-mac-release-simdbc64-try, vm-kernel-linux-debug-ia32-try, vm-dartkb-linux-debug-simarm64-try, vm-kernel-win-debug-ia32-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100582
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Aart Bik <ajcbik@google.com >
Reviewed-by: Daco Harkes <dacoharkes@google.com >
2019-05-27 10:49:48 +00:00
Samir Jindel
225a301637
[vm/ffi] Re-land "[vm/ffi] FFI callbacks on X64."
...
There are minor fixes for dartkb and windows.
The original revision is in patchset 1.
Change-Id: I9ab6e5fdb33fb4e84ea520c283fe94323616a8ce
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103129
Commit-Queue: Samir Jindel <sjindel@google.com >
Auto-Submit: Samir Jindel <sjindel@google.com >
Reviewed-by: Daco Harkes <dacoharkes@google.com >
2019-05-24 02:39:13 +00:00
Samir Jindel
ed169c4bb0
Revert "[vm/ffi] FFI callbacks on X64."
...
This reverts commit be209f7846 .
Reason for revert: failures on dartkb and windows bots
Original change's description:
> [vm/ffi] FFI callbacks on X64.
>
> For context on the design, see go/dart-ffi-callbacks
>
> Change-Id: I2482e3c932e73f9a4c00fa7e218ff85f9328fc51
> Cq-Include-Trybots: luci.dart.try:vm-kernel-linux-debug-simdbc64-try, vm-kernel-linux-release-simdbc64-try, vm-kernel-mac-debug-simdbc64-try, vm-kernel-mac-release-simdbc64-try, vm-kernel-reload-mac-debug-simdbc64-try, vm-kernel-reload-mac-release-simdbc64-try, vm-kernel-linux-debug-ia32-try, vm-dartkb-linux-debug-simarm64-try
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100240
> Commit-Queue: Samir Jindel <sjindel@google.com >
> Reviewed-by: Daco Harkes <dacoharkes@google.com >
TBR=sjindel@google.com ,ajcbik@google.com ,dacoharkes@google.com
Change-Id: I4cb3d93675d68a51ac9e125ad1d572c47e8b5903
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Cq-Include-Trybots: luci.dart.try:vm-kernel-linux-debug-simdbc64-try, vm-kernel-linux-release-simdbc64-try, vm-kernel-mac-debug-simdbc64-try, vm-kernel-mac-release-simdbc64-try, vm-kernel-reload-mac-debug-simdbc64-try, vm-kernel-reload-mac-release-simdbc64-try, vm-kernel-linux-debug-ia32-try, vm-dartkb-linux-debug-simarm64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102983
Reviewed-by: Samir Jindel <sjindel@google.com >
Commit-Queue: Samir Jindel <sjindel@google.com >
2019-05-18 15:29:19 +00:00
Samir Jindel
be209f7846
[vm/ffi] FFI callbacks on X64.
...
For context on the design, see go/dart-ffi-callbacks
Change-Id: I2482e3c932e73f9a4c00fa7e218ff85f9328fc51
Cq-Include-Trybots: luci.dart.try:vm-kernel-linux-debug-simdbc64-try, vm-kernel-linux-release-simdbc64-try, vm-kernel-mac-debug-simdbc64-try, vm-kernel-mac-release-simdbc64-try, vm-kernel-reload-mac-debug-simdbc64-try, vm-kernel-reload-mac-release-simdbc64-try, vm-kernel-linux-debug-ia32-try, vm-dartkb-linux-debug-simarm64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100240
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Daco Harkes <dacoharkes@google.com >
2019-05-18 06:15:46 +00:00
Daco Harkes
b2949d3436
fix Flutter build for "[vm/ffi] DBC support on x64 Linux/MacOS hosts"
...
Change-Id: I119776682e53f70f621107f2159670cb3e75b310
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101982
Reviewed-by: Daco Harkes <dacoharkes@google.com >
2019-05-09 12:19:21 +00:00
Daco Harkes
a8b93d9e78
[vm/ffi] DBC support on x64 Linux/MacOS hosts
...
Issue: https://github.com/dart-lang/sdk/issues/35773
Change-Id: Ib58fb8df6c5c18e604fbf2a156ab69025e5f57d7
Cq-Include-Trybots: luci.dart.try:vm-kernel-linux-debug-simdbc64-try, vm-kernel-linux-release-simdbc64-try, vm-kernel-mac-debug-simdbc64-try, vm-kernel-mac-release-simdbc64-try, vm-kernel-reload-mac-debug-simdbc64-try, vm-kernel-reload-mac-release-simdbc64-try, vm-kernel-linux-debug-ia32-try, vm-dartkb-linux-debug-simarm64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97221
Reviewed-by: Samir Jindel <sjindel@google.com >
Commit-Queue: Daco Harkes <dacoharkes@google.com >
2019-05-09 11:46:03 +00:00
Matthew Dempsky
4ce3aa7af1
[vm] Replace ^= assignments with = where possible
...
Change-Id: I04ac2e9c4b8bb654b7c660e728be3867aa4e1513
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100923
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Matthew Dempsky <mdempsky@google.com >
2019-05-01 00:04:44 +00:00
Samir Jindel
f4e63990cb
[vm/ffi] Support FFI on ARM32.
...
Fixes dartbug.com/36311.
Addresses dartbug.com/35760.
Change-Id: Ib6c4db69f31dfb5317e4162b80d3e30a996e3a2e
Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try,vm-ffi-android-release-arm-try,vm-ffi-android-product-arm-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97631
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Daco Harkes <dacoharkes@google.com >
2019-04-10 13:15:16 +00:00
Samir Jindel
b032f1b284
[vm] Support FFI on 32-bit Intel.
...
Change-Id: I08acf6ef00e899f95dbaf2de36f1aea5e6e7ea3d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97108
Reviewed-by: Daco Harkes <dacoharkes@google.com >
Reviewed-by: Aart Bik <ajcbik@google.com >
2019-03-20 17:45:23 +00:00
Samir Jindel
85f8d3c047
[vm] Build FFI trampolines with IL.
...
Bugs fixed: dartbug.com/36033, dartbug.com/36034, dartbug.com/36155.
Change-Id: Ic463dd2d299018e03f840ecedc8b7dfa350c6b95
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/94860
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Daco Harkes <dacoharkes@google.com >
Reviewed-by: Aart Bik <ajcbik@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
2019-03-15 12:38:54 +00:00
Daco Harkes
a43c525de2
Reland "[vm/ffi] Support Windows 64 bit"
...
Enables dart:ffi on Windows 64 bit.
Note that function_stress_test.dart fails in two different ways, these are known bugs. https://github.com/dart-lang/sdk/issues/36138
Relanding: Fixed compilation on Android.
Closes: https://github.com/dart-lang/sdk/issues/35771
Change-Id: I7d0c8b64ca8c1726b7d264d4fd9213299a9f7df6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96781
Reviewed-by: Martin Kustermann <kustermann@google.com >
Commit-Queue: Daco Harkes <dacoharkes@google.com >
2019-03-13 11:47:37 +00:00
Vyacheslav Egorov
23eb57c2bf
Revert "[vm/ffi] Support Windows 64 bit"
...
This reverts commit 7f812dea1a .
Reason for revert: Flutter build is broken on Golem.
Original change's description:
> [vm/ffi] Support Windows 64 bit
>
> Enables dart:ffi on Windows 64 bit.
>
> Note that function_stress_test.dart fails in two different ways, these are known bugs. https://github.com/dart-lang/sdk/issues/36138
>
> Closes: https://github.com/dart-lang/sdk/issues/35771
> Change-Id: I73012123f2bd90b737fdc1c87c9a9630c20d5660
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95647
> Commit-Queue: Daco Harkes <dacoharkes@google.com >
> Reviewed-by: Samir Jindel <sjindel@google.com >
> Reviewed-by: Martin Kustermann <kustermann@google.com >
TBR=kustermann@google.com ,sjindel@google.com ,dacoharkes@google.com
Change-Id: I5be4538e3c99632a852e4dfb856248eb437fb3ea
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96683
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Commit-Queue: Vyacheslav Egorov <vegorov@google.com >
2019-03-12 19:55:17 +00:00
Daco Harkes
7f812dea1a
[vm/ffi] Support Windows 64 bit
...
Enables dart:ffi on Windows 64 bit.
Note that function_stress_test.dart fails in two different ways, these are known bugs. https://github.com/dart-lang/sdk/issues/36138
Closes: https://github.com/dart-lang/sdk/issues/35771
Change-Id: I73012123f2bd90b737fdc1c87c9a9630c20d5660
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95647
Commit-Queue: Daco Harkes <dacoharkes@google.com >
Reviewed-by: Samir Jindel <sjindel@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2019-03-12 17:30:26 +00:00
Samir Jindel
bdb07f4a1f
[vm/ffi] Fix garbage collection of ffi.Pointer subtypes.
...
Fixes https://github.com/dart-lang/sdk/issues/36125 .
Change-Id: Ib9069d1e15684c785b86954ed8c14e5fdde35fec
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95652
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Daco Harkes <dacoharkes@google.com >
2019-03-07 15:56:08 +00:00
Samir Jindel
f0042a3225
[vm/ffi] Factor out FFI code shared between compiler and runtime.
...
Change-Id: I0b4af9cb36fd5ebc163621951486333a68baa890
Reviewed-on: https://dart-review.googlesource.com/c/93503
Commit-Queue: Samir Jindel <sjindel@google.com >
Auto-Submit: Samir Jindel <sjindel@google.com >
Reviewed-by: Daco Harkes <dacoharkes@google.com >
2019-02-26 12:48:32 +00:00
Martin Kustermann
d3fde891bf
[VM] Fix deadlock between mutator and BG compiler
...
Here's how the deadlock can happen:
* The vm-service background compiler asks all threads to go to a
safepoint before it finalizes the code. Then it finalizes the
code and notifies code observers. A code observer posts a
message to the vm-service. Posting this message requires holding the
monitor of the receiving isolate's message handler (see
MessageHandler::PostMessage).
* The vm-service mutator holds it's message handlers monitor and
enters the isolate (see MessageHandler::HandleMessages). The
StartIsolateScope schedules the mutator thread, which will in return
see that BG compiler wants to safepoint, so it waits for BG compiler
to finish.
At this point the mutator holds the MessageHandler's monitor and waits
for BG compiler to finish safepoint. The BG compiler tries to post a
message to the message handler (and the monitor is locked).
-> This CL ensures the BG compiler only arranges a safepoint before it
starts creating the instructions object. It fills it in and exits the
safepoint again. Only then do we notify code observers.
Furthermore this CL ensures we transition out of VM to native state
before calling the Dart_PostCMessage() function.
Change-Id: I5320440d54ca303a1ccc7556600a42d37cd6e1de
Reviewed-on: https://dart-review.googlesource.com/c/93421
Commit-Queue: Martin Kustermann <kustermann@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
2019-02-19 14:00:04 +00:00
Daco Harkes
a85ae4e919
[vm/ffi] fix sizeOf on subtypes of Pointer
...
Change-Id: I9f1f0c6fc618039e0c50d0a70460e1d66d568bca
Reviewed-on: https://dart-review.googlesource.com/c/93502
Auto-Submit: Daco Harkes <dacoharkes@google.com >
Reviewed-by: Samir Jindel <sjindel@google.com >
Commit-Queue: Samir Jindel <sjindel@google.com >
2019-02-19 12:57:04 +00:00
Daco Harkes
7d46d4b5cb
[vm / library] Foreign function interface prototype
...
Prototype for `dart:ffi` on Linux/MacOS x64 in JIT mode.
`dart:ffi` is experimental and its API is likely to change in the future.
Progress and design decisions are tracked in https://github.com/dart-lang/sdk/projects/13
issue: https://github.com/dart-lang/sdk/issues/34452
Change-Id: Ifa4566388e42c8757f154741d11e303465ef305d
Cq-Include-Trybots: luci.dart.try:vm-kernel-optcounter-threshold-linux-release-x64-try, vm-kernel-precomp-linux-debug-x64-try, vm-kernel-precomp-linux-release-simarm-try, vm-kernel-precomp-linux-release-simarm64-try, vm-kernel-precomp-linux-release-x64-try, vm-kernel-precomp-mac-release-simarm64-try, vm-kernel-precomp-win-release-x64-try, vm-kernel-mac-debug-x64-try, vm-kernel-asan-linux-release-x64
Reviewed-on: https://dart-review.googlesource.com/c/80124
Reviewed-by: Samir Jindel <sjindel@google.com >
Auto-Submit: Daco Harkes <dacoharkes@google.com >
2019-02-13 12:42:47 +00:00