|
LLVM
4.0.0
|
#include "llvm/ADT/STLExtras.h"#include "llvm/Analysis/Passes.h"#include "llvm/Analysis/TargetTransformInfo.h"#include "llvm/Analysis/VectorUtils.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.
Macros | |
| #define | CM_NAME "cost-model" |
| #define | DEBUG_TYPE CM_NAME |
Functions | |
| static bool | isReverseVectorMask (ArrayRef< int > Mask) |
| static bool | isSingleSourceVectorMask (ArrayRef< int > Mask) |
| static bool | isZeroEltBroadcastVectorMask (ArrayRef< int > Mask) |
| static bool | isAlternateVectorMask (ArrayRef< 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 34 of file CostModel.cpp.
| #define DEBUG_TYPE CM_NAME |
Definition at line 35 of file CostModel.cpp.
|
static |
|
static |
Definition at line 317 of file CostModel.cpp.
References llvm::dyn_cast(), llvm::User::getOperand(), and L.
Referenced by matchVectorSplittingReduction().
Definition at line 121 of file CostModel.cpp.
References i, and llvm::ArrayRef< T >::size().
Definition at line 93 of file CostModel.cpp.
References i, and llvm::ArrayRef< T >::size().
Definition at line 100 of file CostModel.cpp.
References i, and llvm::ArrayRef< T >::size().
Definition at line 114 of file CostModel.cpp.
References i, and llvm::ArrayRef< T >::size().
|
static |
Definition at line 267 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 |
Definition at line 186 of file CostModel.cpp.
References assert(), llvm::dyn_cast(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), L, llvm::AArch64CC::LS, and matchPairwiseShuffleMask().
Referenced by matchPairwiseReduction().
|
static |
Definition at line 166 of file CostModel.cpp.
References llvm::ShuffleVectorInst::getShuffleMask(), llvm::ShuffleVectorInst::getType(), llvm::Type::getVectorNumElements(), i, and llvm::BitmaskEnumDetail::Mask().
Referenced by matchPairwiseReductionAtLevel().
|
static |
Definition at line 330 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(), llvm::isPowerOf2_32(), and llvm::BitmaskEnumDetail::Mask().
Definition at line 71 of file CostModel.cpp.
|
static |
Referenced by matchPairwiseReduction(), and matchVectorSplittingReduction().
1.8.6