[RISCV] Add initial support for getRegUsageForType and getNumberOfRegisters
authorKito Cheng <kito.cheng@sifive.com>
Sun, 9 Jan 2022 14:16:05 +0000 (22:16 +0800)
committerKito Cheng <kito.cheng@sifive.com>
Mon, 17 Jan 2022 07:27:54 +0000 (15:27 +0800)
commitcc35161dc716ab5b0e66b15ac320ebd451a2bc44
tree4c9ec9a62d05bf99dab90697607653748ef38885
parentd771cf277565f579aba24fef522355f4406323c9
[RISCV] Add initial support for getRegUsageForType and getNumberOfRegisters

Those two TTI hooks are used during vectorization for calculating
register pressure, the default implementation isn't consider for LMUL,
and that's also definitly wrong value for register number (all register class
are 8 registers).

So in this patch we tried to:

1. Calculate right register usage for vector type and scalar type.
2. Return right number of register for general purpose register and
   vector register.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D116890
llvm/lib/Target/RISCV/RISCVSubtarget.h
llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
llvm/test/Transforms/LoopVectorize/RISCV/reg-usage.ll [new file with mode: 0644]