[all-commits] [llvm/llvm-project] ed299b: [GlobalISel] Optimize ULEB128 usage (#90565)

Pierre van Houtryve via All-commits all-commits at lists.llvm.org
Fri May 3 01:27:15 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ed299b3efd669c02fa37773d1ae49fca3556f729
      https://github.com/llvm/llvm-project/commit/ed299b3efd669c02fa37773d1ae49fca3556f729
  Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
  Date:   2024-05-03 (Fri, 03 May 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/GlobalISel/GIMatchTableExecutor.h
    M llvm/include/llvm/CodeGen/GlobalISel/GIMatchTableExecutorImpl.h
    M llvm/include/llvm/Support/Compiler.h
    M llvm/unittests/CodeGen/GlobalISel/CMakeLists.txt
    A llvm/unittests/CodeGen/GlobalISel/GIMatchTableExecutorTest.cpp
    M llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.cpp

  Log Message:
  -----------
  [GlobalISel] Optimize ULEB128 usage (#90565)

- Remove some cases where ULEB128 isn't needed
- Add a fastDecodeULEB128 tailored for GlobalISel which does unchecked
decoding optimized for the common case, which is 1 byte values. We
rarely have >1 byte Inst IDs, OpIdx, etc. and those are the most common
ULEB users by far.

This specific LEB128 decode function generates almost 2x less
instructions than the generic one.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list