LLVM 20.0.0git
|
#include "llvm/Transforms/Scalar/StraightLineStrengthReduce.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/GetElementPtrTypeIterator.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Operator.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Value.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Utils/Local.h"
#include <cassert>
#include <cstdint>
#include <limits>
#include <list>
#include <vector>
Go to the source code of this file.
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
Functions | |
INITIALIZE_PASS_BEGIN (StraightLineStrengthReduceLegacyPass, "slsr", "Straight line strength reduction", false, false) INITIALIZE_PASS_END(StraightLineStrengthReduceLegacyPass | |
static bool | isGEPFoldable (GetElementPtrInst *GEP, const TargetTransformInfo *TTI) |
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 | |
static const unsigned | UnknownAddressSpace |
slsr | |
Straight line strength | reduction |
Straight line strength | false |
|
static |
Definition at line 308 of file StraightLineStrengthReduce.cpp.
References GEP, Idx, and llvm::ConstantInt::isZero().
INITIALIZE_PASS_BEGIN | ( | StraightLineStrengthReduceLegacyPass | , |
"slsr" | , | ||
"Straight line strength reduction" | , | ||
false | , | ||
false | |||
) |
|
static |
Definition at line 289 of file StraightLineStrengthReduce.cpp.
References llvm::sampleprof::Base, llvm::TargetTransformInfo::isLegalAddressingMode(), and UnknownAddressSpace.
|
static |
Definition at line 281 of file StraightLineStrengthReduce.cpp.
References GEP, llvm::TargetTransformInfo::getGEPCost(), and llvm::TargetTransformInfo::TCC_Free.
|
static |
Definition at line 427 of file StraightLineStrengthReduce.cpp.
References A, B, llvm::CallingConv::C, llvm::PatternMatch::m_c_Add(), llvm::PatternMatch::m_ConstantInt(), llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().
|
static |
Definition at line 432 of file StraightLineStrengthReduce.cpp.
References A, B, llvm::CallingConv::C, llvm::PatternMatch::m_c_Or(), llvm::PatternMatch::m_ConstantInt(), llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().
Definition at line 568 of file StraightLineStrengthReduce.cpp.
Straight line strength false |
Definition at line 262 of file StraightLineStrengthReduce.cpp.
Straight line strength reduction |
Definition at line 262 of file StraightLineStrengthReduce.cpp.
slsr |
Definition at line 261 of file StraightLineStrengthReduce.cpp.
Definition at line 93 of file StraightLineStrengthReduce.cpp.
Referenced by isAddFoldable().