LLVM 20.0.0git
|
Compute divergence starting with a divergent branch. More...
#include "llvm/ADT/GenericUniformityImpl.h"
Public Types | |
using | BlockT = typename ContextT::BlockT |
using | DominatorTreeT = typename ContextT::DominatorTreeT |
using | FunctionT = typename ContextT::FunctionT |
using | ValueRefT = typename ContextT::ValueRefT |
using | CycleInfoT = GenericCycleInfo< ContextT > |
using | CycleT = typename CycleInfoT::CycleT |
using | ModifiedPO = ModifiedPostOrder< ContextT > |
using | SyncDependenceAnalysisT = GenericSyncDependenceAnalysis< ContextT > |
using | DivergenceDescriptorT = typename SyncDependenceAnalysisT::DivergenceDescriptor |
using | BlockLabelMapT = typename SyncDependenceAnalysisT::BlockLabelMap |
Public Member Functions | |
DivergencePropagator (const ModifiedPO &CyclePOT, const DominatorTreeT &DT, const CycleInfoT &CI, const BlockT &DivTermBlock) | |
void | printDefs (raw_ostream &Out) |
bool | computeJoin (const BlockT &SuccBlock, const BlockT &PushedLabel) |
bool | visitCycleExitEdge (const BlockT &ExitBlock, const BlockT &Label) |
bool | visitEdge (const BlockT &SuccBlock, const BlockT &Label) |
std::unique_ptr< DivergenceDescriptorT > | computeJoinPoints () |
Public Attributes | |
const ModifiedPO & | CyclePOT |
const DominatorTreeT & | DT |
const CycleInfoT & | CI |
const BlockT & | DivTermBlock |
const ContextT & | Context |
SparseBitVector | FreshLabels |
std::unique_ptr< DivergenceDescriptorT > | DivDesc |
BlockLabelMapT & | BlockLabels |
Compute divergence starting with a divergent branch.
Definition at line 481 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::BlockLabelMapT = typename SyncDependenceAnalysisT::BlockLabelMap |
Definition at line 495 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::BlockT = typename ContextT::BlockT |
Definition at line 483 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::CycleInfoT = GenericCycleInfo<ContextT> |
Definition at line 488 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::CycleT = typename CycleInfoT::CycleT |
Definition at line 489 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::DivergenceDescriptorT = typename SyncDependenceAnalysisT::DivergenceDescriptor |
Definition at line 493 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::DominatorTreeT = typename ContextT::DominatorTreeT |
Definition at line 484 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::FunctionT = typename ContextT::FunctionT |
Definition at line 485 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::ModifiedPO = ModifiedPostOrder<ContextT> |
Definition at line 491 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::SyncDependenceAnalysisT = GenericSyncDependenceAnalysis<ContextT> |
Definition at line 492 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::ValueRefT = typename ContextT::ValueRefT |
Definition at line 486 of file GenericUniformityImpl.h.
|
inline |
Definition at line 513 of file GenericUniformityImpl.h.
|
inline |
Definition at line 536 of file GenericUniformityImpl.h.
References llvm::DivergencePropagator< ContextT >::BlockLabels, llvm::DivergencePropagator< ContextT >::Context, llvm::DivergencePropagator< ContextT >::CyclePOT, llvm::dbgs(), llvm::DivergencePropagator< ContextT >::FreshLabels, LLVM_DEBUG, and llvm::SparseBitVector< ElementSize >::set().
Referenced by llvm::DivergencePropagator< ContextT >::visitCycleExitEdge(), and llvm::DivergencePropagator< ContextT >::visitEdge().
|
inline |
Definition at line 596 of file GenericUniformityImpl.h.
References assert(), llvm::Block, llvm::DivergencePropagator< ContextT >::BlockLabels, llvm::DivergencePropagator< ContextT >::CI, llvm::DivergencePropagator< ContextT >::Context, llvm::DivergencePropagator< ContextT >::CyclePOT, llvm::dbgs(), llvm::DivergencePropagator< ContextT >::DivDesc, llvm::DivergencePropagator< ContextT >::DivTermBlock, llvm::SparseBitVector< ElementSize >::find_last(), llvm::DivergencePropagator< ContextT >::FreshLabels, llvm::GenericCycle< ContextT >::getExitBlocks(), llvm::GenericCycle< ContextT >::getHeader(), llvm::GenericCycle< ContextT >::getParentCycle(), llvm::GenericCycle< ContextT >::isReducible(), LLVM_DEBUG, llvm::DivergencePropagator< ContextT >::printDefs(), llvm::SparseBitVector< ElementSize >::reset(), llvm::successors(), llvm::DivergencePropagator< ContextT >::visitCycleExitEdge(), and llvm::DivergencePropagator< ContextT >::visitEdge().
Referenced by llvm::GenericSyncDependenceAnalysis< ContextT >::getJoinBlocks().
|
inline |
Definition at line 519 of file GenericUniformityImpl.h.
References llvm::Block, llvm::DivergencePropagator< ContextT >::BlockLabels, llvm::DivergencePropagator< ContextT >::Context, and llvm::DivergencePropagator< ContextT >::CyclePOT.
Referenced by llvm::DivergencePropagator< ContextT >::computeJoinPoints().
|
inline |
Definition at line 573 of file GenericUniformityImpl.h.
References llvm::DivergencePropagator< ContextT >::computeJoin(), llvm::DivergencePropagator< ContextT >::Context, llvm::dbgs(), llvm::DivergencePropagator< ContextT >::DivDesc, and LLVM_DEBUG.
Referenced by llvm::DivergencePropagator< ContextT >::computeJoinPoints().
|
inline |
Definition at line 585 of file GenericUniformityImpl.h.
References llvm::DivergencePropagator< ContextT >::computeJoin(), llvm::DivergencePropagator< ContextT >::Context, llvm::dbgs(), llvm::DivergencePropagator< ContextT >::DivDesc, and LLVM_DEBUG.
Referenced by llvm::DivergencePropagator< ContextT >::computeJoinPoints().
BlockLabelMapT& llvm::DivergencePropagator< ContextT >::BlockLabels |
Definition at line 511 of file GenericUniformityImpl.h.
Referenced by llvm::DivergencePropagator< ContextT >::computeJoin(), llvm::DivergencePropagator< ContextT >::computeJoinPoints(), and llvm::DivergencePropagator< ContextT >::printDefs().
const CycleInfoT& llvm::DivergencePropagator< ContextT >::CI |
Definition at line 499 of file GenericUniformityImpl.h.
Referenced by llvm::DivergencePropagator< ContextT >::computeJoinPoints().
const ContextT& llvm::DivergencePropagator< ContextT >::Context |
Definition at line 501 of file GenericUniformityImpl.h.
Referenced by llvm::DivergencePropagator< ContextT >::computeJoin(), llvm::DivergencePropagator< ContextT >::computeJoinPoints(), llvm::DivergencePropagator< ContextT >::printDefs(), llvm::DivergencePropagator< ContextT >::visitCycleExitEdge(), and llvm::DivergencePropagator< ContextT >::visitEdge().
const ModifiedPO& llvm::DivergencePropagator< ContextT >::CyclePOT |
Definition at line 497 of file GenericUniformityImpl.h.
Referenced by llvm::DivergencePropagator< ContextT >::computeJoin(), llvm::DivergencePropagator< ContextT >::computeJoinPoints(), and llvm::DivergencePropagator< ContextT >::printDefs().
std::unique_ptr<DivergenceDescriptorT> llvm::DivergencePropagator< ContextT >::DivDesc |
Definition at line 510 of file GenericUniformityImpl.h.
Referenced by llvm::DivergencePropagator< ContextT >::computeJoinPoints(), llvm::DivergencePropagator< ContextT >::visitCycleExitEdge(), and llvm::DivergencePropagator< ContextT >::visitEdge().
const BlockT& llvm::DivergencePropagator< ContextT >::DivTermBlock |
Definition at line 500 of file GenericUniformityImpl.h.
Referenced by llvm::DivergencePropagator< ContextT >::computeJoinPoints().
const DominatorTreeT& llvm::DivergencePropagator< ContextT >::DT |
Definition at line 498 of file GenericUniformityImpl.h.
SparseBitVector llvm::DivergencePropagator< ContextT >::FreshLabels |
Definition at line 507 of file GenericUniformityImpl.h.
Referenced by llvm::DivergencePropagator< ContextT >::computeJoin(), and llvm::DivergencePropagator< ContextT >::computeJoinPoints().