|
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 483 of file GenericUniformityImpl.h.
| using llvm::DivergencePropagator< ContextT >::BlockLabelMapT = typename SyncDependenceAnalysisT::BlockLabelMap |
Definition at line 497 of file GenericUniformityImpl.h.
| using llvm::DivergencePropagator< ContextT >::BlockT = typename ContextT::BlockT |
Definition at line 485 of file GenericUniformityImpl.h.
| using llvm::DivergencePropagator< ContextT >::CycleInfoT = GenericCycleInfo<ContextT> |
Definition at line 490 of file GenericUniformityImpl.h.
| using llvm::DivergencePropagator< ContextT >::CycleT = typename CycleInfoT::CycleT |
Definition at line 491 of file GenericUniformityImpl.h.
| using llvm::DivergencePropagator< ContextT >::DivergenceDescriptorT |
Definition at line 495 of file GenericUniformityImpl.h.
| using llvm::DivergencePropagator< ContextT >::DominatorTreeT = typename ContextT::DominatorTreeT |
Definition at line 486 of file GenericUniformityImpl.h.
| using llvm::DivergencePropagator< ContextT >::FunctionT = typename ContextT::FunctionT |
Definition at line 487 of file GenericUniformityImpl.h.
| using llvm::DivergencePropagator< ContextT >::ModifiedPO = ModifiedPostOrder<ContextT> |
Definition at line 493 of file GenericUniformityImpl.h.
| using llvm::DivergencePropagator< ContextT >::SyncDependenceAnalysisT = GenericSyncDependenceAnalysis<ContextT> |
Definition at line 494 of file GenericUniformityImpl.h.
| using llvm::DivergencePropagator< ContextT >::ValueRefT = typename ContextT::ValueRefT |
Definition at line 488 of file GenericUniformityImpl.h.
|
inline |
Definition at line 515 of file GenericUniformityImpl.h.
References BlockLabels, CI, Context, CyclePOT, DivDesc, DivTermBlock, and DT.
|
inline |
Definition at line 538 of file GenericUniformityImpl.h.
References BlockLabels, Context, CyclePOT, llvm::dbgs(), FreshLabels, and LLVM_DEBUG.
Referenced by visitCycleExitEdge(), and visitEdge().
|
inline |
Definition at line 598 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 521 of file GenericUniformityImpl.h.
References llvm::Block, BlockLabels, Context, and CyclePOT.
Referenced by computeJoinPoints().
|
inline |
Definition at line 575 of file GenericUniformityImpl.h.
References computeJoin(), Context, llvm::dbgs(), DivDesc, and LLVM_DEBUG.
Referenced by computeJoinPoints().
|
inline |
Definition at line 587 of file GenericUniformityImpl.h.
References computeJoin(), Context, llvm::dbgs(), DivDesc, and LLVM_DEBUG.
Referenced by computeJoinPoints().
| BlockLabelMapT& llvm::DivergencePropagator< ContextT >::BlockLabels |
Definition at line 513 of file GenericUniformityImpl.h.
Referenced by computeJoin(), computeJoinPoints(), DivergencePropagator(), and printDefs().
| const CycleInfoT& llvm::DivergencePropagator< ContextT >::CI |
Definition at line 501 of file GenericUniformityImpl.h.
Referenced by computeJoinPoints(), and DivergencePropagator().
| const ContextT& llvm::DivergencePropagator< ContextT >::Context |
Definition at line 503 of file GenericUniformityImpl.h.
Referenced by computeJoin(), computeJoinPoints(), DivergencePropagator(), printDefs(), visitCycleExitEdge(), and visitEdge().
| const ModifiedPO& llvm::DivergencePropagator< ContextT >::CyclePOT |
Definition at line 499 of file GenericUniformityImpl.h.
Referenced by computeJoin(), computeJoinPoints(), DivergencePropagator(), and printDefs().
| std::unique_ptr<DivergenceDescriptorT> llvm::DivergencePropagator< ContextT >::DivDesc |
Definition at line 512 of file GenericUniformityImpl.h.
Referenced by computeJoinPoints(), DivergencePropagator(), visitCycleExitEdge(), and visitEdge().
| const BlockT& llvm::DivergencePropagator< ContextT >::DivTermBlock |
Definition at line 502 of file GenericUniformityImpl.h.
Referenced by computeJoinPoints(), and DivergencePropagator().
| const DominatorTreeT& llvm::DivergencePropagator< ContextT >::DT |
Definition at line 500 of file GenericUniformityImpl.h.
Referenced by DivergencePropagator().
| SparseBitVector llvm::DivergencePropagator< ContextT >::FreshLabels |
Definition at line 509 of file GenericUniformityImpl.h.
Referenced by computeJoin(), and computeJoinPoints().