Skip to content

Commit fc93331

Browse files
dcharkescommit-bot@chromium.org
authored andcommitted
[vm] Allow inlining of force optimized functions in AoT
Speeds up the FfiMemory benchmarks by a factor of 3 in AoT. Issue: #38172 Change-Id: Ic6d920e27ff905a7e08c47f4afb229d8620068ec Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64-try,app-kernel-linux-debug-x64-try,vm-kernel-linux-debug-ia32-try,vm-dartkb-linux-debug-simarm64-try,vm-kernel-win-debug-x64-try,vm-kernel-win-debug-ia32-try,vm-dartkb-linux-debug-x64-try,vm-kernel-precomp-linux-debug-x64-try,vm-dartkb-linux-release-x64-abi-try,vm-kernel-precomp-android-release-arm64-try,vm-kernel-asan-linux-release-x64-try,vm-kernel-linux-release-simarm-try,vm-kernel-linux-release-simarm64-try,vm-kernel-precomp-android-release-arm_x64-try,vm-kernel-reload-mac-release-simdbc64-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,vm-kernel-reload-rollback-linux-debug-x64-try,vm-kernel-precomp-mac-release-simarm_x64-try,dart-sdk-linux-try,flutter-engine-linux-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121580 Commit-Queue: Daco Harkes <[email protected]> Reviewed-by: Martin Kustermann <[email protected]>
1 parent ba9d61a commit fc93331

File tree

2 files changed

+2
-1
lines changed

2 files changed

+2
-1
lines changed

runtime/vm/compiler/backend/range_analysis.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2773,6 +2773,7 @@ static RangeBoundary::RangeSize RepresentationToRangeSize(Representation r) {
27732773
case kUnboxedInt32:
27742774
return RangeBoundary::kRangeBoundaryInt32;
27752775
case kUnboxedInt64:
2776+
case kUnboxedUint32: // Overapproximate Uint32 as Int64.
27762777
return RangeBoundary::kRangeBoundaryInt64;
27772778
default:
27782779
UNREACHABLE();

runtime/vm/object.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6709,7 +6709,7 @@ bool Function::CanBeInlined() const {
67096709
// functions cannot deoptimize to unoptimized frames we prevent them from
67106710
// being inlined (for now).
67116711
if (ForceOptimize()) {
6712-
return false;
6712+
return FLAG_precompiled_mode;
67136713
}
67146714
#if defined(PRODUCT)
67156715
return is_inlinable() && !is_external() && !is_generated_body();

0 commit comments

Comments
 (0)