aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineCSE.cpp
diff options
context:
space:
mode:
authorSergei Barannikov <barannikov88@gmail.com>2024-11-09 07:25:40 +0300
committerGitHub <noreply@github.com>2024-11-09 07:25:40 +0300
commit501a58344179242f702f55e0ee5c039290426c54 (patch)
treea0c0fe925339099c48339d8d814836c86e1a694d /llvm/lib/CodeGen/MachineCSE.cpp
parentfb4f426c81d7e87dbb30df7abeba15ffc2f9f41a (diff)
downloadllvm-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