LLVM API Documentation
#include "llvm/ADT/STLExtras.h"
#include "llvm/Analysis/Passes.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Value.h"
#include "llvm/Pass.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
Go to the source code of this file.
Defines | |
#define | CM_NAME "cost-model" |
#define | DEBUG_TYPE CM_NAME |
Functions | |
static bool | isReverseVectorMask (SmallVectorImpl< int > &Mask) |
static bool | isAlternateVectorMask (SmallVectorImpl< int > &Mask) |
static TargetTransformInfo::OperandValueKind | getOperandInfo (Value *V) |
static bool | matchPairwiseShuffleMask (ShuffleVectorInst *SI, bool IsLeft, unsigned Level) |
static bool | matchPairwiseReductionAtLevel (const BinaryOperator *BinOp, unsigned Level, unsigned NumLevels) |
static bool | matchPairwiseReduction (const ExtractElementInst *ReduxRoot, unsigned &Opcode, Type *&Ty) |
static std::pair< Value *, ShuffleVectorInst * > | getShuffleAndOtherOprd (BinaryOperator *B) |
static bool | matchVectorSplittingReduction (const ExtractElementInst *ReduxRoot, unsigned &Opcode, Type *&Ty) |
Variables | |
static cl::opt< bool > | EnableReduxCost ("costmodel-reduxcost", cl::init(false), cl::Hidden, cl::desc("Recognize reduction patterns.")) |
static const char | cm_name [] = "Cost Model Analysis" |
#define CM_NAME "cost-model" |
Definition at line 33 of file CostModel.cpp.
#define DEBUG_TYPE CM_NAME |
Definition at line 34 of file CostModel.cpp.
static TargetTransformInfo::OperandValueKind getOperandInfo | ( | Value * | V | ) | [static] |
Definition at line 123 of file CostModel.cpp.
References llvm::TargetTransformInfo::OK_AnyValue, llvm::TargetTransformInfo::OK_NonUniformConstantValue, and llvm::TargetTransformInfo::OK_UniformConstantValue.
static std::pair<Value *, ShuffleVectorInst *> getShuffleAndOtherOprd | ( | BinaryOperator * | B | ) | [static] |
Definition at line 291 of file CostModel.cpp.
References llvm::dyn_cast(), and llvm::User::getOperand().
Referenced by matchVectorSplittingReduction().
static bool isAlternateVectorMask | ( | SmallVectorImpl< int > & | Mask | ) | [static] |
Definition at line 98 of file CostModel.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::size().
static bool isReverseVectorMask | ( | SmallVectorImpl< int > & | Mask | ) | [static] |
Definition at line 91 of file CostModel.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::size().
static bool matchPairwiseReduction | ( | const ExtractElementInst * | ReduxRoot, |
unsigned & | Opcode, | ||
Type *& | Ty | ||
) | [static] |
Definition at line 241 of file CostModel.cpp.
References llvm::dyn_cast(), EnableReduxCost, llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), llvm::ConstantInt::getZExtValue(), llvm::isPowerOf2_32(), llvm::Log2_32(), and matchPairwiseReductionAtLevel().
static bool matchPairwiseReductionAtLevel | ( | const BinaryOperator * | BinOp, |
unsigned | Level, | ||
unsigned | NumLevels | ||
) | [static] |
Definition at line 160 of file CostModel.cpp.
References llvm::dyn_cast(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), llvm::AArch64CC::LS, and matchPairwiseShuffleMask().
Referenced by matchPairwiseReduction().
static bool matchPairwiseShuffleMask | ( | ShuffleVectorInst * | SI, |
bool | IsLeft, | ||
unsigned | Level | ||
) | [static] |
Definition at line 137 of file CostModel.cpp.
References llvm::ShuffleVectorInst::getShuffleMask(), llvm::ShuffleVectorInst::getType(), and llvm::Type::getVectorNumElements().
Referenced by matchPairwiseReductionAtLevel().
static bool matchVectorSplittingReduction | ( | const ExtractElementInst * | ReduxRoot, |
unsigned & | Opcode, | ||
Type *& | Ty | ||
) | [static] |
Definition at line 304 of file CostModel.cpp.
References llvm::dyn_cast(), EnableReduxCost, llvm::SmallVectorTemplateCommon< T >::end(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), getShuffleAndOtherOprd(), llvm::ShuffleVectorInst::getShuffleMask(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), llvm::ConstantInt::getZExtValue(), and llvm::isPowerOf2_32().
Definition at line 70 of file CostModel.cpp.
cl::opt<bool> EnableReduxCost("costmodel-reduxcost", cl::init(false), cl::Hidden, cl::desc("Recognize reduction patterns.")) [static] |
Referenced by matchPairwiseReduction(), and matchVectorSplittingReduction().