[wasm] Restore inlining of DecodeLocalGet

The recently added experimental support for non-nullable locals
(https://chromium-review.googlesource.com/c/v8/v8/+/3010283) made
DecodeLocalGet slightly bigger, which caused Clang not to inline
it any more, which has a measurable performance impact because this
is one of the hottest decoding functions. Forcibly inlining it
fixes the regression.

Bug: chromium:1227332
Change-Id: Ifb85f7f5a43ad1c0376bbf37e4af84fb4903371f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3018206
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75676}
This commit is contained in:
Jakob Kummerow 2021-07-12 10:59:20 +02:00 committed by V8 LUCI CQ
parent 930fb2e972
commit a73ce1d09e

View File

@ -3121,7 +3121,7 @@ class WasmFullDecoder : public WasmDecoder<validate, decoding_mode> {
}
}
DECODE(LocalGet) {
V8_INLINE DECODE(LocalGet) {
IndexImmediate<validate> imm(this, this->pc_ + 1, "local index");
if (!this->ValidateLocal(this->pc_ + 1, imm)) return 0;
if (!VALIDATE(!this->enabled_.has_nn_locals() ||