|
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.
1.8.13