Lines Matching defs:Blocks

113   ArrayRef<BasicBlock *> Blocks;
119 LockstepReverseIterator(ArrayRef<BasicBlock *> Blocks) : Blocks(Blocks) {
126 for (BasicBlock *BB : Blocks)
129 for (BasicBlock *BB : Blocks) {
145 // ActiveBlocks will be later copied to Blocks using std::copy. The
146 // resultant order of elements in Blocks needs to be deterministic.
148 // copying. And we cannot simply sort Blocks as they need to match the
152 void restrictToBlocks(SmallSetVector<BasicBlock *, 4> &Blocks) {
154 if (!Blocks.contains((*II)->getParent())) {
193 SmallVector<BasicBlock *, 4> Blocks;
211 OS << "<Candidate Cost=" << C.Cost << " #Blocks=" << C.NumBlocks
224 SmallVector<BasicBlock *, 4> Blocks;
233 // As the Values and Blocks are populated in a deterministic order.
246 Blocks.push_back(P.first);
262 assert(Values.size() > 1 && Blocks.size() > 1 &&
268 assert(llvm::is_sorted(Blocks, ComesBefore));
272 assert(cast<Instruction>(V)->getParent() == Blocks[C]);
282 // The order of Values and Blocks are already ordered by the caller.
284 llvm::copy(B, std::back_inserter(Blocks));
292 llvm::copy(B, std::back_inserter(Blocks));
298 /// \c NewBlocks must be a subset of \c this->Blocks.
300 auto BI = Blocks.begin();
302 while (BI != Blocks.end()) {
305 BI = Blocks.erase(BI);
312 assert(Blocks.size() == NewBlocks.size());
337 return Values == Other.Values && Blocks == Other.Blocks;
661 /// Perform the actual mechanics of sinking an instruction from Blocks into
663 void sinkLastInstruction(ArrayRef<BasicBlock *> Blocks, BasicBlock *BBEnd);
802 append_range(Cand.Blocks, ActivePreds);
865 if (C.Blocks.size() < NumOrigPreds) {
868 InsertBB = SplitBlockPredecessors(BBEnd, C.Blocks, ".gvnsink.split");
877 sinkLastInstruction(C.Blocks, InsertBB);
882 void GVNSink::sinkLastInstruction(ArrayRef<BasicBlock *> Blocks,
885 for (BasicBlock *BB : Blocks)