[all-commits] [llvm/llvm-project] 981f25: [TableGen] Require complex operands in InstAlias t...

Sergei Barannikov via All-commits all-commits at lists.llvm.org
Sat Aug 30 08:45:28 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 981f25a8a8623ff89e3c48e36fd94f2e58b7b8c0
      https://github.com/llvm/llvm-project/commit/981f25a8a8623ff89e3c48e36fd94f2e58b7b8c0
  Author: Sergei Barannikov <barannikov88 at gmail.com>
  Date:   2025-08-30 (Sat, 30 Aug 2025)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/SVEInstrFormats.td
    M llvm/lib/Target/ARM/ARMInstrFormats.td
    M llvm/lib/Target/ARM/ARMInstrInfo.td
    M llvm/lib/Target/ARM/ARMInstrNEON.td
    M llvm/lib/Target/ARM/ARMInstrThumb.td
    M llvm/lib/Target/ARM/ARMInstrThumb2.td
    M llvm/lib/Target/Lanai/LanaiInstrInfo.td
    M llvm/lib/Target/PowerPC/PPCInstrInfo.td
    M llvm/utils/TableGen/Common/CodeGenInstAlias.cpp
    M llvm/utils/TableGen/Common/CodeGenInstAlias.h

  Log Message:
  -----------
  [TableGen] Require complex operands in InstAlias to be specified as DAGs (#136411)

Currently, complex operands of an instruction are flattened in the resulting DAG of `InstAlias`.
This change makes it required to specify complex operands in `InstAlias` as sub-DAGs:

```
InstAlias<"foo $rd, $rs1, $rs2", (Inst RC:$rd, (ComplexOp RC:$rs1, GR0, 42), SimpleOp:$rs2)>;
```

instead of

```
InstAlias<"foo $rd, $rs1, $rs2", (Inst RC:$rd, RC:$rs1, GR0, 42, SimpleOp:$rs2)>;
```

The advantages of the new syntax are improved readability and more robust type checking, although it is a bit more verbose.



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