struct DivergencePropagator
Declaration
struct DivergencePropagator { /* full declaration omitted */ };
Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:130
Member Variables
- public const llvm::FunctionRPOT& FuncRPOT
- public const llvm::DominatorTree& DT
- public const llvm::PostDominatorTree& PDT
- public const llvm::LoopInfo& LI
- public std::unique_ptr<ConstBlockSet> JoinBlocks
- public SmallPtrSet<const llvm::BasicBlock*, 4> ReachedLoopExits
- public llvm::DivergencePropagator::DefiningBlockMap DefMap
- public std::unordered_set<const BasicBlock*> PendingUpdates
Method Overview
- public DivergencePropagator(const llvm::FunctionRPOT & FuncRPOT, const llvm::DominatorTree & DT, const llvm::PostDominatorTree & PDT, const llvm::LoopInfo & LI)
- public void addPending(const llvm::BasicBlock & Block, const llvm::BasicBlock & DefBlock)
- public template <typename SuccessorIterable>std::unique_ptr<ConstBlockSet> computeJoinPoints(const llvm::BasicBlock & RootBlock, SuccessorIterable NodeSuccessors, const llvm::Loop * ParentLoop)
- public void printDefs(llvm::raw_ostream & Out)
- public void visitSuccessor(const llvm::BasicBlock & SuccBlock, const llvm::Loop * ParentLoop, const llvm::BasicBlock & DefBlock)
Methods
¶DivergencePropagator(
const llvm::FunctionRPOT& FuncRPOT,
const llvm::DominatorTree& DT,
const llvm::PostDominatorTree& PDT,
const llvm::LoopInfo& LI)
DivergencePropagator(
const llvm::FunctionRPOT& FuncRPOT,
const llvm::DominatorTree& DT,
const llvm::PostDominatorTree& PDT,
const llvm::LoopInfo& LI)
Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:152
Parameters
- const llvm::FunctionRPOT& FuncRPOT
- const llvm::DominatorTree& DT
- const llvm::PostDominatorTree& PDT
- const llvm::LoopInfo& LI
¶void addPending(const llvm::BasicBlock& Block,
const llvm::BasicBlock& DefBlock)
void addPending(const llvm::BasicBlock& Block,
const llvm::BasicBlock& DefBlock)
Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:158
Parameters
- const llvm::BasicBlock& Block
- const llvm::BasicBlock& DefBlock
¶template <typename SuccessorIterable>
std::unique_ptr<ConstBlockSet> computeJoinPoints(
const llvm::BasicBlock& RootBlock,
SuccessorIterable NodeSuccessors,
const llvm::Loop* ParentLoop)
template <typename SuccessorIterable>
std::unique_ptr<ConstBlockSet> computeJoinPoints(
const llvm::BasicBlock& RootBlock,
SuccessorIterable NodeSuccessors,
const llvm::Loop* ParentLoop)
Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:220
Templates
- SuccessorIterable
Parameters
- const llvm::BasicBlock& RootBlock
- SuccessorIterable NodeSuccessors
- const llvm::Loop* ParentLoop
¶void printDefs(llvm::raw_ostream& Out)
void printDefs(llvm::raw_ostream& Out)
Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:164
Parameters
- llvm::raw_ostream& Out
¶void visitSuccessor(
const llvm::BasicBlock& SuccBlock,
const llvm::Loop* ParentLoop,
const llvm::BasicBlock& DefBlock)
void visitSuccessor(
const llvm::BasicBlock& SuccBlock,
const llvm::Loop* ParentLoop,
const llvm::BasicBlock& DefBlock)
Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:181
Parameters
- const llvm::BasicBlock& SuccBlock
- const llvm::Loop* ParentLoop
- const llvm::BasicBlock& DefBlock