| /openbsd-src/gnu/llvm/llvm/include/llvm/Analysis/ |
| H A D | LoopInfoImpl.h | 32 template <class BlockT, class LoopT> 33 void LoopBase<BlockT, LoopT>::getExitingBlocks( in getExitingBlocks() 34 SmallVectorImpl<BlockT *> &ExitingBlocks) const { in getExitingBlocks() 37 for (auto *Succ : children<BlockT *>(BB)) in getExitingBlocks() 47 template <class BlockT, class LoopT> 48 BlockT *LoopBase<BlockT, LoopT>::getExitingBlock() const { in getExitingBlock() 50 auto notInLoop = [&](BlockT *BB) { return !contains(BB); }; in getExitingBlock() 51 auto isExitBlock = [&](BlockT *BB, bool AllowRepeats) -> BlockT * { in getExitingBlock() 54 return any_of(children<BlockT *>(BB), notInLoop) ? BB : nullptr; in getExitingBlock() 57 return find_singleton<BlockT>(blocks(), isExitBlock); in getExitingBlock() [all …]
|
| H A D | DominanceFrontierImpl.h | 33 template <class BlockT> 36 using DomTreeNodeT = DomTreeNodeBase<BlockT>; 38 DFCalculateWorkObject(BlockT *B, BlockT *P, const DomTreeNodeT *N, in DFCalculateWorkObject() 42 BlockT *currentBB; 43 BlockT *parentBB; 48 template <class BlockT, bool IsPostDom> 49 void DominanceFrontierBase<BlockT, IsPostDom>::removeBlock(BlockT *BB) { in removeBlock() 56 template <class BlockT, bool IsPostDom> 57 void DominanceFrontierBase<BlockT, IsPostDom>::addToFrontier(iterator I, in addToFrontier() 58 BlockT *Node) { in addToFrontier() [all …]
|
| H A D | RegionInfo.h | 87 using BlockT = BasicBlock; 121 using BlockT = typename Tr::BlockT; 135 PointerIntPair<BlockT *, 1, bool> entry; 150 inline RegionNodeBase(RegionT *Parent, BlockT *Entry, 174 inline BlockT *getEntry() const { return entry.getPointer(); } 258 using BlockT = typename Tr::BlockT; 267 using BlockTraits = GraphTraits<BlockT *>; 268 using InvBlockTraits = GraphTraits<Inverse<BlockT *>>; 278 BlockT *exit; 285 using BBNodeMapT = std::map<BlockT *, std::unique_ptr<RegionNodeT>>; [all …]
|
| H A D | RegionInfoImpl.h | 42 RegionBase<Tr>::RegionBase(BlockT *Entry, BlockT *Exit, in RegionBase() 55 void RegionBase<Tr>::replaceEntry(BlockT *BB) { in replaceEntry() 60 void RegionBase<Tr>::replaceExit(BlockT *BB) { in replaceExit() 66 void RegionBase<Tr>::replaceEntryRecursive(BlockT *NewEntry) { in replaceEntryRecursive() 68 BlockT *OldEntry = getEntry(); in replaceEntryRecursive() 84 void RegionBase<Tr>::replaceExitRecursive(BlockT *NewExit) { in replaceExitRecursive() 86 BlockT *OldExit = getExit(); in replaceExitRecursive() 102 bool RegionBase<Tr>::contains(const BlockT *B) const { in contains() 103 BlockT *BB = const_cast<BlockT *>(B); in contains() 108 BlockT *entry = getEntry(), *exit = getExit(); in contains() [all …]
|
| H A D | DominanceFrontier.h | 39 template <class BlockT, bool IsPostDom> 42 using DomSetType = std::set<BlockT *>; // Dom set for a bb 43 using DomSetMapType = std::map<BlockT *, DomSetType>; // Dom set map 46 using BlockTraits = GraphTraits<BlockT *>; 50 SmallVector<BlockT *, IsPostDom ? 4 : 1> Roots; 59 const SmallVectorImpl<BlockT *> &getRoots() const { return Roots; } in getRoots() 61 BlockT *getRoot() const { in getRoot() 83 iterator find(BlockT *B) { return Frontiers.find(B); } in find() 84 const_iterator find(BlockT *B) const { return Frontiers.find(B); } in find() 86 iterator addBasicBlock(BlockT *BB, const DomSetType &frontier) { in addBasicBlock() [all …]
|
| H A D | LoopInfo.h | 74 template <class BlockT, class LoopT> class LoopBase { 80 std::vector<BlockT *> Blocks; 82 SmallPtrSet<const BlockT *, 8> DenseBlockSet; 89 LoopBase(const LoopBase<BlockT, LoopT> &) = delete; 90 const LoopBase<BlockT, LoopT> & 91 operator=(const LoopBase<BlockT, LoopT> &) = delete; 105 BlockT *getHeader() const { return getBlocks().front(); } in getHeader() 149 bool contains(const BlockT *BB) const { in contains() 188 ArrayRef<BlockT *> getBlocks() const { in getBlocks() 192 typedef typename ArrayRef<BlockT *>::const_iterator block_iterator; [all …]
|
| H A D | RegionIterator.h | 38 template <class NodeRef, class BlockT, class RegionT> class RNSuccIterator { 47 using BlockTraits = GraphTraits<BlockT *>; 87 NodeRef getISucc(BlockT *BB) const { in getISucc() 95 inline BlockT* getRegionSucc() const { in getRegionSucc() 101 inline bool isExit(BlockT* BB) const { in isExit() 106 using Self = RNSuccIterator<NodeRef, BlockT, RegionT>; 137 BlockT *BB = isRegionMode() ? getRegionSucc() : *BItor; 169 template <class NodeRef, class BlockT, class RegionT> 170 class RNSuccIterator<FlatIt<NodeRef>, BlockT, RegionT> { 171 using BlockTraits = GraphTraits<BlockT *>; [all …]
|
| H A D | BlockFrequencyInfoImpl.h | 547 template <class BlockT> struct TypeMap {}; 549 using BlockT = BasicBlock; 557 using BlockT = MachineBasicBlock; 565 template <class BlockT, class BFIImplT> 575 template <class BlockT> std::string getBlockName(const BlockT *BB) { 852 using BlockT = typename bfi_detail::TypeMap<BT>::BlockT; 859 using Successor = GraphTraits<const BlockT *>; 860 using Predecessor = GraphTraits<Inverse<const BlockT *>>; 862 bfi_detail::BFICallbackVH<BlockT, BlockFrequencyInfoImpl>; 869 std::vector<const BlockT *> RPOT; [all …]
|
| H A D | BlockFrequencyInfo.h | 31 template <class BlockT> class BlockFrequencyInfoImpl;
|
| /openbsd-src/gnu/llvm/llvm/include/llvm/ADT/ |
| H A D | GenericCycleInfo.h | 50 using BlockT = typename ContextT::BlockT; 63 SmallVector<BlockT *, 1> Entries; 70 std::vector<BlockT *> Blocks; 87 void appendEntry(BlockT *Block) { Entries.push_back(Block); } in appendEntry() 88 void appendBlock(BlockT *Block) { Blocks.push_back(Block); } in appendBlock() 101 BlockT *getHeader() const { return Entries[0]; } in getHeader() 103 const SmallVectorImpl<BlockT *> & getEntries() const { in getEntries() 108 bool isEntry(const BlockT *Block) const { in isEntry() 113 bool contains(const BlockT *Block) const { in contains() 131 void getExitBlocks(SmallVectorImpl<BlockT *> &TmpStorage) const; [all …]
|
| H A D | GenericUniformityImpl.h | 88 using BlockT = typename ContextT::BlockT; 94 using const_iterator = typename std::vector<BlockT *>::const_iterator; 104 unsigned count(BlockT *BB) const { return POIndex.count(BB); } in count() 105 const BlockT *operator[](size_t idx) const { return m_order[idx]; } 107 void appendBlock(const BlockT &BB, bool isReducibleCycleHeader = false) { 116 unsigned getIndex(const BlockT *BB) const { in getIndex() 121 bool isReducibleCycleHeader(const BlockT *BB) const { in isReducibleCycleHeader() 126 SmallVector<const BlockT *> m_order; 127 DenseMap<const BlockT *, unsigned> POIndex; 128 SmallPtrSet<const BlockT *, 32> ReducibleCycleHeaders; [all …]
|
| H A D | GenericCycleImpl.h | 48 SmallVectorImpl<BlockT *> &TmpStorage) const { in getExitBlocks() 52 for (BlockT *Block : blocks()) { in getExitBlocks() 57 BlockT *Succ = TmpStorage[Idx]; in getExitBlocks() 70 auto GenericCycle<ContextT>::getCyclePreheader() const -> BlockT * { 71 BlockT *Predecessor = getCyclePredecessor(); 88 auto GenericCycle<ContextT>::getCyclePredecessor() const -> BlockT * { 92 BlockT *Out = nullptr; 95 BlockT *Header = getHeader(); 109 using BlockT = typename ContextT::BlockT; variable 129 DenseMap<BlockT *, DFSInfo> BlockDFSInfo; [all …]
|
| H A D | GenericUniformityInfo.h | 38 using BlockT = typename ContextT::BlockT; 68 bool hasDivergentTerminator(const BlockT &B);
|
| /openbsd-src/gnu/llvm/llvm/include/llvm/IR/ |
| H A D | CFG.h | 137 template <class InstructionT, class BlockT> 139 : public iterator_facade_base<SuccIterator<InstructionT, BlockT>, 140 std::random_access_iterator_tag, BlockT, int, 141 BlockT *, BlockT *> { 144 using pointer = BlockT *; 145 using reference = BlockT *; 150 using Self = SuccIterator<InstructionT, BlockT>; 203 inline BlockT *operator*() const { return Inst->getSuccessor(Idx); } 206 inline BlockT *operator->() const { return operator*(); } 236 inline BlockT *getSource() { in getSource()
|
| H A D | SSAContext.h | 41 using BlockT = BasicBlock; 47 using DominatorTreeT = DominatorTreeBase<BlockT, false>;
|
| /openbsd-src/gnu/llvm/llvm/include/llvm/CodeGen/ |
| H A D | MachineSSAContext.h | 46 using BlockT = MachineBasicBlock; 52 using DominatorTreeT = DominatorTreeBase<BlockT, false>;
|
| H A D | MachineBlockFrequencyInfo.h | 24 template <class BlockT> class BlockFrequencyInfoImpl;
|
| H A D | MachineRegionInfo.h | 32 using BlockT = MachineBasicBlock;
|
| /openbsd-src/gnu/llvm/llvm/include/llvm/Transforms/Utils/ |
| H A D | SampleProfileInference.h | 33 template <class BlockT> struct TypeMap {};
|
| H A D | SampleProfileLoaderBaseImpl.h | 53 template <typename BlockT> struct IRTraits;
|