[all-commits] [llvm/llvm-project] e1bb7f: [LLVM][TableGen] Parameterize NumToSkip in Decoder...

Rahul Joshi via All-commits all-commits at lists.llvm.org
Mon Apr 21 08:15:29 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e1bb7f6ddec37567230d3e46719aee5bcd268d5a
      https://github.com/llvm/llvm-project/commit/e1bb7f6ddec37567230d3e46719aee5bcd268d5a
  Author: Rahul Joshi <rjoshi at nvidia.com>
  Date:   2025-04-21 (Mon, 21 Apr 2025)

  Changed paths:
    M llvm/lib/Target/AArch64/CMakeLists.txt
    M llvm/test/TableGen/VarLenDecoder.td
    M llvm/test/TableGen/trydecode-emission.td
    M llvm/test/TableGen/trydecode-emission2.td
    M llvm/test/TableGen/trydecode-emission3.td
    M llvm/test/TableGen/trydecode-emission4.td
    M llvm/utils/TableGen/DecoderEmitter.cpp
    M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel

  Log Message:
  -----------
  [LLVM][TableGen] Parameterize NumToSkip in DecoderEmitter  (#136456)

- Add command line option `num-to-skip-size` to parameterize the size of
`NumToSkip` bytes in the decoder table. Default value will be 2, and
targets that need larger size can use 3.
- Keep all existing targets, except AArch64, to use size 2, and change
AArch64 to use size 3 since it run into the "disassembler decoding table
too large" error with size 2.
- Additional fixes on top of earlier revert: mark `decodeNumToSkip` as
static (not necessary anymore as the generated code is now in anonymous
namespace, but doing it for consistency) and incorporate Bazel build
changes from https://github.com/llvm/llvm-project/pull/136212
- Following is a rough reduction in size for the decoder tables by
switching to size 2.

```
Target         Old Size   New Size   % Reduction
================================================
AArch64           153254     153254        0.00
AMDGPU            471566     412805       12.46
ARC                 5724       5061       11.58
ARM                84936      73831       13.07
AVR                 1497       1306       12.76
BPF                 2172       1927       11.28
CSKY               10064       8692       13.63
Hexagon            47967      41965       12.51
Lanai               1108        982       11.37
LoongArch          24446      21621       11.56
MSP430              4200       3716       11.52
Mips               36330      31415       13.53
PPC                31897      28098       11.91
RISCV              37979      32790       13.66
Sparc               8331       7252       12.95
SystemZ            36722      32248       12.18
VE                 48296      42873       11.23
XCore               2590       2316       10.58
Xtensa              3827       3316       13.35
```



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