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)
PredicateInfoBuilder(llvm::PredicateInfo& PI,
llvm::Function& F,
llvm::DominatorTree& DT,
llvm::AssumptionCache& AC)
Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:288
Parameters
¶void addInfoFor(
SmallVectorImpl<llvm::Value*>& OpsToRename,
llvm::Value* Op,
llvm::PredicateBase* PB)
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()
void buildPredicateInfo()
Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:295
¶void convertUsesToDFSOrdered(
llvm::Value*,
SmallVectorImpl<llvm::ValueDFS>&)
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*)
llvm::PredicateInfoBuilder::ValueInfo&
getOrCreateValueInfo(llvm::Value*)
Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:268
Parameters
¶const llvm::PredicateInfoBuilder::ValueInfo&
getValueInfo(llvm::Value*) const
const llvm::PredicateInfoBuilder::ValueInfo&
getValueInfo(llvm::Value*) const
Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:269
Parameters
¶llvm::Value* materializeStack(
unsigned int&,
llvm::PredicateInfoBuilder::ValueDFSStack&,
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&)
void popStackUntilDFSScope(
llvm::PredicateInfoBuilder::ValueDFSStack&,
const llvm::ValueDFS&)
Declared at: llvm/lib/Transforms/Utils/PredicateInfo.cpp:285
Parameters
¶void processAssume(
llvm::IntrinsicInst*,
llvm::BasicBlock*,
SmallVectorImpl<llvm::Value*>& OpsToRename)
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)
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)
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)
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
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&