OLD | NEW |
1 //===- subzero/src/IceLoopAnalyzer.h - Loop Analysis ------------*- C++ -*-===// | 1 //===- subzero/src/IceLoopAnalyzer.h - Loop Analysis ------------*- C++ -*-===// |
2 // | 2 // |
3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 /// | 9 /// |
10 /// \file | 10 /// \file |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 } | 71 } |
72 IndexT getLowLink() const { return LowLink; } | 72 IndexT getLowLink() const { return LowLink; } |
73 | 73 |
74 void setOnStack(bool NewValue = true) { OnStack = NewValue; } | 74 void setOnStack(bool NewValue = true) { OnStack = NewValue; } |
75 bool isOnStack() const { return OnStack; } | 75 bool isOnStack() const { return OnStack; } |
76 | 76 |
77 void setDeleted() { Deleted = true; } | 77 void setDeleted() { Deleted = true; } |
78 bool isDeleted() const { return Deleted; } | 78 bool isDeleted() const { return Deleted; } |
79 | 79 |
80 void incrementLoopNestDepth(); | 80 void incrementLoopNestDepth(); |
| 81 bool hasSelfEdge() const; |
81 | 82 |
82 private: | 83 private: |
83 CfgNode *BB; | 84 CfgNode *BB; |
84 NodeList::const_iterator Succ; | 85 NodeList::const_iterator Succ; |
85 IndexT Index; | 86 IndexT Index; |
86 IndexT LowLink; | 87 IndexT LowLink; |
87 bool OnStack; | 88 bool OnStack; |
88 bool Deleted = false; | 89 bool Deleted = false; |
89 }; | 90 }; |
90 | 91 |
(...skipping 16 matching lines...) Expand all Loading... |
107 /// The index to assign to the next visited node. | 108 /// The index to assign to the next visited node. |
108 IndexT NextIndex = FirstDefinedIndex; | 109 IndexT NextIndex = FirstDefinedIndex; |
109 /// The number of nodes which have been marked deleted. This is used to track | 110 /// The number of nodes which have been marked deleted. This is used to track |
110 /// when the iteration should end. | 111 /// when the iteration should end. |
111 LoopNodePtrList::size_type NumDeletedNodes = 0; | 112 LoopNodePtrList::size_type NumDeletedNodes = 0; |
112 }; | 113 }; |
113 | 114 |
114 } // end of namespace Ice | 115 } // end of namespace Ice |
115 | 116 |
116 #endif // SUBZERO_SRC_ICELOOPANALYZER_H | 117 #endif // SUBZERO_SRC_ICELOOPANALYZER_H |
OLD | NEW |