diff options
author | Luke Lau <luke@igalia.com> | 2024-05-15 23:37:31 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-15 23:37:31 +0800 |
commit | ff313ee70a4f27e3555ee4baef53b9b51c5aa27e (patch) | |
tree | feb59de05e044ca8e13efccbeded8d31043adf46 /llvm/lib/Bitcode/Reader | |
parent | 8e00703be9ceb41d9b80c2bc8f024a9610b9aaa1 (diff) | |
download | llvm-ff313ee70a4f27e3555ee4baef53b9b51c5aa27e.zip llvm-ff313ee70a4f27e3555ee4baef53b9b51c5aa27e.tar.gz llvm-ff313ee70a4f27e3555ee4baef53b9b51c5aa27e.tar.bz2 |
[RISCV] Remove hasSideEffects=1 for vsetvli pseudos (#91319)
In a similar vein to #90049, we currently model all of the effects of a
vsetvli pseudo:
* VL and VTYPE are marked as defs
* VL preserving x0,x0 vsetvlis doesn't get emitted until
RISCVInsertVSETVLI, and when they are they have implicit uses on VL
* Regular vector pseudos are fully modelled too: Before
RISCVInsertVSETVLI they can be moved between vsetvli pseudos because we
will eventually insert vsetvlis to correct VL and VTYPE. Afterwards,
they will have implicit uses on VL and VTYPE.
Since we model everything we can remove hasSideEffects=1. This gives us
some improvements like sinking in vsetvli-insert-crossbb.ll.
We need to update RISCVDeadRegisterDefinitions to keep handling vsetvli
pseudos since it only operates on instructions with unmodelled side
effects.
Diffstat (limited to 'llvm/lib/Bitcode/Reader')
0 files changed, 0 insertions, 0 deletions