c0c7c1ef49
FFI loads and stores via structs can have a TypedData as receiver, so this CL updates those loads to `kMayBeInnerPointer`. This CL adds an IL test to verify that for `Pointer` loads the untagged value is treated correctly as `kCannotBeInnerPointer`. (And adds some prefer-inline pragmas to make some common operations be inlined to avoid allocating `Pointer` objects.) This CL updates the load in the FFI closures to use a load-field. This can also potentially enable not allocating a pointer object when this closure is inlined. TEST=tests/ffi/unwrap_typeddata_generated_test.dart TEST=tests/ffi CoreLibraryReviewExempt: Only adding some pragmas. Change-Id: If687e54c676f275cc849b3fed526a13766ab331a Cq-Include-Trybots: luci.dart.try:vm-aot-android-release-arm64c-try,vm-aot-android-release-arm_x64-try,vm-aot-linux-debug-x64-try,vm-aot-linux-debug-x64c-try,vm-aot-mac-release-arm64-try,vm-aot-mac-release-x64-try,vm-aot-obfuscate-linux-release-x64-try,vm-aot-optimization-level-linux-release-x64-try,vm-aot-win-debug-arm64-try,vm-aot-win-debug-x64-try,vm-appjit-linux-debug-x64-try,vm-asan-linux-release-x64-try,vm-checked-mac-release-arm64-try,vm-eager-optimization-linux-release-ia32-try,vm-eager-optimization-linux-release-x64-try,vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64c-try,vm-ffi-qemu-linux-release-arm-try,vm-ffi-qemu-linux-release-riscv64-try,vm-fuchsia-release-x64-try,vm-kernel-linux-debug-x64-try,vm-kernel-precomp-linux-release-x64-try,vm-linux-debug-ia32-try,vm-linux-debug-x64-try,vm-linux-debug-x64c-try,vm-mac-debug-arm64-try,vm-mac-debug-x64-try,vm-msan-linux-release-x64-try,vm-reload-linux-debug-x64-try,vm-reload-rollback-linux-debug-x64-try,vm-ubsan-linux-release-x64-try,vm-win-debug-arm64-try,vm-win-debug-x64-try,vm-win-release-ia32-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/349241 Reviewed-by: Alexander Markov <alexmarkov@google.com>