|
LLVM
3.7.0
|
#include <vector>#include "llvm/ADT/DenseSet.h"#include "llvm/ADT/FoldingSet.h"#include "llvm/Analysis/ScalarEvolution.h"#include "llvm/Analysis/TargetTransformInfo.h"#include "llvm/Analysis/ValueTracking.h"#include "llvm/IR/DataLayout.h"#include "llvm/IR/Dominators.h"#include "llvm/IR/IRBuilder.h"#include "llvm/IR/Module.h"#include "llvm/IR/PatternMatch.h"#include "llvm/Support/raw_ostream.h"#include "llvm/Transforms/Scalar.h"#include "llvm/Transforms/Utils/Local.h"Go to the source code of this file.
Functions | |
| INITIALIZE_PASS_BEGIN (StraightLineStrengthReduce,"slsr","Straight line strength reduction", false, false) INITIALIZE_PASS_END(StraightLineStrengthReduce | |
| static bool | isGEPFoldable (GetElementPtrInst *GEP, const TargetTransformInfo *TTI, const DataLayout *DL) |
| static bool | isAddFoldable (const SCEV *Base, ConstantInt *Index, Value *Stride, TargetTransformInfo *TTI) |
| static bool | hasOnlyOneNonZeroIndex (GetElementPtrInst *GEP) |
| static bool | matchesAdd (Value *A, Value *&B, ConstantInt *&C) |
| static bool | matchesOr (Value *A, Value *&B, ConstantInt *&C) |
| static void | unifyBitWidth (APInt &A, APInt &B) |
Variables | |
| slsr | |
| Straight line strength | reduction |
| Straight line strength | false |
|
static |
Definition at line 294 of file StraightLineStrengthReduce.cpp.
References llvm::dyn_cast(), I, llvm::GetElementPtrInst::idx_begin(), llvm::GetElementPtrInst::idx_end(), and llvm::ConstantInt::isZero().
| INITIALIZE_PASS_BEGIN | ( | StraightLineStrengthReduce | , |
| "slsr" | , | ||
| "Straight line strength reduction" | , | ||
| false | , | ||
| false | |||
| ) |
|
static |
Definition at line 277 of file StraightLineStrengthReduce.cpp.
References llvm::ConstantInt::getSExtValue(), llvm::SCEV::getType(), and llvm::TargetTransformInfo::isLegalAddressingMode().
|
static |
Definition at line 237 of file StraightLineStrengthReduce.cpp.
References llvm::tgtok::Field, llvm::gep_type_begin(), llvm::StructLayout::getElementOffset(), llvm::SequentialType::getElementType(), llvm::generic_gep_type_iterator< ItTy >::getIndexedType(), llvm::GetElementPtrInst::getPointerAddressSpace(), llvm::GetElementPtrInst::getPointerOperand(), llvm::DataLayout::getStructLayout(), llvm::GetElementPtrInst::getType(), llvm::DataLayout::getTypeAllocSize(), I, llvm::GetElementPtrInst::idx_begin(), llvm::GetElementPtrInst::idx_end(), and llvm::TargetTransformInfo::isLegalAddressingMode().
|
static |
Definition at line 413 of file StraightLineStrengthReduce.cpp.
References llvm::PatternMatch::m_Add(), llvm::PatternMatch::m_ConstantInt(), llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().
|
static |
Definition at line 419 of file StraightLineStrengthReduce.cpp.
References llvm::PatternMatch::m_ConstantInt(), llvm::PatternMatch::m_Or(), llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().
Definition at line 548 of file StraightLineStrengthReduce.cpp.
References llvm::APInt::getBitWidth(), and llvm::APInt::sext().
| Straight line strength false |
Definition at line 217 of file StraightLineStrengthReduce.cpp.
| Straight line strength reduction |
Definition at line 217 of file StraightLineStrengthReduce.cpp.
| slsr |
Definition at line 217 of file StraightLineStrengthReduce.cpp.
1.8.6