LLVM 20.0.0git
|
#include "RISCVTargetTransformInfo.h"
#include "MCTargetDesc/RISCVMatInt.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/CodeGen/BasicTTIImpl.h"
#include "llvm/CodeGen/CostTable.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/PatternMatch.h"
#include <cmath>
#include <optional>
#include "llvm/IR/VPIntrinsics.def"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "riscvtti" |
#define | HELPER_MAP_VPID_TO_VPSD(VPID, VPSD) |
Functions | |
static InstructionCost | getIntImmCostImpl (const DataLayout &DL, const RISCVSubtarget *ST, const APInt &Imm, Type *Ty, TTI::TargetCostKind CostKind, bool FreeZeroes) |
static bool | canUseShiftPair (Instruction *Inst, const APInt &Imm) |
static bool | isRepeatedConcatMask (ArrayRef< int > Mask, int &SubVectorSize) |
static VectorType * | getVRGatherIndexType (MVT DataVT, const RISCVSubtarget &ST, LLVMContext &C) |
static unsigned | isM1OrSmaller (MVT VT) |
static unsigned | getISDForVPIntrinsicID (Intrinsic::ID ID) |
Variables | |
static cl::opt< unsigned > | RVVRegisterWidthLMUL ("riscv-v-register-bit-width-lmul", cl::desc("The LMUL to use for getRegisterBitWidth queries. Affects LMUL used " "by autovectorized code. Fractional LMULs are not supported."), cl::init(2), cl::Hidden) |
static cl::opt< unsigned > | SLPMaxVF ("riscv-v-slp-max-vf", cl::desc("Overrides result used for getMaximumVF query which is used " "exclusively by SLP vectorizer."), cl::Hidden) |
static const CostTblEntry | VectorIntrinsicCostTable [] |
#define DEBUG_TYPE "riscvtti" |
Definition at line 23 of file RISCVTargetTransformInfo.cpp.
#define HELPER_MAP_VPID_TO_VPSD | ( | VPID, | |
VPSD | |||
) |
|
static |
Definition at line 137 of file RISCVTargetTransformInfo.cpp.
References llvm::countr_zero(), llvm::User::getOperand(), and llvm::isShiftedMask_64().
Referenced by llvm::RISCVTTIImpl::getIntImmCostInst().
|
static |
Definition at line 112 of file RISCVTargetTransformInfo.cpp.
References assert(), DL, llvm::RISCVMatInt::getIntMatCost(), llvm::Type::isIntegerTy(), and llvm::TargetTransformInfo::TCC_Free.
Referenced by llvm::RISCVTTIImpl::getIntImmCost(), and llvm::RISCVTTIImpl::getIntImmCostInst().
|
static |
Definition at line 950 of file RISCVTargetTransformInfo.cpp.
References llvm::ISD::DELETED_NODE.
Referenced by llvm::RISCVTTIImpl::getIntrinsicInstrCost().
|
static |
Definition at line 368 of file RISCVTargetTransformInfo.cpp.
References assert(), llvm::MVT::bitsGT(), llvm::CallingConv::C, llvm::MVT::changeTypeToInteger(), llvm::MVT::changeVectorElementType(), llvm::MVT::getScalarSizeInBits(), llvm::MVT::getScalarType(), and llvm::MVT::getVectorNumElements().
Referenced by llvm::RISCVTTIImpl::getShuffleCost().
Definition at line 664 of file RISCVTargetTransformInfo.cpp.
References llvm::RISCVTargetLowering::getLMUL(), llvm::RISCVII::LMUL_1, llvm::RISCVII::LMUL_F2, llvm::RISCVII::LMUL_F4, and llvm::RISCVII::LMUL_F8.
Referenced by llvm::RISCVTTIImpl::getScalarizationOverhead().
Definition at line 346 of file RISCVTargetTransformInfo.cpp.
References I, llvm::isPowerOf2_32(), and Size.
Referenced by llvm::RISCVTTIImpl::getShuffleCost().
|
static |
Referenced by llvm::RISCVTTIImpl::getRegisterBitWidth().
|
static |
Referenced by llvm::RISCVTTIImpl::getMaximumVF().
|
static |
Definition at line 884 of file RISCVTargetTransformInfo.cpp.
Referenced by llvm::RISCVTTIImpl::getIntrinsicInstrCost().