struct DivergencePropagator
Declaration
struct DivergencePropagator { /* full declaration omitted */ };
Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:261
Member Variables
- public const llvm::ModifiedPO& LoopPOT
- public const llvm::DominatorTree& DT
- public const llvm::PostDominatorTree& PDT
- public const llvm::LoopInfo& LI
- public const llvm::BasicBlock& DivTermBlock
- public llvm::DivergencePropagator::BlockLabelVec BlockLabels
- public std::unique_ptr<ControlDivergenceDesc> DivDesc
Method Overview
- public DivergencePropagator(const llvm::ModifiedPO & LoopPOT, const llvm::DominatorTree & DT, const llvm::PostDominatorTree & PDT, const llvm::LoopInfo & LI, const llvm::BasicBlock & DivTermBlock)
- public bool computeJoin(const llvm::BasicBlock & SuccBlock, const llvm::BasicBlock & PushedLabel)
- public std::unique_ptr<ControlDivergenceDesc> computeJoinPoints()
- public void printDefs(llvm::raw_ostream & Out)
- public bool visitEdge(const llvm::BasicBlock & SuccBlock, const llvm::BasicBlock & DefBlock)
- public bool visitLoopExitEdge(const llvm::BasicBlock & ExitBlock, const llvm::BasicBlock & DefBlock, bool FromParentLoop)
Methods
¶DivergencePropagator(
const llvm::ModifiedPO& LoopPOT,
const llvm::DominatorTree& DT,
const llvm::PostDominatorTree& PDT,
const llvm::LoopInfo& LI,
const llvm::BasicBlock& DivTermBlock)
DivergencePropagator(
const llvm::ModifiedPO& LoopPOT,
const llvm::DominatorTree& DT,
const llvm::PostDominatorTree& PDT,
const llvm::LoopInfo& LI,
const llvm::BasicBlock& DivTermBlock)
Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:278
Parameters
- const llvm::ModifiedPO& LoopPOT
- const llvm::DominatorTree& DT
- const llvm::PostDominatorTree& PDT
- const llvm::LoopInfo& LI
- const llvm::BasicBlock& DivTermBlock
¶bool computeJoin(
const llvm::BasicBlock& SuccBlock,
const llvm::BasicBlock& PushedLabel)
bool computeJoin(
const llvm::BasicBlock& SuccBlock,
const llvm::BasicBlock& PushedLabel)
Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:302
Parameters
- const llvm::BasicBlock& SuccBlock
- const llvm::BasicBlock& PushedLabel
¶std::unique_ptr<ControlDivergenceDesc>
computeJoinPoints()
std::unique_ptr<ControlDivergenceDesc>
computeJoinPoints()
Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:346
¶void printDefs(llvm::raw_ostream& Out)
void printDefs(llvm::raw_ostream& Out)
Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:285
Parameters
- llvm::raw_ostream& Out
¶bool visitEdge(const llvm::BasicBlock& SuccBlock,
const llvm::BasicBlock& DefBlock)
bool visitEdge(const llvm::BasicBlock& SuccBlock,
const llvm::BasicBlock& DefBlock)
Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:336
Parameters
- const llvm::BasicBlock& SuccBlock
- const llvm::BasicBlock& DefBlock
¶bool visitLoopExitEdge(
const llvm::BasicBlock& ExitBlock,
const llvm::BasicBlock& DefBlock,
bool FromParentLoop)
bool visitLoopExitEdge(
const llvm::BasicBlock& ExitBlock,
const llvm::BasicBlock& DefBlock,
bool FromParentLoop)
Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:319
Parameters
- const llvm::BasicBlock& ExitBlock
- const llvm::BasicBlock& DefBlock
- bool FromParentLoop