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