diff options
author | Sergei Barannikov <barannikov88@gmail.com> | 2024-11-09 07:25:40 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-09 07:25:40 +0300 |
commit | 501a58344179242f702f55e0ee5c039290426c54 (patch) | |
tree | a0c0fe925339099c48339d8d814836c86e1a694d /llvm/lib/CodeGen/MachineCSE.cpp | |
parent | fb4f426c81d7e87dbb30df7abeba15ffc2f9f41a (diff) | |
download | llvm-501a58344179242f702f55e0ee5c039290426c54.zip llvm-501a58344179242f702f55e0ee5c039290426c54.tar.gz llvm-501a58344179242f702f55e0ee5c039290426c54.tar.bz2 |
[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.
Diffstat (limited to 'llvm/lib/CodeGen/MachineCSE.cpp')
0 files changed, 0 insertions, 0 deletions