From 2e0ec12e62ea2b4b981590edb7f2a57785e8a75b Mon Sep 17 00:00:00 2001 From: Aske Simon Christensen Date: Wed, 20 May 2020 07:37:11 +0000 Subject: [PATCH] [vm] Inline isErrorState to avoid calls in central UTF-8 decoding loop. Benchmarks show a slight speed improvement (1-2% on average) for ARM JIT targets and differences below noise level for other targets. Change-Id: I2f862b643fa5fd601f75c397dea4e9ed6914fc91 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/148525 Reviewed-by: Martin Kustermann Commit-Queue: Aske Simon Christensen --- sdk/lib/convert/utf.dart | 1 + sdk_nnbd/lib/convert/utf.dart | 1 + 2 files changed, 2 insertions(+) diff --git a/sdk/lib/convert/utf.dart b/sdk/lib/convert/utf.dart index 163ec82b298..c19bb37e90b 100644 --- a/sdk/lib/convert/utf.dart +++ b/sdk/lib/convert/utf.dart @@ -493,6 +493,7 @@ class _Utf8Decoder { static const int errorSurrogate = E6; static const int errorUnfinished = E7; + @pragma("vm:prefer-inline") static bool isErrorState(int state) => (state & 1) != 0; static String errorDescription(int state) { diff --git a/sdk_nnbd/lib/convert/utf.dart b/sdk_nnbd/lib/convert/utf.dart index 69f490fa23b..c74f918cfb7 100644 --- a/sdk_nnbd/lib/convert/utf.dart +++ b/sdk_nnbd/lib/convert/utf.dart @@ -494,6 +494,7 @@ class _Utf8Decoder { static const int errorSurrogate = E6; static const int errorUnfinished = E7; + @pragma("vm:prefer-inline") static bool isErrorState(int state) => (state & 1) != 0; static String errorDescription(int state) {