class PredicateInfoBuilder

Declaration

class PredicateInfoBuilder { /* full declaration omitted */ };

Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:243

Member Variables

private llvm::PredicateInfo& PI
private llvm::Function& F
private llvm::DominatorTree& DT
private llvm::AssumptionCache& AC
private SmallVector<llvm::PredicateInfoBuilder::ValueInfo, 32> ValueInfos
private DenseMap<llvm::Value*, unsigned int> ValueInfoNums
private DenseSet<std::pair<BasicBlock*, BasicBlock*>> EdgeUsesOnly

Method Overview

  • public PredicateInfoBuilder(llvm::PredicateInfo & PI, llvm::Function & F, llvm::DominatorTree & DT, llvm::AssumptionCache & AC)
  • private void addInfoFor(SmallVectorImpl<llvm::Value *> & OpsToRename, llvm::Value * Op, llvm::PredicateBase * PB)
  • public void buildPredicateInfo()
  • private void convertUsesToDFSOrdered(llvm::Value *, SmallVectorImpl<llvm::ValueDFS> &)
  • private llvm::PredicateInfoBuilder::ValueInfo & getOrCreateValueInfo(llvm::Value *)
  • private const llvm::PredicateInfoBuilder::ValueInfo & getValueInfo(llvm::Value *) const
  • private llvm::Value * materializeStack(unsigned int &, llvm::PredicateInfoBuilder::ValueDFSStack &, llvm::Value *)
  • private void popStackUntilDFSScope(llvm::PredicateInfoBuilder::ValueDFSStack &, const llvm::ValueDFS &)
  • private void processAssume(llvm::IntrinsicInst *, llvm::BasicBlock *, SmallVectorImpl<llvm::Value *> & OpsToRename)
  • private void processBranch(llvm::BranchInst *, llvm::BasicBlock *, SmallVectorImpl<llvm::Value *> & OpsToRename)
  • private void processSwitch(llvm::SwitchInst *, llvm::BasicBlock *, SmallVectorImpl<llvm::Value *> & OpsToRename)
  • private void renameUses(SmallVectorImpl<llvm::Value *> & OpsToRename)
  • private bool stackIsInScope(const llvm::PredicateInfoBuilder::ValueDFSStack &, const llvm::ValueDFS &) const

Methods

PredicateInfoBuilder(llvm::PredicateInfo& PI,
                     llvm::Function& F,
                     llvm::DominatorTree& DT,
                     llvm::AssumptionCache& AC)

Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:288

Parameters

llvm::PredicateInfo& PI
llvm::Function& F
llvm::DominatorTree& DT
llvm::AssumptionCache& AC

void addInfoFor(
    SmallVectorImpl<llvm::Value*>& OpsToRename,
    llvm::Value* Op,
    llvm::PredicateBase* PB)

Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:278

Parameters

SmallVectorImpl<llvm::Value*>& OpsToRename
llvm::Value* Op
llvm::PredicateBase* PB

void buildPredicateInfo()

Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:295

void convertUsesToDFSOrdered(
    llvm::Value*,
    SmallVectorImpl<llvm::ValueDFS>&)

Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:282

Parameters

llvm::Value*
SmallVectorImpl<llvm::ValueDFS>&

llvm::PredicateInfoBuilder::ValueInfo&
getOrCreateValueInfo(llvm::Value*)

Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:268

Parameters

llvm::Value*

const llvm::PredicateInfoBuilder::ValueInfo&
getValueInfo(llvm::Value*) const

Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:269

Parameters

llvm::Value*

llvm::Value* materializeStack(
    unsigned int&,
    llvm::PredicateInfoBuilder::ValueDFSStack&,
    llvm::Value*)

Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:283

Parameters

unsigned int&
llvm::PredicateInfoBuilder::ValueDFSStack&
llvm::Value*

void popStackUntilDFSScope(
    llvm::PredicateInfoBuilder::ValueDFSStack&,
    const llvm::ValueDFS&)

Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:285

Parameters

llvm::PredicateInfoBuilder::ValueDFSStack&
const llvm::ValueDFS&

void processAssume(
    llvm::IntrinsicInst*,
    llvm::BasicBlock*,
    SmallVectorImpl<llvm::Value*>& OpsToRename)

Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:271

Parameters

llvm::IntrinsicInst*
llvm::BasicBlock*
SmallVectorImpl<llvm::Value*>& OpsToRename

void processBranch(
    llvm::BranchInst*,
    llvm::BasicBlock*,
    SmallVectorImpl<llvm::Value*>& OpsToRename)

Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:273

Parameters

llvm::BranchInst*
llvm::BasicBlock*
SmallVectorImpl<llvm::Value*>& OpsToRename

void processSwitch(
    llvm::SwitchInst*,
    llvm::BasicBlock*,
    SmallVectorImpl<llvm::Value*>& OpsToRename)

Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:275

Parameters

llvm::SwitchInst*
llvm::BasicBlock*
SmallVectorImpl<llvm::Value*>& OpsToRename

void renameUses(
    SmallVectorImpl<llvm::Value*>& OpsToRename)

Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:277

Parameters

SmallVectorImpl<llvm::Value*>& OpsToRename

bool stackIsInScope(
    const llvm::PredicateInfoBuilder::
        ValueDFSStack&,
    const llvm::ValueDFS&) const

Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:284

Parameters

const llvm::PredicateInfoBuilder::ValueDFSStack&
const llvm::ValueDFS&