llvm::getOutermostDivergentCycle

Return the outermost cycle made divergent by a join of paths from DivTermBlock through JoinBlock.

Synopsis

Declared in <llvm/ADT/GenericUniformityImpl.h>

template<
    typename ContextT,
    typename CycleInfoT,
    typename BlockT,
    typename DominatorTreeT>
CycleRef
getOutermostDivergentCycle(
    CycleInfoT const& CI,
    CycleRef Cycle,
    BlockT const* DivTermBlock,
    BlockT const* JoinBlock,
    DominatorTreeT const& DT,
    ContextT& Context);

Return Value

Outermost divergent cycle, preferring the internal criterion, or null if none.

Parameters

NameDescription
CICycle information for the function.
CycleInnermost cycle containing JoinBlock to expand from.
DivTermBlockBlock of the divergent terminator that seeded the paths.
JoinBlockBlock where diverged paths join.
DTDominator tree used for the internal-divergence criterion.
ContextSSA context used for debug printing.