[llvm] [TableGen][DecoderEmitter] Rework table construction/emission (PR #155889)
Sergei Barannikov via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 16 17:20:14 PDT 2025
s-barannikov wrote:
> What's the size/perf saving here? I presume it's mostly size, rather than perf?
Currently, 12.1% reduction in size total, but more can be achieved in the future, since we now have a data structure we can do optimizations on. Performance should improve proportionally, but it can be more than 12% because the introduced Switch opcode works faster than a series of ExtractField + FilterValue.
<details>
<summary>raw data</summary>
```
| Target | Old | New | Abs Diff | Rel Diff |
| --------- | ------ | ------ | -------- | -------- |
| AArch64 | 106857 | 92427 | -14430 | -13.50% |
| AArch64 | 63 | 58 | -5 | -7.94% |
| AMDGPU | 12 | 12 | 0 | 0.00% |
| AMDGPU | 6052 | 5029 | -1023 | -16.90% |
| AMDGPU | 50472 | 45472 | -5000 | -9.91% |
| AMDGPU | 24 | 22 | -2 | -8.33% |
| AMDGPU | 69 | 64 | -5 | -7.25% |
| AMDGPU | 6158 | 5099 | -1059 | -17.20% |
| AMDGPU | 35890 | 31889 | -4001 | -11.15% |
| AMDGPU | 14303 | 13212 | -1091 | -7.63% |
| AMDGPU | 1528 | 1261 | -267 | -17.47% |
| AMDGPU | 11164 | 10130 | -1034 | -9.26% |
| AMDGPU | 5768 | 5330 | -438 | -7.59% |
| AMDGPU | 124 | 114 | -10 | -8.06% |
| AMDGPU | 6057 | 5021 | -1036 | -17.10% |
| AMDGPU | 193 | 187 | -6 | -3.11% |
| AMDGPU | 307 | 260 | -47 | -15.31% |
| AMDGPU | 4938 | 4345 | -593 | -12.01% |
| AMDGPU | 17481 | 16109 | -1372 | -7.85% |
| AMDGPU | 227 | 189 | -38 | -16.74% |
| AMDGPU | 3136 | 2881 | -255 | -8.13% |
| AMDGPU | 1043 | 972 | -71 | -6.81% |
| AMDGPU | 19855 | 17932 | -1923 | -9.69% |
| AMDGPU | 43483 | 39886 | -3597 | -8.27% |
| AMDGPU | 1524 | 1257 | -267 | -17.52% |
| AMDGPU | 11663 | 10587 | -1076 | -9.23% |
| AMDGPU | 5896 | 5440 | -456 | -7.73% |
| AMDGPU | 608 | 566 | -42 | -6.91% |
| AMDGPU | 78 | 74 | -4 | -5.13% |
| AMDGPU | 24 | 24 | 0 | 0.00% |
| AMDGPU | 5672 | 4716 | -956 | -16.85% |
| AMDGPU | 20077 | 17904 | -2173 | -10.82% |
| AMDGPU | 99 | 87 | -12 | -12.12% |
| AMDGPU | 2324 | 2119 | -205 | -8.82% |
| AMDGPU | 1886 | 1707 | -179 | -9.49% |
| AMDGPU | 6546 | 5523 | -1023 | -15.63% |
| AMDGPU | 54229 | 49095 | -5134 | -9.47% |
| AMDGPU | 13 | 13 | 0 | 0.00% |
| AMDGPU | 9903 | 8714 | -1189 | -12.01% |
| AMDGPU | 247 | 209 | -38 | -15.38% |
| AMDGPU | 83 | 77 | -6 | -7.23% |
| AMDGPU | 1218 | 1060 | -158 | -12.97% |
| AMDGPU | 13 | 13 | 0 | 0.00% |
| AMDGPU | 49 | 47 | -2 | -4.08% |
| AMDGPU | 13586 | 12305 | -1281 | -9.43% |
| AMDGPU | 44 | 40 | -4 | -9.09% |
| ARC | 1056 | 832 | -224 | -21.21% |
| ARC | 2359 | 1871 | -488 | -20.69% |
| ARC | 80 | 70 | -10 | -12.50% |
| ARC | 1109 | 968 | -141 | -12.71% |
| ARM | 5886 | 5252 | -634 | -10.77% |
| ARM | 476 | 423 | -53 | -11.13% |
| ARM | 16946 | 15451 | -1495 | -8.82% |
| ARM | 13621 | 11845 | -1776 | -13.04% |
| ARM | 305 | 279 | -26 | -8.52% |
| ARM | 4934 | 4440 | -494 | -10.01% |
| ARM | 809 | 699 | -110 | -13.60% |
| ARM | 11 | 11 | 0 | 0.00% |
| ARM | 6346 | 5751 | -595 | -9.38% |
| ARM | 621 | 565 | -56 | -9.02% |
| ARM | 509 | 427 | -82 | -16.11% |
| ARM | 43 | 41 | -2 | -4.65% |
| ARM | 241 | 197 | -44 | -18.26% |
| ARM | 360 | 335 | -25 | -6.94% |
| ARM | 1486 | 1366 | -120 | -8.08% |
| ARM | 3902 | 3466 | -436 | -11.17% |
| ARM | 2161 | 1960 | -201 | -9.30% |
| AVR | 1036 | 865 | -171 | -16.51% |
| AVR | 62 | 56 | -6 | -9.68% |
| AVR | 21 | 19 | -2 | -9.52% |
| BPF | 1583 | 1273 | -310 | -19.58% |
| BPF | 222 | 185 | -37 | -16.67% |
| CSKY | 792 | 652 | -140 | -17.68% |
| CSKY | 4014 | 3460 | -554 | -13.80% |
| CSKY | 2128 | 1866 | -262 | -12.31% |
| Hexagon | 22424 | 19309 | -3115 | -13.89% |
| Hexagon | 9675 | 8383 | -1292 | -13.35% |
| Hexagon | 1900 | 1687 | -213 | -11.21% |
| Hexagon | 363 | 317 | -46 | -12.67% |
| Hexagon | 27 | 25 | -2 | -7.41% |
| Hexagon | 218 | 188 | -30 | -13.76% |
| Hexagon | 27 | 25 | -2 | -7.41% |
| Hexagon | 123 | 109 | -14 | -11.38% |
| Lanai | 910 | 743 | -167 | -18.35% |
| LoongArch | 20037 | 16007 | -4030 | -20.11% |
| M68k | 11721 | 10004 | -1717 | -14.65% |
| Mips | 426 | 352 | -74 | -17.37% |
| Mips | 346 | 305 | -41 | -11.85% |
| Mips | 349 | 298 | -51 | -14.61% |
| Mips | 29 | 27 | -2 | -6.90% |
| Mips | 41 | 35 | -6 | -14.63% |
| Mips | 450 | 375 | -75 | -16.67% |
| Mips | 4648 | 3849 | -799 | -17.19% |
| Mips | 23 | 21 | -2 | -8.70% |
| Mips | 243 | 208 | -35 | -14.40% |
| Mips | 306 | 257 | -49 | -16.01% |
| Mips | 2321 | 1960 | -361 | -15.55% |
| Mips | 73 | 65 | -8 | -10.96% |
| Mips | 12152 | 10270 | -1882 | -15.49% |
| Mips | 37 | 33 | -4 | -10.81% |
| Mips | 1764 | 1496 | -268 | -15.19% |
| Mips | 151 | 135 | -16 | -10.60% |
| Mips | 23 | 21 | -2 | -8.70% |
| Mips | 183 | 159 | -24 | -13.11% |
| Mips | 31 | 29 | -2 | -6.45% |
| Mips | 910 | 778 | -132 | -14.51% |
| Mips | 23 | 21 | -2 | -8.70% |
| Mips | 1186 | 1037 | -149 | -12.56% |
| MSP430 | 271 | 222 | -49 | -18.08% |
| MSP430 | 90 | 74 | -16 | -17.78% |
| MSP430 | 264 | 217 | -47 | -17.80% |
| MSP430 | 253 | 207 | -46 | -18.18% |
| MSP430 | 253 | 207 | -46 | -18.18% |
| MSP430 | 253 | 207 | -46 | -18.18% |
| MSP430 | 471 | 375 | -96 | -20.38% |
| MSP430 | 429 | 339 | -90 | -20.98% |
| MSP430 | 563 | 467 | -96 | -17.05% |
| MSP430 | 541 | 447 | -94 | -17.38% |
| PowerPC | 18930 | 16003 | -2927 | -15.46% |
| PowerPC | 2112 | 1920 | -192 | -9.09% |
| PowerPC | 3841 | 3347 | -494 | -12.86% |
| RISCV | 717 | 611 | -106 | -14.78% |
| RISCV | 20300 | 16937 | -3363 | -16.57% |
| RISCV | 66 | 58 | -8 | -12.12% |
| RISCV | 931 | 798 | -133 | -14.29% |
| RISCV | 599 | 522 | -77 | -12.85% |
| RISCV | 4294 | 3680 | -614 | -14.30% |
| RISCV | 168 | 152 | -16 | -9.52% |
| RISCV | 115 | 103 | -12 | -10.43% |
| RISCV | 268 | 234 | -34 | -12.69% |
| RISCV | 1391 | 1203 | -188 | -13.52% |
| RISCV | 416 | 368 | -48 | -11.54% |
| RISCV | 184 | 168 | -16 | -8.70% |
| RISCV | 16 | 16 | 0 | 0.00% |
| RISCV | 34 | 32 | -2 | -5.88% |
| RISCV | 1224 | 1102 | -122 | -9.97% |
| RISCV | 330 | 300 | -30 | -9.09% |
| RISCV | 1806 | 1597 | -209 | -11.57% |
| RISCV | 40 | 38 | -2 | -5.00% |
| RISCV | 129 | 115 | -14 | -10.85% |
| RISCV | 183 | 162 | -21 | -11.48% |
| RISCV | 36 | 34 | -2 | -5.56% |
| RISCV | 356 | 310 | -46 | -12.92% |
| RISCV | 1152 | 986 | -166 | -14.41% |
| RISCV | 26 | 24 | -2 | -7.69% |
| Sparc | 6249 | 5290 | -959 | -15.35% |
| Sparc | 166 | 148 | -18 | -10.84% |
| Sparc | 322 | 288 | -34 | -10.56% |
| SystemZ | 698 | 532 | -166 | -23.78% |
| SystemZ | 8535 | 7104 | -1431 | -16.77% |
| SystemZ | 18751 | 16002 | -2749 | -14.66% |
| VE | 36002 | 32221 | -3781 | -10.50% |
| XCore | 1300 | 1069 | -231 | -17.77% |
| XCore | 923 | 793 | -130 | -14.08% |
| Xtensa | 158 | 135 | -23 | -14.56% |
| Xtensa | 3602 | 3074 | -528 | -14.66% |
| | 777003 | 682869 | -94134 | -12.12% |
```
</details>
https://github.com/llvm/llvm-project/pull/155889
More information about the llvm-commits
mailing list