• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/contrib/llvm-project/llvm/lib/Transforms/Utils/

Lines Matching refs:BasicBlock

17 #include "llvm/IR/BasicBlock.h"
40 bool FlattenParallelAndOr(BasicBlock *BB, IRBuilder<> &Builder);
45 bool MergeIfRegion(BasicBlock *BB, IRBuilder<> &Builder);
52 bool CompareIfRegionBlock(BasicBlock *Head1, BasicBlock *Head2,
53 BasicBlock *Block1, BasicBlock *Block2);
58 bool run(BasicBlock *BB);
136 bool FlattenCFGOpt::FlattenParallelAndOr(BasicBlock *BB, IRBuilder<> &Builder) {
141 BasicBlock *LastCondBlock = nullptr;
142 BasicBlock *FirstCondBlock = nullptr;
143 BasicBlock *UnCondBlock = nullptr;
147 SmallPtrSet<BasicBlock *, 16> Preds(pred_begin(BB), pred_end(BB));
148 for (SmallPtrSetIterator<BasicBlock *> PI = Preds.begin(), PE = Preds.end();
150 BasicBlock *Pred = *PI;
157 BasicBlock *PP = Pred->getSinglePredecessor();
190 for (BasicBlock::iterator BI = Pred->begin(), BE = PBI->getIterator();
206 BasicBlock *PS1 = PBI->getSuccessor(0);
207 BasicBlock *PS2 = PBI->getSuccessor(1);
208 BasicBlock *PS = (PS1 == BB) ? PS2 : PS1;
235 BasicBlock *PS1 = TBB->getSuccessor(0);
236 BasicBlock *PS2 = TBB->getSuccessor(1);
250 BasicBlock *CurrBlock = LastCondBlock;
280 BasicBlock *CB;
324 bool FlattenCFGOpt::CompareIfRegionBlock(BasicBlock *Head1, BasicBlock *Head2,
325 BasicBlock *Block1,
326 BasicBlock *Block2) {
339 BasicBlock::iterator iter1 = Block1->begin();
340 BasicBlock::iterator end1 = Block1->getTerminator()->getIterator();
341 BasicBlock::iterator iter2 = Block2->begin();
342 BasicBlock::iterator end2 = Block2->getTerminator()->getIterator();
369 for (BasicBlock::iterator BI(PBI2), BE(PTI2); BI != BE; ++BI) {
398 bool FlattenCFGOpt::MergeIfRegion(BasicBlock *BB, IRBuilder<> &Builder) {
399 BasicBlock *IfTrue2, *IfFalse2;
405 BasicBlock *SecondEntryBlock = CInst2->getParent();
409 BasicBlock *IfTrue1, *IfFalse1;
415 BasicBlock *FirstEntryBlock = CInst1->getParent();
436 for (BasicBlock::iterator BI(PBI2), BE(PTI2); BI != BE; ++BI) {
449 BasicBlock *SaveInsertBB = Builder.GetInsertBlock();
450 BasicBlock::iterator SaveInsertPt = Builder.GetInsertPoint();
457 for (BasicBlock *Succ : successors(PBI)) {
485 bool FlattenCFGOpt::run(BasicBlock *BB) {
499 bool llvm::FlattenCFG(BasicBlock *BB, AliasAnalysis *AA) {