|
LLVM 24.0.0git
|
#include "Target/RISCV/RISCVSubtarget.h"
Public Types | |
| enum | RISCVProcFamilyEnum : uint8_t { Others , SiFive7 , MIPSP8700 , Andes45 } |
| enum | RISCVVRGatherCostModelEnum : uint8_t { Quadratic , NLog2N } |
Protected Member Functions | |
| unsigned | getMaxRVVVectorSizeInBits () const |
| unsigned | getMinRVVVectorSizeInBits () const |
Protected Attributes | |
| std::unique_ptr< const SelectionDAGTargetInfo > | TSInfo |
| std::unique_ptr< CallLowering > | CallLoweringInfo |
| std::unique_ptr< InstructionSelector > | InstSelector |
| std::unique_ptr< LegalizerInfo > | Legalizer |
| std::unique_ptr< RISCVRegisterBankInfo > | RegBankInfo |
| std::unique_ptr< InlineAsmLowering > | InlineAsmLoweringInfo |
Definition at line 93 of file RISCVSubtarget.h.
| Enumerator | |
|---|---|
| Others | |
| SiFive7 | |
| MIPSP8700 | |
| Andes45 | |
Definition at line 96 of file RISCVSubtarget.h.
| Enumerator | |
|---|---|
| Quadratic | |
| NLog2N | |
Definition at line 102 of file RISCVSubtarget.h.
| RISCVSubtarget::RISCVSubtarget | ( | const Triple & | TT, |
| StringRef | CPU, | ||
| StringRef | TuneCPU, | ||
| StringRef | FS, | ||
| StringRef | ABIName, | ||
| unsigned | RVVVectorBitsMin, | ||
| unsigned | RVVVectorLMULMax, | ||
| const TargetMachine & | TM ) |
Definition at line 99 of file RISCVSubtarget.cpp.
References const, getCLOpts(), isLittleEndian(), and TSInfo.
|
overridedefault |
|
override |
Definition at line 234 of file RISCVSubtarget.cpp.
|
inlineoverride |
Definition at line 170 of file RISCVSubtarget.h.
|
inlineoverride |
Definition at line 172 of file RISCVSubtarget.h.
|
override |
Definition at line 232 of file RISCVSubtarget.cpp.
|
inlineoverride |
Definition at line 439 of file RISCVSubtarget.h.
|
inline |
If the ElementCount or TypeSize X is scalable and VScale (VLEN) is exactly known, returns X converted to a fixed quantity.
Otherwise returns X unmodified.
Definition at line 290 of file RISCVSubtarget.h.
References getRealVLen(), llvm::RISCV::RVVBitsPerBlock, and X.
|
inlineoverride |
Definition at line 424 of file RISCVSubtarget.h.
|
override |
Definition at line 127 of file RISCVSubtarget.cpp.
References CallLoweringInfo, and getTargetLowering().
|
inline |
Definition at line 159 of file RISCVSubtarget.h.
Referenced by llvm::RISCVRegisterInfo::getRegAllocationHints(), isConvertibleToVMV_V_V(), and RISCVSubtarget().
|
inline |
Definition at line 370 of file RISCVSubtarget.h.
|
inline |
Definition at line 267 of file RISCVSubtarget.h.
References assert(), hasVInstructions(), and hasVInstructionsI64().
|
inline |
Definition at line 247 of file RISCVSubtarget.h.
|
inlineoverride |
Definition at line 156 of file RISCVSubtarget.h.
Referenced by llvm::RISCVMachineFunctionInfo::RISCVMachineFunctionInfo().
|
override |
Definition at line 120 of file RISCVSubtarget.cpp.
References getTargetLowering(), and InlineAsmLoweringInfo.
|
inlineoverride |
Definition at line 160 of file RISCVSubtarget.h.
Referenced by lowerRISCVVMachineInstrToMCInst(), llvm::RISCVRegisterInfo::lowerSegmentSpillReload(), and runMakeCompressibleOpt().
|
override |
Definition at line 133 of file RISCVSubtarget.cpp.
References llvm::createRISCVInstructionSelector(), getRegBankInfo(), and InstSelector.
|
inline |
Definition at line 310 of file RISCVSubtarget.h.
Referenced by getLargestFPRegisterOrZero().
|
override |
Definition at line 142 of file RISCVSubtarget.cpp.
References Legalizer.
|
override |
Definition at line 194 of file RISCVSubtarget.cpp.
Referenced by getMaxBuildIntsCost().
| unsigned RISCVSubtarget::getMaxBuildIntsCost | ( | ) | const |
Definition at line 178 of file RISCVSubtarget.cpp.
References getLoadLatency().
|
inline |
Definition at line 452 of file RISCVSubtarget.h.
|
inline |
Definition at line 340 of file RISCVSubtarget.h.
References hasVInstructions().
Definition at line 466 of file RISCVSubtarget.h.
|
inlineoverride |
Definition at line 436 of file RISCVSubtarget.h.
|
protected |
Definition at line 198 of file RISCVSubtarget.cpp.
References assert(), hasVInstructions(), and llvm::report_fatal_error().
Referenced by getRealMaxVLen().
Definition at line 456 of file RISCVSubtarget.h.
Definition at line 461 of file RISCVSubtarget.h.
Definition at line 447 of file RISCVSubtarget.h.
|
inline |
Definition at line 471 of file RISCVSubtarget.h.
| unsigned RISCVSubtarget::getMinimumJumpTableEntries | ( | ) | const |
Definition at line 252 of file RISCVSubtarget.cpp.
|
inlineoverride |
Definition at line 430 of file RISCVSubtarget.h.
|
protected |
Definition at line 211 of file RISCVSubtarget.cpp.
References assert(), hasVInstructions(), and llvm::report_fatal_error().
Referenced by getRealMinVLen(), and useRVVForFixedLengthVectors().
|
override |
Definition at line 189 of file RISCVSubtarget.cpp.
|
inline |
Definition at line 475 of file RISCVSubtarget.h.
Referenced by overridePostRASchedPolicy().
|
inlineoverride |
Definition at line 427 of file RISCVSubtarget.h.
|
inline |
Definition at line 174 of file RISCVSubtarget.h.
|
inline |
Definition at line 177 of file RISCVSubtarget.h.
|
inline |
Returns RISC-V processor family.
Avoid this function! CPU specifics should be kept local to this class and preferably modeled with SubtargetFeatures or properties in initializeProperties().
Definition at line 185 of file RISCVSubtarget.h.
|
inline |
Definition at line 275 of file RISCVSubtarget.h.
References getMaxRVVVectorSizeInBits().
Referenced by getRealVLen().
|
inline |
Definition at line 271 of file RISCVSubtarget.h.
References getMinRVVVectorSizeInBits().
Referenced by getRealVLen().
|
inline |
Definition at line 280 of file RISCVSubtarget.h.
References getRealMaxVLen(), and getRealMinVLen().
Referenced by expandVScale(), and llvm::RISCVRegisterInfo::lowerSegmentSpillReload().
|
override |
Definition at line 148 of file RISCVSubtarget.cpp.
References RegBankInfo.
Referenced by getInstructionSelector().
|
inlineoverride |
Definition at line 161 of file RISCVSubtarget.h.
Referenced by isConvertibleToVMV_V_V(), isRegisterReservedByUser(), lowerRISCVVMachineInstrToMCInst(), llvm::RISCVRegisterInfo::lowerSegmentSpillReload(), and llvm::RISCVTargetLowering::RISCVTargetLowering().
|
override |
Definition at line 116 of file RISCVSubtarget.cpp.
References TSInfo.
|
inline |
Definition at line 443 of file RISCVSubtarget.h.
|
inline |
Definition at line 298 of file RISCVSubtarget.h.
Referenced by llvm::RISCV::getArgGPRs().
|
inlineoverride |
Definition at line 164 of file RISCVSubtarget.h.
Referenced by getCallLowering(), and getInlineAsmLowering().
|
inline |
Returns the X registers reserved by the reserve-xN features, indexed by N.
Aliases of these registers are not included.
Definition at line 302 of file RISCVSubtarget.h.
|
inline |
Definition at line 187 of file RISCVSubtarget.h.
|
inline |
Definition at line 242 of file RISCVSubtarget.h.
References is64Bit().
|
inline |
Definition at line 239 of file RISCVSubtarget.h.
References is64Bit().
Referenced by buildDefaultVLOps().
|
inline |
Definition at line 257 of file RISCVSubtarget.h.
|
inline |
Definition at line 221 of file RISCVSubtarget.h.
|
inline |
Definition at line 207 of file RISCVSubtarget.h.
|
inline |
Definition at line 223 of file RISCVSubtarget.h.
|
inline |
Definition at line 211 of file RISCVSubtarget.h.
|
inline |
Definition at line 208 of file RISCVSubtarget.h.
|
inline |
Definition at line 203 of file RISCVSubtarget.h.
Definition at line 344 of file RISCVSubtarget.h.
References llvm_unreachable.
|
inline |
Definition at line 214 of file RISCVSubtarget.h.
|
inline |
Definition at line 217 of file RISCVSubtarget.h.
|
inline |
Definition at line 229 of file RISCVSubtarget.h.
|
inline |
Definition at line 198 of file RISCVSubtarget.h.
|
inline |
Definition at line 197 of file RISCVSubtarget.h.
|
inline |
Definition at line 200 of file RISCVSubtarget.h.
|
inline |
Definition at line 199 of file RISCVSubtarget.h.
|
inline |
Definition at line 196 of file RISCVSubtarget.h.
|
inline |
Definition at line 327 of file RISCVSubtarget.h.
Referenced by llvm::RISCV::getArgVRs(), getELen(), getMaxInterleaveFactor(), getMaxRVVVectorSizeInBits(), getMinRVVVectorSizeInBits(), getScavSlotsNumForRVV(), and useRVVForFixedLengthVectors().
|
inline |
Definition at line 338 of file RISCVSubtarget.h.
References hasVInstructionsF32().
|
inline |
Definition at line 336 of file RISCVSubtarget.h.
|
inline |
Definition at line 331 of file RISCVSubtarget.h.
|
inline |
Definition at line 330 of file RISCVSubtarget.h.
|
inline |
Definition at line 329 of file RISCVSubtarget.h.
|
inline |
Definition at line 334 of file RISCVSubtarget.h.
Referenced by hasVInstructionsAnyF().
|
inline |
Definition at line 335 of file RISCVSubtarget.h.
|
inline |
Definition at line 339 of file RISCVSubtarget.h.
|
inline |
Definition at line 328 of file RISCVSubtarget.h.
Referenced by getELen().
|
inline |
Definition at line 193 of file RISCVSubtarget.h.
|
inline |
Definition at line 237 of file RISCVSubtarget.h.
Referenced by llvm::RISCVRegisterInfo::getConstrainedRegClassForReg(), getXLen(), getXLenVT(), isCompressibleLoad(), isCompressibleStore(), isPExtPackedDoubleType(), isPExtPackedType(), isXRaySupported(), markSExt32Registers(), and selectRegImmLoadStoreOp().
|
inline |
Definition at line 479 of file RISCVSubtarget.h.
|
inline |
Definition at line 238 of file RISCVSubtarget.h.
Referenced by RISCVSubtarget().
Definition at line 171 of file RISCVSubtarget.cpp.
References is64Bit().
Definition at line 159 of file RISCVSubtarget.cpp.
References is64Bit().
Definition at line 305 of file RISCVSubtarget.h.
References assert(), getRegisterInfo(), llvm::Register::id(), and llvm::RISCVRegisterInfo::isRegisterReservedByUser().
|
inline |
Definition at line 299 of file RISCVSubtarget.h.
References llvm::RISCVABI::isSoftFP().
Referenced by llvm::RISCV::getArgFPRs().
|
inline |
Definition at line 402 of file RISCVSubtarget.h.
|
inline |
Definition at line 403 of file RISCVSubtarget.h.
|
inlineoverride |
Definition at line 322 of file RISCVSubtarget.h.
References is64Bit().
|
override |
Definition at line 238 of file RISCVSubtarget.cpp.
References llvm::MachineFrameInfo::computeMaxCallFrameSize(), llvm::MachineFunction::getFrameInfo(), and llvm::MachineFrameInfo::isMaxCallFrameSizeComputed().
|
override |
Definition at line 273 of file RISCVSubtarget.cpp.
References llvm::MISched::Bidirectional, llvm::MISched::BottomUp, getPostRASchedDirection(), llvm::MachineSchedPolicy::OnlyBottomUp, llvm::MachineSchedPolicy::OnlyTopDown, and llvm::MISched::TopDown.
|
override |
Definition at line 257 of file RISCVSubtarget.cpp.
References llvm::MachineSchedPolicy::DisableLatencyHeuristic, llvm::MachineSchedPolicy::OnlyBottomUp, llvm::MachineSchedPolicy::OnlyTopDown, and llvm::MachineSchedPolicy::ShouldTrackPressure.
| void llvm::RISCVSubtarget::ParseSubtargetFeatures | ( | StringRef | CPU, |
| StringRef | TuneCPU, | ||
| StringRef | FS ) |
|
override |
Enable use of alias analysis during code generation (during MI scheduling, DAGCombine, etc.).
Definition at line 250 of file RISCVSubtarget.cpp.
| bool RISCVSubtarget::useConstantPoolForLargeInts | ( | ) | const |
Definition at line 154 of file RISCVSubtarget.cpp.
|
inlineoverride |
Definition at line 420 of file RISCVSubtarget.h.
| bool RISCVSubtarget::useMIPSCCMovInsn | ( | ) | const |
Definition at line 292 of file RISCVSubtarget.cpp.
| bool RISCVSubtarget::useMIPSLoadStorePairs | ( | ) | const |
Definition at line 288 of file RISCVSubtarget.cpp.
| bool RISCVSubtarget::useRVVForFixedLengthVectors | ( | ) | const |
Definition at line 227 of file RISCVSubtarget.cpp.
References getMinRVVVectorSizeInBits(), hasVInstructions(), and llvm::RISCV::RVVBitsPerBlock.
|
mutableprotected |
Definition at line 381 of file RISCVSubtarget.h.
Referenced by getCallLowering().
|
mutableprotected |
Definition at line 385 of file RISCVSubtarget.h.
Referenced by getInlineAsmLowering().
|
mutableprotected |
Definition at line 382 of file RISCVSubtarget.h.
Referenced by getInstructionSelector().
|
mutableprotected |
Definition at line 383 of file RISCVSubtarget.h.
Referenced by getLegalizerInfo().
|
mutableprotected |
Definition at line 384 of file RISCVSubtarget.h.
Referenced by getRegBankInfo().
|
protected |
Definition at line 378 of file RISCVSubtarget.h.
Referenced by getSelectionDAGInfo(), and RISCVSubtarget().