LLVM
8.0.1
|
#include "llvm/Transforms/Scalar/NaryReassociate.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Analysis/AssumptionCache.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/Transforms/Utils/Local.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GetElementPtrTypeIterator.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/InstrTypes.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/IR/ValueHandle.h"
#include "llvm/Pass.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Transforms/Scalar.h"
#include <cassert>
#include <cstdint>
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "nary-reassociate" |
Functions | |
INITIALIZE_PASS_BEGIN (NaryReassociateLegacyPass, "nary-reassociate", "Nary reassociation", false, false) INITIALIZE_PASS_END(NaryReassociateLegacyPass | |
static bool | isPotentiallyNaryReassociable (Instruction *I) |
static bool | isGEPFoldable (GetElementPtrInst *GEP, const TargetTransformInfo *TTI) |
Variables | |
nary | reassociate |
nary Nary | reassociation |
nary Nary | false |
#define DEBUG_TYPE "nary-reassociate" |
Definition at line 115 of file NaryReassociate.cpp.
INITIALIZE_PASS_BEGIN | ( | NaryReassociateLegacyPass | , |
"nary-reassociate" | , | ||
"Nary reassociation" | , | ||
false | , | ||
false | |||
) |
|
static |
Definition at line 298 of file NaryReassociate.cpp.
References llvm::MCID::Add, assert(), B, llvm::computeOverflowForSignedAdd(), CreateAdd(), llvm::IRBuilder< T, Inserter >::CreateBitOrPointerCast(), llvm::IRBuilder< T, Inserter >::CreateGEP(), CreateMul(), llvm::IRBuilder< T, Inserter >::CreateMul(), llvm::IRBuilder< T, Inserter >::CreateSExtOrTrunc(), E, GEP, llvm::gep_type_begin(), llvm::ConstantInt::get(), getBitWidth(), llvm::TargetTransformInfo::getGEPCost(), llvm::generic_gep_type_iterator< ItTy >::getIndexedType(), llvm::User::getNumOperands(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Type::getPointerAddressSpace(), llvm::GetElementPtrInst::getPointerOperand(), llvm::GetElementPtrInst::getResultElementType(), llvm::GetElementPtrInst::getSourceElementType(), llvm::Value::getType(), llvm::Value::hasOneUse(), I, llvm::GetElementPtrInst::idx_begin(), llvm::GetElementPtrInst::idx_end(), llvm::GetElementPtrInst::isInBounds(), llvm::isKnownNonNegative(), llvm::generic_gep_type_iterator< ItTy >::isSequential(), llvm_unreachable, llvm::PatternMatch::m_Add(), llvm::PatternMatch::m_Mul(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), llvm::NeverOverflows, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::GetElementPtrInst::setIsInBounds(), llvm::Value::takeName(), and llvm::TargetTransformInfo::TCC_Free.
|
static |
Definition at line 217 of file NaryReassociate.cpp.
References llvm::MCID::Add, and llvm::Instruction::getOpcode().
nary Nary false |
Definition at line 160 of file NaryReassociate.cpp.
nary reassociate |
Definition at line 160 of file NaryReassociate.cpp.
nary Nary reassociation |
Definition at line 160 of file NaryReassociate.cpp.