comparison include/llvm/Analysis/DominanceFrontierImpl.h @ 83:60c9769439b8 LLVM3.7

LLVM 3.7
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Wed, 18 Feb 2015 14:55:36 +0900
parents 54457678186b
children afa8332a0e37
comparison
equal deleted inserted replaced
78:af83660cff7b 83:60c9769439b8
170 assert(currentBB && "Invalid work object. Missing current Basic Block"); 170 assert(currentBB && "Invalid work object. Missing current Basic Block");
171 assert(currentNode && "Invalid work object. Missing current Node"); 171 assert(currentNode && "Invalid work object. Missing current Node");
172 DomSetType &S = this->Frontiers[currentBB]; 172 DomSetType &S = this->Frontiers[currentBB];
173 173
174 // Visit each block only once. 174 // Visit each block only once.
175 if (visited.count(currentBB) == 0) { 175 if (visited.insert(currentBB).second) {
176 visited.insert(currentBB);
177
178 // Loop over CFG successors to calculate DFlocal[currentNode] 176 // Loop over CFG successors to calculate DFlocal[currentNode]
179 for (auto SI = BlockTraits::child_begin(currentBB), 177 for (auto SI = BlockTraits::child_begin(currentBB),
180 SE = BlockTraits::child_end(currentBB); 178 SE = BlockTraits::child_end(currentBB);
181 SI != SE; ++SI) { 179 SI != SE; ++SI) {
182 // Does Node immediately dominate this successor? 180 // Does Node immediately dominate this successor?