|
bool | llvm::isControlFlowEquivalent (const Instruction &I0, const Instruction &I1, const DominatorTree &DT, const PostDominatorTree &PDT) |
| Return true if I0 and I1 are control flow equivalent.
|
|
bool | llvm::isControlFlowEquivalent (const BasicBlock &BB0, const BasicBlock &BB1, const DominatorTree &DT, const PostDominatorTree &PDT) |
| Return true if BB0 and BB1 are control flow equivalent.
|
|
bool | llvm::isSafeToMoveBefore (Instruction &I, Instruction &InsertPoint, DominatorTree &DT, const PostDominatorTree *PDT=nullptr, DependenceInfo *DI=nullptr, bool CheckForEntireBlock=false) |
| Return true if I can be safely moved before InsertPoint .
|
|
bool | llvm::isSafeToMoveBefore (BasicBlock &BB, Instruction &InsertPoint, DominatorTree &DT, const PostDominatorTree *PDT=nullptr, DependenceInfo *DI=nullptr) |
| Return true if all instructions (except the terminator) in BB can be safely moved before InsertPoint .
|
|
void | llvm::moveInstructionsToTheBeginning (BasicBlock &FromBB, BasicBlock &ToBB, DominatorTree &DT, const PostDominatorTree &PDT, DependenceInfo &DI) |
| Move instructions, in an order-preserving manner, from FromBB to the beginning of ToBB when proven safe.
|
|
void | llvm::moveInstructionsToTheEnd (BasicBlock &FromBB, BasicBlock &ToBB, DominatorTree &DT, const PostDominatorTree &PDT, DependenceInfo &DI) |
| Move instructions, in an order-preserving manner, from FromBB to the end of ToBB when proven safe.
|
|
bool | llvm::nonStrictlyPostDominate (const BasicBlock *ThisBlock, const BasicBlock *OtherBlock, const DominatorTree *DT, const PostDominatorTree *PDT) |
| In case that two BBs ThisBlock and OtherBlock are control flow equivalent but they do not strictly dominate and post-dominate each other, we determine if ThisBlock is reached after OtherBlock in the control flow.
|
|
bool | llvm::isReachedBefore (const Instruction *I0, const Instruction *I1, const DominatorTree *DT, const PostDominatorTree *PDT) |
|