|
LLVM 22.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/InstIterator.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 (const 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 30 of file SystemZTargetTransformInfo.cpp.
|
static |
Definition at line 57 of file SystemZTargetTransformInfo.cpp.
References countNumMemAccesses(), llvm::dyn_cast(), F, GEP, llvm::isa(), and Ptr.
Referenced by llvm::SystemZTTIImpl::adjustInliningThreshold(), and countNumMemAccesses().
Definition at line 1455 of file SystemZTargetTransformInfo.cpp.
Referenced by llvm::SystemZTTIImpl::getArithmeticReductionCost().
|
static |
Definition at line 848 of file SystemZTargetTransformInfo.cpp.
References assert(), llvm::dyn_cast(), llvm::FixedVectorType::get(), llvm::Type::getScalarType(), I, llvm::isa(), and llvm::Type::isVectorTy().
Referenced by llvm::SystemZTTIImpl::getBoolVecToIntConversionCost(), llvm::SystemZTTIImpl::getCastInstrCost(), and llvm::SystemZTTIImpl::getCmpSelInstrCost().
Definition at line 771 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 1443 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 1434 of file SystemZTargetTransformInfo.cpp.
Referenced by llvm::SystemZTTIImpl::getArithmeticReductionCost().
Definition at line 535 of file SystemZTargetTransformInfo.cpp.
References assert(), llvm::cast(), 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 1079 of file SystemZTargetTransformInfo.cpp.
References I, and llvm::isa().
Referenced by llvm::SystemZTTIImpl::getCmpSelInstrCost().
Definition at line 525 of file SystemZTargetTransformInfo.cpp.
References assert(), and Size.
Referenced by llvm::MachineIRBuilder::buildConstant(), llvm::MachineIRBuilder::buildVScale(), canTryToConstantAddTwoShiftAmounts(), llvm::computeMinimumValueSizes(), llvm::SystemZTTIImpl::getInterleavedMemoryOpCost(), getNumVectorRegs(), llvm::SystemZTTIImpl::getVectorInstrCost(), llvm::SystemZTTIImpl::isFoldableLoad(), simplifyGEPInst(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitSub(), llvm::InstCombinerImpl::visitSwitchInst(), and llvm::InstCombinerImpl::visitZExt().
|
static |
Definition at line 1509 of file SystemZTargetTransformInfo.cpp.
References getNumVectorRegs(), and llvm::Type::isVectorTy().
Referenced by llvm::SystemZTTIImpl::getIntrinsicInstrCost().
Definition at line 1294 of file SystemZTargetTransformInfo.cpp.
References llvm::dyn_cast(), F, and I.
Referenced by llvm::SystemZTTIImpl::getMemoryOpCost().
Definition at line 486 of file SystemZTargetTransformInfo.cpp.
References llvm::cast(), and llvm::isa().
Referenced by llvm::SystemZTTIImpl::getScalarizationOverhead(), and llvm::SystemZTTIImpl::getVectorInstrCost().
Definition at line 38 of file SystemZTargetTransformInfo.cpp.
References llvm::dyn_cast(), llvm::isa(), isUsedAsMemCpySource(), and llvm::Value::users().
Referenced by llvm::SystemZTTIImpl::adjustInliningThreshold(), and isUsedAsMemCpySource().