Home | History | Annotate | Download | only in IR

Lines Matching refs:BasicBlock

11 // BasicBlock graphs to be treated as proper graphs for generic algorithms.
21 #include "llvm/IR/BasicBlock.h"
34 // BasicBlock pred_iterator definition
93 using pred_iterator = PredIterator<BasicBlock, Value::user_iterator>;
95 PredIterator<const BasicBlock, Value::const_user_iterator>;
99 inline pred_iterator pred_begin(BasicBlock *BB) { return pred_iterator(BB); }
100 inline const_pred_iterator pred_begin(const BasicBlock *BB) {
103 inline pred_iterator pred_end(BasicBlock *BB) { return pred_iterator(BB, true);}
104 inline const_pred_iterator pred_end(const BasicBlock *BB) {
107 inline bool pred_empty(const BasicBlock *BB) {
110 inline pred_range predecessors(BasicBlock *BB) {
113 inline pred_const_range predecessors(const BasicBlock *BB) {
118 // BasicBlock succ_iterator helpers
122 TerminatorInst::SuccIterator<TerminatorInst *, BasicBlock>;
124 TerminatorInst::SuccIterator<const TerminatorInst *, const BasicBlock>;
128 inline succ_iterator succ_begin(BasicBlock *BB) {
131 inline succ_const_iterator succ_begin(const BasicBlock *BB) {
134 inline succ_iterator succ_end(BasicBlock *BB) {
137 inline succ_const_iterator succ_end(const BasicBlock *BB) {
140 inline bool succ_empty(const BasicBlock *BB) {
143 inline succ_range successors(BasicBlock *BB) {
146 inline succ_const_range successors(const BasicBlock *BB) {
162 template <> struct GraphTraits<BasicBlock*> {
163 using NodeRef = BasicBlock *;
166 static NodeRef getEntryNode(BasicBlock *BB) { return BB; }
171 template <> struct GraphTraits<const BasicBlock*> {
172 using NodeRef = const BasicBlock *;
175 static NodeRef getEntryNode(const BasicBlock *BB) { return BB; }
186 template <> struct GraphTraits<Inverse<BasicBlock*>> {
187 using NodeRef = BasicBlock *;
190 static NodeRef getEntryNode(Inverse<BasicBlock *> G) { return G.Graph; }
195 template <> struct GraphTraits<Inverse<const BasicBlock*>> {
196 using NodeRef = const BasicBlock *;
199 static NodeRef getEntryNode(Inverse<const BasicBlock *> G) { return G.Graph; }
212 template <> struct GraphTraits<Function*> : public GraphTraits<BasicBlock*> {
229 public GraphTraits<const BasicBlock*> {
252 public GraphTraits<Inverse<BasicBlock*>> {
258 public GraphTraits<Inverse<const BasicBlock*>> {