|
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 168 of file RISCVSubtarget.h.
|
inlineoverride |
Definition at line 170 of file RISCVSubtarget.h.
|
override |
Definition at line 232 of file RISCVSubtarget.cpp.
|
inlineoverride |
Definition at line 432 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 288 of file RISCVSubtarget.h.
References getRealVLen(), llvm::RISCV::RVVBitsPerBlock, and X.
|
inlineoverride |
Definition at line 417 of file RISCVSubtarget.h.
|
override |
Definition at line 127 of file RISCVSubtarget.cpp.
References CallLoweringInfo, and getTargetLowering().
|
inline |
Definition at line 157 of file RISCVSubtarget.h.
Referenced by llvm::RISCVRegisterInfo::getRegAllocationHints(), isConvertibleToVMV_V_V(), and RISCVSubtarget().
|
inline |
Definition at line 363 of file RISCVSubtarget.h.
|
inline |
Definition at line 265 of file RISCVSubtarget.h.
References assert(), hasVInstructions(), and hasVInstructionsI64().
|
inline |
Definition at line 245 of file RISCVSubtarget.h.
|
inlineoverride |
Definition at line 154 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 158 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 303 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 445 of file RISCVSubtarget.h.
|
inline |
Definition at line 333 of file RISCVSubtarget.h.
References hasVInstructions().
Definition at line 459 of file RISCVSubtarget.h.
|
inlineoverride |
Definition at line 429 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 449 of file RISCVSubtarget.h.
Definition at line 454 of file RISCVSubtarget.h.
Definition at line 440 of file RISCVSubtarget.h.
|
inline |
Definition at line 464 of file RISCVSubtarget.h.
| unsigned RISCVSubtarget::getMinimumJumpTableEntries | ( | ) | const |
Definition at line 252 of file RISCVSubtarget.cpp.
|
inlineoverride |
Definition at line 423 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 468 of file RISCVSubtarget.h.
Referenced by overridePostRASchedPolicy().
|
inlineoverride |
Definition at line 420 of file RISCVSubtarget.h.
|
inline |
Definition at line 172 of file RISCVSubtarget.h.
|
inline |
Definition at line 175 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 183 of file RISCVSubtarget.h.
|
inline |
Definition at line 273 of file RISCVSubtarget.h.
References getMaxRVVVectorSizeInBits().
Referenced by getRealVLen().
|
inline |
Definition at line 269 of file RISCVSubtarget.h.
References getMinRVVVectorSizeInBits().
Referenced by getRealVLen().
|
inline |
Definition at line 278 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 159 of file RISCVSubtarget.h.
Referenced by isConvertibleToVMV_V_V(), lowerRISCVVMachineInstrToMCInst(), llvm::RISCVRegisterInfo::lowerSegmentSpillReload(), and llvm::RISCVTargetLowering::RISCVTargetLowering().
|
override |
Definition at line 116 of file RISCVSubtarget.cpp.
References TSInfo.
|
inline |
Definition at line 436 of file RISCVSubtarget.h.
|
inline |
Definition at line 296 of file RISCVSubtarget.h.
Referenced by llvm::RISCV::getArgGPRs().
|
inlineoverride |
Definition at line 162 of file RISCVSubtarget.h.
Referenced by getCallLowering(), and getInlineAsmLowering().
|
inline |
Definition at line 185 of file RISCVSubtarget.h.
|
inline |
Definition at line 240 of file RISCVSubtarget.h.
References is64Bit().
|
inline |
Definition at line 237 of file RISCVSubtarget.h.
References is64Bit().
Referenced by buildDefaultVLOps().
|
inline |
Definition at line 255 of file RISCVSubtarget.h.
|
inline |
Definition at line 219 of file RISCVSubtarget.h.
|
inline |
Definition at line 205 of file RISCVSubtarget.h.
|
inline |
Definition at line 221 of file RISCVSubtarget.h.
|
inline |
Definition at line 209 of file RISCVSubtarget.h.
|
inline |
Definition at line 206 of file RISCVSubtarget.h.
|
inline |
Definition at line 201 of file RISCVSubtarget.h.
Definition at line 337 of file RISCVSubtarget.h.
References llvm_unreachable.
|
inline |
Definition at line 212 of file RISCVSubtarget.h.
|
inline |
Definition at line 215 of file RISCVSubtarget.h.
|
inline |
Definition at line 227 of file RISCVSubtarget.h.
|
inline |
Definition at line 196 of file RISCVSubtarget.h.
|
inline |
Definition at line 195 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 194 of file RISCVSubtarget.h.
|
inline |
Definition at line 320 of file RISCVSubtarget.h.
Referenced by llvm::RISCV::getArgVRs(), getELen(), getMaxInterleaveFactor(), getMaxRVVVectorSizeInBits(), getMinRVVVectorSizeInBits(), getScavSlotsNumForRVV(), and useRVVForFixedLengthVectors().
|
inline |
Definition at line 331 of file RISCVSubtarget.h.
References hasVInstructionsF32().
|
inline |
Definition at line 329 of file RISCVSubtarget.h.
|
inline |
Definition at line 324 of file RISCVSubtarget.h.
|
inline |
Definition at line 323 of file RISCVSubtarget.h.
|
inline |
Definition at line 322 of file RISCVSubtarget.h.
|
inline |
Definition at line 327 of file RISCVSubtarget.h.
Referenced by hasVInstructionsAnyF().
|
inline |
Definition at line 328 of file RISCVSubtarget.h.
|
inline |
Definition at line 332 of file RISCVSubtarget.h.
|
inline |
Definition at line 321 of file RISCVSubtarget.h.
Referenced by getELen().
|
inline |
Definition at line 191 of file RISCVSubtarget.h.
|
inline |
Definition at line 235 of file RISCVSubtarget.h.
Referenced by llvm::RISCVRegisterInfo::getConstrainedRegClassForReg(), getXLen(), getXLenVT(), isCompressibleLoad(), isCompressibleStore(), isPExtPackedDoubleType(), isPExtPackedType(), isXRaySupported(), markSExt32Registers(), and selectRegImmLoadStoreOp().
|
inline |
Definition at line 472 of file RISCVSubtarget.h.
|
inline |
Definition at line 236 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 298 of file RISCVSubtarget.h.
References assert(), and llvm::Register::id().
|
inline |
Definition at line 297 of file RISCVSubtarget.h.
References llvm::RISCVABI::isSoftFP().
Referenced by llvm::RISCV::getArgFPRs().
|
inline |
Definition at line 395 of file RISCVSubtarget.h.
|
inline |
Definition at line 396 of file RISCVSubtarget.h.
|
inlineoverride |
Definition at line 315 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 413 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 374 of file RISCVSubtarget.h.
Referenced by getCallLowering().
|
mutableprotected |
Definition at line 378 of file RISCVSubtarget.h.
Referenced by getInlineAsmLowering().
|
mutableprotected |
Definition at line 375 of file RISCVSubtarget.h.
Referenced by getInstructionSelector().
|
mutableprotected |
Definition at line 376 of file RISCVSubtarget.h.
Referenced by getLegalizerInfo().
|
mutableprotected |
Definition at line 377 of file RISCVSubtarget.h.
Referenced by getRegBankInfo().
|
protected |
Definition at line 371 of file RISCVSubtarget.h.
Referenced by getSelectionDAGInfo(), and RISCVSubtarget().