Mercurial > hg > CbC > CbC_llvm
comparison include/llvm/Analysis/LoopPass.h @ 100:7d135dc70f03 LLVM 3.9
LLVM 3.9
author | Miyagi Mitsuki <e135756@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 26 Jan 2016 22:53:40 +0900 |
parents | 60c9769439b8 |
children | 1172e4bd9c6f |
comparison
equal
deleted
inserted
replaced
96:6418606d0ead | 100:7d135dc70f03 |
---|---|
125 PassManagerType getPassManagerType() const override { | 125 PassManagerType getPassManagerType() const override { |
126 return PMT_LoopPassManager; | 126 return PMT_LoopPassManager; |
127 } | 127 } |
128 | 128 |
129 public: | 129 public: |
130 // Delete loop from the loop queue and loop nest (LoopInfo). | 130 // Add a new loop into the loop queue as a child of the given parent, or at |
131 void deleteLoopFromQueue(Loop *L); | 131 // the top level if \c ParentLoop is null. |
132 | 132 Loop &addLoop(Loop *ParentLoop); |
133 // Insert loop into the loop queue and add it as a child of the | |
134 // given parent. | |
135 void insertLoop(Loop *L, Loop *ParentLoop); | |
136 | |
137 // Insert a loop into the loop queue. | |
138 void insertLoopIntoQueue(Loop *L); | |
139 | |
140 // Reoptimize this loop. LPPassManager will re-insert this loop into the | |
141 // queue. This allows LoopPass to change loop nest for the loop. This | |
142 // utility may send LPPassManager into infinite loops so use caution. | |
143 void redoLoop(Loop *L); | |
144 | 133 |
145 //===--------------------------------------------------------------------===// | 134 //===--------------------------------------------------------------------===// |
146 /// SimpleAnalysis - Provides simple interface to update analysis info | 135 /// SimpleAnalysis - Provides simple interface to update analysis info |
147 /// maintained by various passes. Note, if required this interface can | 136 /// maintained by various passes. Note, if required this interface can |
148 /// be extracted into a separate abstract class but it would require | 137 /// be extracted into a separate abstract class but it would require |
161 /// analysis interface. | 150 /// analysis interface. |
162 void deleteSimpleAnalysisLoop(Loop *L); | 151 void deleteSimpleAnalysisLoop(Loop *L); |
163 | 152 |
164 private: | 153 private: |
165 std::deque<Loop *> LQ; | 154 std::deque<Loop *> LQ; |
166 bool skipThisLoop; | |
167 bool redoThisLoop; | |
168 LoopInfo *LI; | 155 LoopInfo *LI; |
169 Loop *CurrentLoop; | 156 Loop *CurrentLoop; |
170 }; | 157 }; |
171 | 158 |
172 } // End llvm namespace | 159 } // End llvm namespace |