[all-commits] [llvm/llvm-project] 501a58: [TableGen][SelectionDAG] Remove the `implicit` DAG...

Sergei Barannikov via All-commits all-commits at lists.llvm.org
Fri Nov 8 20:26:01 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 501a58344179242f702f55e0ee5c039290426c54
      https://github.com/llvm/llvm-project/commit/501a58344179242f702f55e0ee5c039290426c54
  Author: Sergei Barannikov <barannikov88 at gmail.com>
  Date:   2024-11-09 (Sat, 09 Nov 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/lib/Target/AVR/AVRInstrInfo.td
    M llvm/lib/Target/MSP430/MSP430InstrInfo.td
    M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
    M llvm/lib/Target/X86/X86InstrArithmetic.td
    M llvm/lib/Target/X86/X86InstrCompiler.td
    M llvm/lib/Target/X86/X86InstrMisc.td
    M llvm/lib/Target/X86/X86InstrSystem.td
    M llvm/lib/Target/X86/X86InstrUtils.td
    M llvm/test/CodeGen/X86/GlobalISel/select-blsi.mir
    M llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
    M llvm/utils/TableGen/DAGISelMatcherGen.cpp

  Log Message:
  -----------
  [TableGen][SelectionDAG] Remove the `implicit` DAG node (#115295)

The node was introduced in 59c39dc1 and was intended to allow writing
patterns like this:
`[(set AL, (mul AL, GR8:$src1)), (implicit EFLAGS)]`

However, it does not introduce new functionality because the same
pattern can be equivalently expressed as:
`[(set AL, EFLAGS, (mul AL, GR8:$src1))]`

The latter form is also more flexible as it allows reordering output
operands.

In most places uses of `implicit` were redundant -- removing them didn't
change anything in the generated DAG tables. The only three cases where
it did have effect are in X86InstrArithmetic.td and X86InstrSystem.td --
those were rewritten to use `set` node.

Removing `implicit` from some patterns made them importable by GISel,
hence the change in a test.



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