summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Hexagon/HexagonGenExtract.cpp
diff options
context:
space:
mode:
authorDaniel Berlin <dberlin@dberlin.org>2017-02-09 20:37:24 +0000
committerDaniel Berlin <dberlin@dberlin.org>2017-02-09 20:37:24 +0000
commit58a6e5739441b811d620d42540d2cb6cda38296e (patch)
treed1269f8d3c3a432bcd8a93eb8ea62eaa1380e538 /llvm/lib/Target/Hexagon/HexagonGenExtract.cpp
parent864bd176a60d010f9252976dea19a3166a1fa7db (diff)
downloadbcm5719-llvm-58a6e5739441b811d620d42540d2cb6cda38296e.tar.gz
bcm5719-llvm-58a6e5739441b811d620d42540d2cb6cda38296e.zip
GraphTraits: Add range versions of graph traits functions (graph_nodes, graph_children, inverse_graph_nodes, inverse_graph_children).
Summary: Convert all obvious node_begin/node_end and child_begin/child_end pairs to range based for. Sending for review in case someone has a good idea how to make graph_children able to be inferred. It looks like it would require changing GraphTraits to be two argument or something. I presume inference does not happen because it would have to check every GraphTraits in the world to see if the noderef types matched. Note: This change was 3-staged with clang as well, which uses Dominators/etc from LLVM. Reviewers: chandlerc, tstellarAMD, dblaikie, rsmith Subscribers: arsenm, llvm-commits, nhaehnle Differential Revision: https://reviews.llvm.org/D29767 llvm-svn: 294620
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonGenExtract.cpp')
-rw-r--r--llvm/lib/Target/Hexagon/HexagonGenExtract.cpp7
1 files changed, 2 insertions, 5 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonGenExtract.cpp b/llvm/lib/Target/Hexagon/HexagonGenExtract.cpp
index bb5e379ce01..7fd52c949f3 100644
--- a/llvm/lib/Target/Hexagon/HexagonGenExtract.cpp
+++ b/llvm/lib/Target/Hexagon/HexagonGenExtract.cpp
@@ -221,11 +221,8 @@ bool HexagonGenExtract::convert(Instruction *In) {
bool HexagonGenExtract::visitBlock(BasicBlock *B) {
// Depth-first, bottom-up traversal.
- DomTreeNode *DTN = DT->getNode(B);
- typedef GraphTraits<DomTreeNode*> GTN;
- typedef GTN::ChildIteratorType Iter;
- for (Iter I = GTN::child_begin(DTN), E = GTN::child_end(DTN); I != E; ++I)
- visitBlock((*I)->getBlock());
+ for (auto *DTN : graph_children<DomTreeNode*>(DT->getNode(B)))
+ visitBlock(DTN->getBlock());
// Allow limiting the number of generated extracts for debugging purposes.
bool HasCutoff = ExtractCutoff.getPosition();
OpenPOWER on IntegriCloud