struct DivergencePropagator

Declaration

struct DivergencePropagator { /* full declaration omitted */ };

Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:261

Member Variables

public const llvm::ModifiedPO& LoopPOT
public const llvm::DominatorTree& DT
public const llvm::PostDominatorTree& PDT
public const llvm::LoopInfo& LI
public const llvm::BasicBlock& DivTermBlock
public llvm::DivergencePropagator::BlockLabelVec BlockLabels
public std::unique_ptr<ControlDivergenceDesc> DivDesc

Method Overview

  • public DivergencePropagator(const llvm::ModifiedPO & LoopPOT, const llvm::DominatorTree & DT, const llvm::PostDominatorTree & PDT, const llvm::LoopInfo & LI, const llvm::BasicBlock & DivTermBlock)
  • public bool computeJoin(const llvm::BasicBlock & SuccBlock, const llvm::BasicBlock & PushedLabel)
  • public std::unique_ptr<ControlDivergenceDesc> computeJoinPoints()
  • public void printDefs(llvm::raw_ostream & Out)
  • public bool visitEdge(const llvm::BasicBlock & SuccBlock, const llvm::BasicBlock & DefBlock)
  • public bool visitLoopExitEdge(const llvm::BasicBlock & ExitBlock, const llvm::BasicBlock & DefBlock, bool FromParentLoop)

Methods

DivergencePropagator(
    const llvm::ModifiedPO& LoopPOT,
    const llvm::DominatorTree& DT,
    const llvm::PostDominatorTree& PDT,
    const llvm::LoopInfo& LI,
    const llvm::BasicBlock& DivTermBlock)

Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:278

Parameters

const llvm::ModifiedPO& LoopPOT
const llvm::DominatorTree& DT
const llvm::PostDominatorTree& PDT
const llvm::LoopInfo& LI
const llvm::BasicBlock& DivTermBlock

bool computeJoin(
    const llvm::BasicBlock& SuccBlock,
    const llvm::BasicBlock& PushedLabel)

Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:302

Parameters

const llvm::BasicBlock& SuccBlock
const llvm::BasicBlock& PushedLabel

std::unique_ptr<ControlDivergenceDesc>
computeJoinPoints()

Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:346

void printDefs(llvm::raw_ostream& Out)

Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:285

Parameters

llvm::raw_ostream& Out

bool visitEdge(const llvm::BasicBlock& SuccBlock,
               const llvm::BasicBlock& DefBlock)

Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:336

Parameters

const llvm::BasicBlock& SuccBlock
const llvm::BasicBlock& DefBlock

bool visitLoopExitEdge(
    const llvm::BasicBlock& ExitBlock,
    const llvm::BasicBlock& DefBlock,
    bool FromParentLoop)

Declared at: llvm/lib/Analysis/SyncDependenceAnalysis.cpp:319

Parameters

const llvm::BasicBlock& ExitBlock
const llvm::BasicBlock& DefBlock
bool FromParentLoop