Home
last modified time | relevance | path

Searched refs:BlockT (Results 1 – 20 of 20) sorted by relevance

/openbsd-src/gnu/llvm/llvm/include/llvm/Analysis/
H A DLoopInfoImpl.h32 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 DDominanceFrontierImpl.h33 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 DRegionInfo.h87 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 DRegionInfoImpl.h42 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 DDominanceFrontier.h39 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 DLoopInfo.h74 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 DRegionIterator.h38 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 DBlockFrequencyInfoImpl.h547 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 DBlockFrequencyInfo.h31 template <class BlockT> class BlockFrequencyInfoImpl;
/openbsd-src/gnu/llvm/llvm/include/llvm/ADT/
H A DGenericCycleInfo.h50 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 DGenericUniformityImpl.h88 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 DGenericCycleImpl.h48 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 DGenericUniformityInfo.h38 using BlockT = typename ContextT::BlockT;
68 bool hasDivergentTerminator(const BlockT &B);
/openbsd-src/gnu/llvm/llvm/include/llvm/IR/
H A DCFG.h137 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 DSSAContext.h41 using BlockT = BasicBlock;
47 using DominatorTreeT = DominatorTreeBase<BlockT, false>;
/openbsd-src/gnu/llvm/llvm/include/llvm/CodeGen/
H A DMachineSSAContext.h46 using BlockT = MachineBasicBlock;
52 using DominatorTreeT = DominatorTreeBase<BlockT, false>;
H A DMachineBlockFrequencyInfo.h24 template <class BlockT> class BlockFrequencyInfoImpl;
H A DMachineRegionInfo.h32 using BlockT = MachineBasicBlock;
/openbsd-src/gnu/llvm/llvm/include/llvm/Transforms/Utils/
H A DSampleProfileInference.h33 template <class BlockT> struct TypeMap {};
H A DSampleProfileLoaderBaseImpl.h53 template <typename BlockT> struct IRTraits;