ΒΆbool hoistRegion(llvm::DomTreeNode*,
                 llvm::AliasAnalysis*,
                 llvm::LoopInfo*,
                 llvm::DominatorTree*,
                 llvm::TargetLibraryInfo*,
                 llvm::Loop*,
                 llvm::AliasSetTracker*,
                 llvm::MemorySSAUpdater*,
                 llvm::ScalarEvolution*,
                 llvm::ICFLoopSafetyInfo*,
                 llvm::SinkAndHoistLICMFlags&,
                 llvm::OptimizationRemarkEmitter*)

Description

Walk the specified region of the CFG (defined by all blocks dominated by the specified block, and that are in the current loop) in depth first order w.r.t the DominatorTree. This allows us to visit definitions before uses, allowing us to hoist a loop body in one pass without iteration. Takes DomTreeNode, AliasAnalysis, LoopInfo, DominatorTree, DataLayout, TargetLibraryInfo, Loop, AliasSet information for all instructions of the loop and loop safety information as arguments. Diagnostics is emitted via \p ORE. It returns changed status.

Declared at: llvm/include/llvm/Transforms/Utils/LoopUtils.h:134

Parameters

llvm::DomTreeNode*
llvm::AliasAnalysis*
llvm::LoopInfo*
llvm::DominatorTree*
llvm::TargetLibraryInfo*
llvm::Loop*
llvm::AliasSetTracker*
llvm::MemorySSAUpdater*
llvm::ScalarEvolution*
llvm::ICFLoopSafetyInfo*
llvm::SinkAndHoistLICMFlags&
llvm::OptimizationRemarkEmitter*