For Zvlsseg, we create several tuple register classes. When spilling for
these tuple register classes, we need to iterate NF times to load/store
these tuple registers.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Target/RISCV/RISCVInstrInfo.cpp | ||
---|---|---|
236 | Why do we need these fields as immediates if they are already part of the opcode name? Can't we just use the switch in isRVVSpillForZvlsseg to look them up anytime we need them? |
llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp | ||
---|---|---|
300 | Not sure if it's worth asserting that LMUL is otherwise 1, or elseing this? | |
304 | Other places where we've done computations like this have added static_asserts to do basic checks that (e.g.) sub_vrm2_0+1 is what we expect. It might be worth having some of those. | |
llvm/lib/Target/RISCV/RISCVInstrInfo.cpp | ||
196 | I'm surprised clang-tidy hasn't suggested removing the parents around these one-liners. Maybe I'm missing something. | |
llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp | ||
182 | This all may be personal preference, but something returning Optional<std::pair<unsigned, unsigned>> would remove the out parameters, make this neater to call when you only want the "is" aspect of it, help prevent scope leakage in the caller, and simplify this method definition. | |
280 | /*IsDef*/? |
llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp | ||
---|---|---|
310 | Can we copy the MachineMemOperand so the spill comment will get printed in the output? |
Not sure if it's worth asserting that LMUL is otherwise 1, or elseing this?