LLVM 20.0.0git
|
#include "SystemZTargetTransformInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/CodeGen/BasicTTIImpl.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/InstructionCost.h"
#include "llvm/Support/MathExtras.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "systemztti" |
Functions | |
static bool | isUsedAsMemCpySource (const Value *V, bool &OtherUse) |
static void | countNumMemAccesses (const Value *Ptr, unsigned &NumStores, unsigned &NumLoads, const Function *F) |
static bool | isFreeEltLoad (Value *Op) |
static unsigned | getScalarSizeInBits (Type *Ty) |
static unsigned | getNumVectorRegs (Type *Ty) |
static unsigned | getElSizeLog2Diff (Type *Ty0, Type *Ty1) |
static Type * | getCmpOpsType (const Instruction *I, unsigned VF=1) |
static unsigned | getOperandsExtensionCost (const Instruction *I) |
static bool | isBswapIntrinsicCall (const Value *V) |
InstructionCost | getIntAddReductionCost (unsigned NumVec, unsigned ScalarBits) |
InstructionCost | getFastReductionCost (unsigned NumVec, unsigned NumElems, unsigned ScalarBits) |
bool | customCostReductions (unsigned Opcode) |
static int | getVectorIntrinsicInstrCost (Intrinsic::ID ID, Type *RetTy, const SmallVectorImpl< Type * > &ParamTys) |
#define DEBUG_TYPE "systemztti" |
Definition at line 29 of file SystemZTargetTransformInfo.cpp.
|
static |
Definition at line 56 of file SystemZTargetTransformInfo.cpp.
References countNumMemAccesses(), F, GEP, and Ptr.
Referenced by llvm::SystemZTTIImpl::adjustInliningThreshold(), and countNumMemAccesses().
Definition at line 1421 of file SystemZTargetTransformInfo.cpp.
Referenced by llvm::SystemZTTIImpl::getArithmeticReductionCost().
|
static |
Definition at line 828 of file SystemZTargetTransformInfo.cpp.
References assert(), llvm::FixedVectorType::get(), llvm::Type::getScalarType(), I, and llvm::Type::isVectorTy().
Referenced by llvm::SystemZTTIImpl::getBoolVecToIntConversionCost(), llvm::SystemZTTIImpl::getCastInstrCost(), and llvm::SystemZTTIImpl::getCmpSelInstrCost().
Definition at line 750 of file SystemZTargetTransformInfo.cpp.
References llvm::Type::getScalarSizeInBits(), and llvm::Log2_32().
Referenced by llvm::SystemZTTIImpl::getCastInstrCost(), llvm::SystemZTTIImpl::getVectorBitmaskConversionCost(), and llvm::SystemZTTIImpl::getVectorTruncCost().
InstructionCost getFastReductionCost | ( | unsigned | NumVec, |
unsigned | NumElems, | ||
unsigned | ScalarBits | ||
) |
Definition at line 1409 of file SystemZTargetTransformInfo.cpp.
References llvm::Log2_32_Ceil(), and llvm::SystemZ::VectorBits.
Referenced by llvm::SystemZTTIImpl::getArithmeticReductionCost().
InstructionCost getIntAddReductionCost | ( | unsigned | NumVec, |
unsigned | ScalarBits | ||
) |
Definition at line 1400 of file SystemZTargetTransformInfo.cpp.
Referenced by llvm::SystemZTTIImpl::getArithmeticReductionCost().
Definition at line 520 of file SystemZTargetTransformInfo.cpp.
References assert(), and getScalarSizeInBits().
Referenced by llvm::SystemZTTIImpl::getArithmeticInstrCost(), llvm::SystemZTTIImpl::getArithmeticReductionCost(), llvm::SystemZTTIImpl::getBoolVecToIntConversionCost(), llvm::SystemZTTIImpl::getCastInstrCost(), llvm::SystemZTTIImpl::getCmpSelInstrCost(), llvm::SystemZTTIImpl::getInterleavedMemoryOpCost(), llvm::SystemZTTIImpl::getMemoryOpCost(), llvm::SystemZTTIImpl::getMinMaxReductionCost(), llvm::SystemZTTIImpl::getShuffleCost(), llvm::SystemZTTIImpl::getVectorBitmaskConversionCost(), getVectorIntrinsicInstrCost(), and llvm::SystemZTTIImpl::getVectorTruncCost().
|
static |
Definition at line 1055 of file SystemZTargetTransformInfo.cpp.
References I.
Referenced by llvm::SystemZTTIImpl::getCmpSelInstrCost().
Definition at line 510 of file SystemZTargetTransformInfo.cpp.
References assert(), llvm::Type::getScalarSizeInBits(), llvm::Type::isPtrOrPtrVectorTy(), and Size.
Referenced by llvm::MachineIRBuilder::buildConstant(), llvm::MachineIRBuilder::buildVScale(), llvm::computeMinimumValueSizes(), llvm::SystemZTTIImpl::getInterleavedMemoryOpCost(), getNumVectorRegs(), llvm::SystemZTTIImpl::getVectorInstrCost(), llvm::SystemZTTIImpl::isFoldableLoad(), opMustUseVOP3Encoding(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitSwitchInst(), and llvm::InstCombinerImpl::visitZExt().
|
static |
Definition at line 1475 of file SystemZTargetTransformInfo.cpp.
References getNumVectorRegs(), and RetTy.
Referenced by llvm::SystemZTTIImpl::getIntrinsicInstrCost().
Definition at line 1260 of file SystemZTargetTransformInfo.cpp.
Referenced by llvm::SystemZTTIImpl::getMemoryOpCost().
Definition at line 472 of file SystemZTargetTransformInfo.cpp.
Referenced by llvm::SystemZTTIImpl::getScalarizationOverhead(), and llvm::SystemZTTIImpl::getVectorInstrCost().
Definition at line 37 of file SystemZTargetTransformInfo.cpp.
References isUsedAsMemCpySource().
Referenced by llvm::SystemZTTIImpl::adjustInliningThreshold(), and isUsedAsMemCpySource().