Lines Matching defs:BasicBlock

46 #include "llvm/IR/BasicBlock.h"
112 ArrayRef<BasicBlock *> Blocks;
113 SmallSetVector<BasicBlock *, 4> ActiveBlocks;
118 LockstepReverseIterator(ArrayRef<BasicBlock *> Blocks) : Blocks(Blocks) {
125 for (BasicBlock *BB : Blocks)
128 for (BasicBlock *BB : Blocks) {
149 SmallSetVector<BasicBlock *, 4> &getActiveBlocks() { return ActiveBlocks; }
151 void restrictToBlocks(SmallSetVector<BasicBlock *, 4> &Blocks) {
192 SmallVector<BasicBlock *, 4> Blocks;
223 SmallVector<BasicBlock *, 4> Blocks;
229 const DenseMap<const BasicBlock *, unsigned> &BlockOrder) {
230 // BasicBlock comes first so we sort by basic block pointer order,
233 using OpsType = std::pair<BasicBlock *, Value *>;
260 verifyModelledPHI(const DenseMap<const BasicBlock *, unsigned> &BlockOrder) {
263 auto ComesBefore = [BlockOrder](const BasicBlock *BB1,
264 const BasicBlock *BB2) {
279 SmallSetVector<BasicBlock *, 4> &B,
280 const DenseMap<const BasicBlock *, unsigned> &BlockOrder) {
290 SmallSetVector<BasicBlock *, 4> &B) {
298 void restrictToBlocks(const SmallSetVector<BasicBlock *, 4> &NewBlocks) {
411 using BasicBlocksSet = SmallPtrSet<const BasicBlock *, 32>;
624 DenseMap<const BasicBlock *, unsigned> RPOTOrder;
642 void analyzeInitialPHIs(BasicBlock *BB, ModelledPHISet &PHIs,
654 unsigned sinkBB(BasicBlock *BBEnd);
658 void sinkLastInstruction(ArrayRef<BasicBlock *> Blocks, BasicBlock *BBEnd);
661 void foldPointlessPHINodes(BasicBlock *BB) {
802 unsigned GVNSink::sinkBB(BasicBlock *BBEnd) {
805 SmallVector<BasicBlock *, 4> Preds;
818 auto ComesBefore = [this](const BasicBlock *BB1, const BasicBlock *BB2) {
826 llvm::erase_if(Preds, [](BasicBlock *BB) {
859 BasicBlock *InsertBB = BBEnd;
877 void GVNSink::sinkLastInstruction(ArrayRef<BasicBlock *> Blocks,
878 BasicBlock *BBEnd) {
880 for (BasicBlock *BB : Blocks)