Lines Matching refs:BasicBlock
130 std::vector<BasicBlock *> *NewBBs);
153 std::vector<BasicBlock *> NewBBs; in unfoldSelectInstrs()
175 BasicBlock *EndBlock, StringRef NewBBName, BasicBlock **NewBlock, in createBasicBlockAndSinkSelectInst()
177 std::vector<BasicBlock *> *NewBBs) { in createBasicBlockAndSinkSelectInst()
181 *NewBlock = BasicBlock::Create(SI->getContext(), NewBBName, in createBasicBlockAndSinkSelectInst()
199 std::vector<BasicBlock *> *NewBBs) { in unfold()
202 BasicBlock *StartBlock = SI->getParent(); in unfold()
203 BasicBlock *EndBlock = SIUse->getParent(); in unfold()
212 BasicBlock *TrueBlock = nullptr; in unfold()
213 BasicBlock *FalseBlock = nullptr; in unfold()
232 FalseBlock = BasicBlock::Create(SI->getContext(), "si.unfold.false", in unfold()
244 BasicBlock *TT = EndBlock; in unfold()
245 BasicBlock *FT = EndBlock; in unfold()
268 BasicBlock *NewBlock = nullptr; in unfold()
309 BasicBlock *BB;
313 typedef std::deque<BasicBlock *> PathType;
315 typedef SmallPtrSet<const BasicBlock *, 8> VisitedBlocks;
321 typedef DenseMap<BasicBlock *, CloneList> DuplicateBlockMap;
329 for (const BasicBlock *BB : Path) { in operator <<()
355 const BasicBlock *getDeterminatorBB() const { return DBB; } in getDeterminatorBB()
356 void setDeterminator(const BasicBlock *BB) { DBB = BB; } in setDeterminator()
369 const BasicBlock *DBB = nullptr;
466 BasicBlock *SIBB = SI->getParent(); in isValidSelectInst()
503 BasicBlock *getSwitchBlock() { return SwitchBlock; } in getSwitchBlock()
522 const BasicBlock *PrevBB = Path.back(); in run()
523 for (const BasicBlock *BB : Path) { in run()
551 typedef DenseMap<const BasicBlock *, const PHINode *> StateDefMap;
553 PathsType paths(BasicBlock *BB, VisitedBlocks &Visited, in paths()
572 SmallSet<BasicBlock *, 4> Successors; in paths()
573 for (BasicBlock *Succ : successors(BB)) { in paths()
612 SmallPtrSet<BasicBlock *, 16> LoopBBs; in getStateDefMap()
614 for (BasicBlock *BB : Path) in getStateDefMap()
632 for (BasicBlock *IncomingBB : CurPhi->blocks()) { in getStateDefMap()
675 const BasicBlock *SwitchCondDefBB = SwitchCondI->getParent(); in isSupported()
676 const BasicBlock *SwitchCondUseBB = Switch->getParent(); in isSupported()
677 const BasicBlock *DeterminatorBB = TPath.getDeterminatorBB(); in isSupported()
693 for (BasicBlock *BB : Path) { in isSupported()
708 BasicBlock *SwitchBlock;
748 const BasicBlock *Determinator = TPath.getDeterminatorBB(); in isLegalAndProfitableToTransform()
751 BasicBlock *BB = SwitchPaths->getSwitchBlock(); in isLegalAndProfitableToTransform()
752 BasicBlock *VisitedBB = getClonedBB(BB, NextState, DuplicateMap); in isLegalAndProfitableToTransform()
860 BasicBlock *SwitchBlock = SwitchPaths->getSwitchBlock(); in createAllExitPaths()
872 SmallSet<BasicBlock *, 16> BlocksToClean; in createAllExitPaths()
873 for (BasicBlock *BB : successors(SwitchBlock)) in createAllExitPaths()
890 for (BasicBlock *BB : BlocksToClean) in createAllExitPaths()
902 SmallSet<BasicBlock *, 16> &BlocksToClean, in createExitPath()
905 const BasicBlock *Determinator = Path.getDeterminatorBB(); in createExitPath()
915 BasicBlock *PrevBB = PathBBs.size() == 1 ? *DetIt : *std::prev(DetIt); in createExitPath()
917 BasicBlock *BB = *BBIt; in createExitPath()
922 BasicBlock *NextBB = getClonedBB(BB, NextState, DuplicateMap); in createExitPath()
930 BasicBlock *NewBB = cloneBlockAndUpdatePredecessor( in createExitPath()
950 BasicBlock *BB = I->getParent(); in updateSSA()
996 BasicBlock *cloneBlockAndUpdatePredecessor(BasicBlock *BB, BasicBlock *PrevBB, in cloneBlockAndUpdatePredecessor()
1002 BasicBlock *NewBB = CloneBasicBlock( in cloneBlockAndUpdatePredecessor()
1025 SmallPtrSet<BasicBlock *, 4> SuccSet; in cloneBlockAndUpdatePredecessor()
1038 void updateSuccessorPhis(BasicBlock *BB, BasicBlock *ClonedBB, in updateSuccessorPhis()
1041 std::vector<BasicBlock *> BlocksToUpdate; in updateSuccessorPhis()
1047 BasicBlock *NextCase = getNextCaseSuccessor(Switch, NextState); in updateSuccessorPhis()
1049 BasicBlock *ClonedSucc = getClonedBB(NextCase, NextState, DuplicateMap); in updateSuccessorPhis()
1055 for (BasicBlock *Succ : successors(BB)) { in updateSuccessorPhis()
1061 BasicBlock *ClonedSucc = getClonedBB(Succ, NextState, DuplicateMap); in updateSuccessorPhis()
1070 for (BasicBlock *Succ : BlocksToUpdate) { in updateSuccessorPhis()
1091 void updatePredecessor(BasicBlock *PrevBB, BasicBlock *OldBB, in updatePredecessor()
1092 BasicBlock *NewBB, DomTreeUpdater *DTU) { in updatePredecessor()
1150 BasicBlock *BB = TPath.getPath().back(); in updateLastSuccessor()
1151 BasicBlock *LastBlock = getClonedBB(BB, NextState, DuplicateMap); in updateLastSuccessor()
1158 BasicBlock *NextCase = getNextCaseSuccessor(Switch, NextState); in updateLastSuccessor()
1161 SmallPtrSet<BasicBlock *, 4> SuccSet; in updateLastSuccessor()
1162 for (BasicBlock *Succ : successors(LastBlock)) { in updateLastSuccessor()
1175 void cleanPhiNodes(BasicBlock *BB) { in cleanPhiNodes()
1191 std::vector<BasicBlock *> BlocksToRemove; in cleanPhiNodes()
1192 for (BasicBlock *IncomingBB : Phi->blocks()) { in cleanPhiNodes()
1196 for (BasicBlock *BB : BlocksToRemove) in cleanPhiNodes()
1203 BasicBlock *getClonedBB(BasicBlock *BB, const APInt &NextState, in getClonedBB()
1217 BasicBlock *getNextCaseSuccessor(SwitchInst *Switch, const APInt &NextState) { in getNextCaseSuccessor()
1218 BasicBlock *NextCase = nullptr; in getNextCaseSuccessor()
1231 bool isPredecessor(BasicBlock *BB, BasicBlock *IncomingBB) { in isPredecessor()
1258 for (BasicBlock &BB : F) { in run()