[llvm] [GlobalISel] Optimize ULEB128 usage (PR #90565)
Pierre van Houtryve via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 30 05:29:05 PDT 2024
================
@@ -713,6 +713,27 @@ class GIMatchTableExecutor {
memcpy(&Ret, MatchTable, sizeof(Ret));
return Ret;
}
+
+public:
+ // Faster ULEB128 decoder tailored for the Match Table Executor.
+ //
+ // - Arguments are fixed to avoid mid-function checks.
+ // - Unchecked execution, assumes no error.
+ // - Fast common case handling (1 byte values).
+ LLVM_ATTRIBUTE_ALWAYS_INLINE static uint64_t
+ fastDecodeULEB128(const uint8_t *__restrict MatchTable,
----------------
Pierre-vh wrote:
Upon closer inspection the branch it avoids is just meaningless, in the fast path it just falls through so it's fine to remove restrict
https://github.com/llvm/llvm-project/pull/90565
More information about the llvm-commits
mailing list