Return the outermost cycle made divergent by branch inside it.

Synopsis

Declared in <llvm/ADT/GenericUniformityImpl.h>

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

Description

This checks the "diverged entry" criterion defined in the docs/ConvergenceAnalysis.html.

Return Value

Outermost cycle made divergent by an internal branch, or null if none.

Parameters

Name

Description

CI

Cycle information for the function.

Cycle

Cycle containing JoinBlock to expand from.

DivTermBlock

Block of the divergent terminator inside the cycle nest.

JoinBlock

Block where diverged paths join.

DT

Dominator tree used to test header domination.

Context

SSA context used for debug printing.

Created with MrDocs