LLVM  6.0.0svn
Public Member Functions | List of all members
llvm::GVNHoist Class Reference

Public Member Functions

 GVNHoist (DominatorTree *DT, PostDominatorTree *PDT, AliasAnalysis *AA, MemoryDependenceResults *MD, MemorySSA *MSSA)
 
bool run (Function &F)
 
unsigned int rank (const Value *V) const
 

Detailed Description

Definition at line 256 of file GVNHoist.cpp.

Constructor & Destructor Documentation

◆ GVNHoist()

llvm::GVNHoist::GVNHoist ( DominatorTree DT,
PostDominatorTree PDT,
AliasAnalysis AA,
MemoryDependenceResults MD,
MemorySSA MSSA 
)
inline

Definition at line 258 of file GVNHoist.cpp.

Member Function Documentation

◆ rank()

unsigned int llvm::GVNHoist::rank ( const Value V) const
inline

Definition at line 307 of file GVNHoist.cpp.

References llvm::all_of(), llvm::Instruction::andIRFlags(), llvm::any_of(), assert(), B, llvm::SmallVectorTemplateCommon< T, typename >::back(), llvm::iterator_range< IteratorT >::begin(), llvm::SmallVectorTemplateCommon< T >::begin(), C, llvm::IDFCalculator< NodeTy, IsPostDom >::calculate(), llvm::Instruction::clone(), llvm::combineKnownMetadata(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::count(), D, llvm::dbgs(), DEBUG, llvm::tgtok::Def, llvm::MemorySSAUtil::defClobbersUseOrDef(), llvm::depth_first(), llvm::CHIArg::Dest, llvm::DominatorTree::dominates(), llvm::Instruction::dropUnknownNonDebugMetadata(), llvm::dyn_cast(), E, llvm::iterator_range< IteratorT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::MemorySSA::End, llvm::Instruction::eraseFromParent(), F(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::find_if(), getAlignment(), llvm::MemoryAccess::getBlock(), llvm::MemorySSA::getBlockAccesses(), llvm::MemoryUseOrDef::getDefiningAccess(), llvm::Function::getEntryBlock(), llvm::CallInfo::getLoadVNTable(), llvm::MemorySSA::getMemoryAccess(), llvm::MemoryUseOrDef::getMemoryInst(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::User::getNumOperands(), llvm::TerminatorInst::getNumSuccessors(), llvm::User::getOperand(), llvm::Instruction::getParent(), getPointerOperand(), llvm::CallInfo::getScalarVNTable(), llvm::CallInfo::getStoreVNTable(), llvm::BasicBlock::getTerminator(), llvm::InsnInfo::getVNTable(), llvm::LoadInfo::getVNTable(), llvm::StoreInfo::getVNTable(), llvm::BasicBlock::hasAddressTaken(), hoist, llvm::CHIArg::I, llvm::idf_begin(), llvm::idf_end(), if(), llvm::tgtok::In, llvm::InsnInfo::insert(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::insert(), llvm::LoadInfo::insert(), llvm::StoreInfo::insert(), llvm::CallInfo::insert(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::Instruction::insertBefore(), llvm::BasicBlock::isEHPad(), llvm::isGuaranteedToTransferExecutionToSuccessor(), llvm::MemorySSA::isLiveOnEntryDef(), llvm::SPII::Load, llvm::MemorySSA::locallyDominates(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::lookup(), llvm::make_range(), llvm::max(), MaxDepthInBB, MaxNumberOfBBSInPath, llvm::Instruction::mayThrow(), llvm::Instruction::moveBefore(), NC, llvm::User::operands(), P, llvm::predecessors(), llvm::DominatorTreeBase< NodeT, IsPostDom >::properlyDominates(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), r1(), r2(), llvm::MemoryDependenceResults::removeInstruction(), llvm::Value::replaceAllUsesWith(), llvm::User::replaceUsesOfWith(), llvm::reverse(), llvm::NVPTX::PTXLdStInstCode::Scalar, llvm::IDFCalculator< NodeTy, IsPostDom >::setDefiningBlocks(), SI, llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::parallel::sort(), llvm::SPII::Store, llvm::TerminatorInst::successors(), llvm::Unknown, llvm::Value::users(), VI, and llvm::CHIArg::VN.

◆ run()

bool llvm::GVNHoist::run ( Function F)
inline

The documentation for this class was generated from the following file: