| 262 | } |
| 263 | |
| 264 | DominatorTreeNode* DominatorTree::GetOrInsertNode(BasicBlock* bb) { |
| 265 | DominatorTreeNode* dtn = nullptr; |
| 266 | |
| 267 | std::map<uint32_t, DominatorTreeNode>::iterator node_iter = |
| 268 | nodes_.find(bb->id()); |
| 269 | if (node_iter == nodes_.end()) { |
| 270 | dtn = &nodes_.emplace(std::make_pair(bb->id(), DominatorTreeNode{bb})) |
| 271 | .first->second; |
| 272 | } else { |
| 273 | dtn = &node_iter->second; |
| 274 | } |
| 275 | |
| 276 | return dtn; |
| 277 | } |
| 278 | |
| 279 | void DominatorTree::GetDominatorEdges( |
| 280 | const Function* f, const BasicBlock* placeholder_start_node, |
no test coverage detected