This is an archive of the discontinued LLVM Phabricator instance.

[RISCV] Remove legacy TA/TU pseudo distinction of vmerge and carry-in arithmetic operations [NFC[
ClosedPublic

Authored by reames on Jul 6 2023, 12:45 PM.

Details

Summary

This change continues with the line of work discussed in https://discourse.llvm.org/t/riscv-transition-in-vector-pseudo-structure-policy-variants/71295.

This is analogous to other patches in the series, but with one key difference - the resulting pseudo does *not* have a policy operand. We could add one for vmerge, but the some of the multiclasses are sufficiently entwined with the mask producing arithmetic instructions that the change delta becomes unmanageable. Note that these instructions are *not* in the RISCVMaskedPseudo table, and thus the difference doesn't complicate other code. The main value of working incrementally here is that we get to eagerly cleanup the IsTA logic flowing through the post-ISEL combines.

This should be fully orthogonal to D154620, but if you combine them, we're left with a much cleaner post-ISEL combine structure.

Diff Detail

Event Timeline

reames created this revision.Jul 6 2023, 12:45 PM
Herald added a project: Restricted Project. · View Herald TranscriptJul 6 2023, 12:45 PM
reames requested review of this revision.Jul 6 2023, 12:45 PM
Herald added a project: Restricted Project. · View Herald TranscriptJul 6 2023, 12:45 PM
luke added inline comments.Jul 10 2023, 4:30 AM
llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
3230

Since this is always true now can we turn this into an assert and simplify the code further?

luke added inline comments.Jul 10 2023, 4:32 AM
llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
3230

Disregard the above: I thought it was on the vmerge.

craig.topper added inline comments.Jul 12 2023, 1:12 PM
llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
2825

This needs to be rebased so these variables aren't dead.

reames updated this revision to Diff 539756.Jul 12 2023, 3:09 PM

Rebase per reviewer request

This revision is now accepted and ready to land.Jul 12 2023, 3:13 PM
This revision was landed with ongoing or failed builds.Jul 12 2023, 3:31 PM
This revision was automatically updated to reflect the committed changes.