LLVM 22.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 |
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 492 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::BlockLabelMapT = typename SyncDependenceAnalysisT::BlockLabelMap |
Definition at line 506 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::BlockT = typename ContextT::BlockT |
Definition at line 494 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::CycleInfoT = GenericCycleInfo<ContextT> |
Definition at line 499 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::CycleT = typename CycleInfoT::CycleT |
Definition at line 500 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::DivergenceDescriptorT |
Definition at line 504 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::DominatorTreeT = typename ContextT::DominatorTreeT |
Definition at line 495 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::FunctionT = typename ContextT::FunctionT |
Definition at line 496 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::ModifiedPO = ModifiedPostOrder<ContextT> |
Definition at line 502 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::SyncDependenceAnalysisT = GenericSyncDependenceAnalysis<ContextT> |
Definition at line 503 of file GenericUniformityImpl.h.
using llvm::DivergencePropagator< ContextT >::ValueRefT = typename ContextT::ValueRefT |
Definition at line 497 of file GenericUniformityImpl.h.
|
inline |
Definition at line 524 of file GenericUniformityImpl.h.
References BlockLabels, CI, Context, CyclePOT, DivDesc, DivTermBlock, and DT.
|
inline |
Definition at line 547 of file GenericUniformityImpl.h.
References BlockLabels, Context, CyclePOT, llvm::dbgs(), FreshLabels, and LLVM_DEBUG.
Referenced by visitCycleExitEdge(), and visitEdge().
|
inline |
Definition at line 607 of file GenericUniformityImpl.h.
References assert(), llvm::Block, BlockLabels, llvm::CallingConv::C, CI, Context, CyclePOT, llvm::dbgs(), DivDesc, DivTermBlock, FreshLabels, LLVM_DEBUG, P, printDefs(), llvm::successors(), visitCycleExitEdge(), and visitEdge().
Referenced by llvm::GenericSyncDependenceAnalysis< ContextT >::getJoinBlocks().
|
inline |
Definition at line 530 of file GenericUniformityImpl.h.
References llvm::Block, BlockLabels, Context, and CyclePOT.
Referenced by computeJoinPoints().
|
inline |
Definition at line 584 of file GenericUniformityImpl.h.
References computeJoin(), Context, llvm::dbgs(), DivDesc, and LLVM_DEBUG.
Referenced by computeJoinPoints().
|
inline |
Definition at line 596 of file GenericUniformityImpl.h.
References computeJoin(), Context, llvm::dbgs(), DivDesc, and LLVM_DEBUG.
Referenced by computeJoinPoints().
BlockLabelMapT& llvm::DivergencePropagator< ContextT >::BlockLabels |
Definition at line 522 of file GenericUniformityImpl.h.
Referenced by computeJoin(), computeJoinPoints(), DivergencePropagator(), and printDefs().
const CycleInfoT& llvm::DivergencePropagator< ContextT >::CI |
Definition at line 510 of file GenericUniformityImpl.h.
Referenced by computeJoinPoints(), and DivergencePropagator().
const ContextT& llvm::DivergencePropagator< ContextT >::Context |
Definition at line 512 of file GenericUniformityImpl.h.
Referenced by computeJoin(), computeJoinPoints(), DivergencePropagator(), printDefs(), visitCycleExitEdge(), and visitEdge().
const ModifiedPO& llvm::DivergencePropagator< ContextT >::CyclePOT |
Definition at line 508 of file GenericUniformityImpl.h.
Referenced by computeJoin(), computeJoinPoints(), DivergencePropagator(), and printDefs().
std::unique_ptr<DivergenceDescriptorT> llvm::DivergencePropagator< ContextT >::DivDesc |
Definition at line 521 of file GenericUniformityImpl.h.
Referenced by computeJoinPoints(), DivergencePropagator(), visitCycleExitEdge(), and visitEdge().
const BlockT& llvm::DivergencePropagator< ContextT >::DivTermBlock |
Definition at line 511 of file GenericUniformityImpl.h.
Referenced by computeJoinPoints(), and DivergencePropagator().
const DominatorTreeT& llvm::DivergencePropagator< ContextT >::DT |
Definition at line 509 of file GenericUniformityImpl.h.
Referenced by DivergencePropagator().
SparseBitVector llvm::DivergencePropagator< ContextT >::FreshLabels |
Definition at line 518 of file GenericUniformityImpl.h.
Referenced by computeJoin(), and computeJoinPoints().