|
LLVM 24.0.0git
|
This file implements a TargetTransformInfo analysis pass specific to the X86 target machine. More...
#include "X86TargetTransformInfo.h"#include "llvm/ADT/SmallBitVector.h"#include "llvm/Analysis/TargetTransformInfo.h"#include "llvm/CodeGen/Analysis.h"#include "llvm/CodeGen/BasicTTIImpl.h"#include "llvm/CodeGen/CostTable.h"#include "llvm/CodeGen/TargetLowering.h"#include "llvm/IR/InstIterator.h"#include "llvm/IR/IntrinsicInst.h"#include <optional>Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "x86tti" |
Typedefs | |
| using | CostKindTblEntry = CostTblEntryT<CostKindCosts> |
| using | TypeConversionCostKindTblEntry = TypeConversionCostTblEntryT<CostKindCosts> |
Enumerations | |
| enum | ClassIDEnum { GPRClass = 0 , VectorClass = 1 , ScalarFPClass = 2 } |
Functions | |
| static InstructionCost | getPredicateFanoutCost (const X86TTIImpl &TTI, Type *DataVTy, Type *MaskVTy) |
| static bool | isFoldedIntoRsqrtEstimate (const Value *V, const X86TargetLowering &TLI, MVT VT, TTI::TargetCostKind CostKind) |
Returns true if V is the square root, divided into with the reciprocal allowed, and the target replaces the pair with the rsqrt* based estimate, costed with the division. | |
| static bool | isLegalMaskedLoadStore (Type *ScalarTy, const X86Subtarget *ST) |
This file implements a TargetTransformInfo analysis pass specific to the X86 target machine.
It uses the target's detailed information to provide more precise answers to certain TTI queries, while letting the target independent and default TTI implementations handle the rest.
Definition in file X86TargetTransformInfo.cpp.
| #define DEBUG_TYPE "x86tti" |
Definition at line 64 of file X86TargetTransformInfo.cpp.
| using CostKindTblEntry = CostTblEntryT<CostKindCosts> |
Definition at line 104 of file X86TargetTransformInfo.cpp.
| using TypeConversionCostKindTblEntry = TypeConversionCostTblEntryT<CostKindCosts> |
Definition at line 105 of file X86TargetTransformInfo.cpp.
| enum ClassIDEnum |
| Enumerator | |
|---|---|
| GPRClass | |
| VectorClass | |
| ScalarFPClass | |
Definition at line 167 of file X86TargetTransformInfo.cpp.
|
static |
Definition at line 3872 of file X86TargetTransformInfo.cpp.
References InstructionCost.
Referenced by llvm::X86TTIImpl::getCmpSelInstrCost(), llvm::X86TTIImpl::getGatherScatterOpCost(), and llvm::X86TTIImpl::getMaskedMemoryOpCost().
|
static |
Returns true if V is the square root, divided into with the reciprocal allowed, and the target replaces the pair with the rsqrt* based estimate, costed with the division.
The estimate is formed for the legalized type VT.
Definition at line 4195 of file X86TargetTransformInfo.cpp.
References llvm::cast(), CostKind, llvm::TargetLoweringBase::Disabled, llvm::dyn_cast_if_present(), llvm::TargetLoweringBase::getRecipEstimateSqrtEnabled(), llvm::X86TargetLowering::hasSqrtEstimate(), II, llvm::PatternMatch::m_FDiv(), llvm::PatternMatch::m_Specific(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), llvm::TargetTransformInfo::TCK_Latency, and llvm::TargetTransformInfo::TCK_RecipThroughput.
Referenced by llvm::X86TTIImpl::getIntrinsicInstrCost(), and llvm::X86TTIImpl::getScalarizationOverhead().
|
static |
Definition at line 7342 of file X86TargetTransformInfo.cpp.
References llvm::Type::getIntegerBitWidth(), llvm::Type::isBFloatTy(), llvm::Type::isDoubleTy(), llvm::Type::isFloatTy(), llvm::Type::isHalfTy(), llvm::Type::isIntegerTy(), and llvm::Type::isPointerTy().
Referenced by llvm::X86TTIImpl::isLegalMaskedLoad(), and llvm::X86TTIImpl::isLegalMaskedStore().