[PATCH] D83087: DomTree: remove explicit use of DomTreeNodeBase::iterator

2020-07-08 Thread Nicolai Hähnle via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rG3fa989d4fd6b: DomTree: remove explicit use of 
DomTreeNodeBase::iterator (authored by nhaehnle).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D83087/new/

https://reviews.llvm.org/D83087

Files:
  clang/include/clang/Analysis/Analyses/Dominators.h
  llvm/include/llvm/CodeGen/MachineDominators.h
  llvm/include/llvm/IR/Dominators.h
  llvm/lib/Target/X86/X86InstrInfo.cpp
  llvm/lib/Transforms/Scalar/EarlyCSE.cpp
  llvm/lib/Transforms/Scalar/Sink.cpp
  llvm/lib/Transforms/Vectorize/VPlanDominatorTree.h
  mlir/include/mlir/IR/Dominance.h
  mlir/lib/Transforms/CSE.cpp

Index: mlir/lib/Transforms/CSE.cpp
===
--- mlir/lib/Transforms/CSE.cpp
+++ mlir/lib/Transforms/CSE.cpp
@@ -64,7 +64,7 @@
 ScopedMapTy::ScopeTy scope;
 
 DominanceInfoNode *node;
-DominanceInfoNode::iterator childIterator;
+DominanceInfoNode::const_iterator childIterator;
 
 /// If this node has been fully processed yet or not.
 bool processed;
Index: mlir/include/mlir/IR/Dominance.h
===
--- mlir/include/mlir/IR/Dominance.h
+++ mlir/include/mlir/IR/Dominance.h
@@ -141,7 +141,7 @@
 /// DominatorTree GraphTraits specialization so the DominatorTree can be
 /// iterated by generic graph iterators.
 template <> struct GraphTraits {
-  using ChildIteratorType = mlir::DominanceInfoNode::iterator;
+  using ChildIteratorType = mlir::DominanceInfoNode::const_iterator;
   using NodeRef = mlir::DominanceInfoNode *;
 
   static NodeRef getEntryNode(NodeRef N) { return N; }
Index: llvm/lib/Transforms/Vectorize/VPlanDominatorTree.h
===
--- llvm/lib/Transforms/Vectorize/VPlanDominatorTree.h
+++ llvm/lib/Transforms/Vectorize/VPlanDominatorTree.h
@@ -30,7 +30,8 @@
 /// Template specializations of GraphTraits for VPDomTreeNode.
 template <>
 struct GraphTraits
-: public DomTreeGraphTraitsBase {};
+: public DomTreeGraphTraitsBase {};
 
 template <>
 struct GraphTraits
Index: llvm/lib/Transforms/Scalar/Sink.cpp
===
--- llvm/lib/Transforms/Scalar/Sink.cpp
+++ llvm/lib/Transforms/Scalar/Sink.cpp
@@ -166,8 +166,8 @@
   // dominated by one of the successors.
   // Look at all the dominated blocks and see if we can sink it in one.
   DomTreeNode *DTN = DT.getNode(Inst->getParent());
-  for (DomTreeNode::iterator I = DTN->begin(), E = DTN->end();
-  I != E && SuccToSinkTo == nullptr; ++I) {
+  for (auto I = DTN->begin(), E = DTN->end(); I != E && SuccToSinkTo == nullptr;
+   ++I) {
 BasicBlock *Candidate = (*I)->getBlock();
 // A node always immediate-dominates its children on the dominator
 // tree.
Index: llvm/lib/Transforms/Scalar/EarlyCSE.cpp
===
--- llvm/lib/Transforms/Scalar/EarlyCSE.cpp
+++ llvm/lib/Transforms/Scalar/EarlyCSE.cpp
@@ -620,8 +620,8 @@
   public:
 StackNode(ScopedHTType , LoadHTType ,
   InvariantHTType , CallHTType ,
-  unsigned cg, DomTreeNode *n, DomTreeNode::iterator child,
-  DomTreeNode::iterator end)
+  unsigned cg, DomTreeNode *n, DomTreeNode::const_iterator child,
+  DomTreeNode::const_iterator end)
 : CurrentGeneration(cg), ChildGeneration(cg), Node(n), ChildIter(child),
   EndIter(end),
   Scopes(AvailableValues, AvailableLoads, AvailableInvariants,
@@ -635,7 +635,7 @@
 unsigned childGeneration() { return ChildGeneration; }
 void childGeneration(unsigned generation) { ChildGeneration = generation; }
 DomTreeNode *node() { return Node; }
-DomTreeNode::iterator childIter() { return ChildIter; }
+DomTreeNode::const_iterator childIter() { return ChildIter; }
 
 DomTreeNode *nextChild() {
   DomTreeNode *child = *ChildIter;
@@ -643,7 +643,7 @@
   return child;
 }
 
-DomTreeNode::iterator end() { return EndIter; }
+DomTreeNode::const_iterator end() { return EndIter; }
 bool isProcessed() { return Processed; }
 void process() { Processed = true; }
 
@@ -651,8 +651,8 @@
 unsigned CurrentGeneration;
 unsigned ChildGeneration;
 DomTreeNode *Node;
-DomTreeNode::iterator ChildIter;
-DomTreeNode::iterator EndIter;
+DomTreeNode::const_iterator ChildIter;
+DomTreeNode::const_iterator EndIter;
 NodeScope Scopes;
 bool Processed = false;
   };
Index: llvm/lib/Target/X86/X86InstrInfo.cpp
===
--- llvm/lib/Target/X86/X86InstrInfo.cpp
+++ llvm/lib/Target/X86/X86InstrInfo.cpp
@@ -8660,8 +8660,7 @@
   }
 
   // Visit the children of this block in the dominator tree.
-  for (MachineDomTreeNode::iterator I = 

[PATCH] D83087: DomTree: remove explicit use of DomTreeNodeBase::iterator

2020-07-08 Thread Jakub Kuderski via Phabricator via cfe-commits
kuhar added a comment.

In D83087#2139211 , @nhaehnle wrote:

> In D83087#2134881 , @kuhar wrote:
>
> > modulo accidental formatting changes.
>
>
> I'm not aware of any. Some line breaks changed because "const_iterator" is 
> longer than "iterator".


Ack.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D83087/new/

https://reviews.llvm.org/D83087



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D83087: DomTree: remove explicit use of DomTreeNodeBase::iterator

2020-07-08 Thread Nicolai Hähnle via Phabricator via cfe-commits
nhaehnle added a comment.

In D83087#2134881 , @kuhar wrote:

> modulo accidental formatting changes.


I'm not aware of any. Some line breaks changed because "const_iterator" is 
longer than "iterator".


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D83087/new/

https://reviews.llvm.org/D83087



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D83087: DomTree: remove explicit use of DomTreeNodeBase::iterator

2020-07-06 Thread Jakub Kuderski via Phabricator via cfe-commits
kuhar accepted this revision.
kuhar added a comment.

LGTM modulo accidental formatting changes.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D83087/new/

https://reviews.llvm.org/D83087



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D83087: DomTree: remove explicit use of DomTreeNodeBase::iterator

2020-07-06 Thread River Riddle via Phabricator via cfe-commits
rriddle accepted this revision.
rriddle added a comment.

Approval for anything MLIR related.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D83087/new/

https://reviews.llvm.org/D83087



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D83087: DomTree: remove explicit use of DomTreeNodeBase::iterator

2020-07-02 Thread Nicolai Hähnle via Phabricator via cfe-commits
nhaehnle created this revision.
nhaehnle added reviewers: arsenm, RKSimon, mehdi_amini, courbet.
Herald added subscribers: cfe-commits, msifontes, jurahul, Kayjukh, vkmr, 
grosul1, Joonsoo, stephenneuendorffer, liufengdb, aartbik, lucyrfox, mgester, 
arpith-jacob, nicolasvasilache, antiagainst, shauheen, jpienaar, rriddle, 
rogfer01, kuhar, hiraditya, Prazek, wdng.
Herald added a reviewer: rriddle.
Herald added a reviewer: aartbik.
Herald added projects: clang, MLIR, LLVM.
nhaehnle added a parent revision: D83086: DomTree: add private 
create{Child,Node} helpers.
nhaehnle added a child revision: D83088: Introduce CfgTraits abstraction.

Almost all uses of these iterators, including implicit ones, really
only need the const variant (as it should be). The only exception is
in NewGVN, which changes the order of dominator tree child nodes.

Change-Id: I4b5bd71e32d71b0c67b03d4927d93fe9413726d4


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D83087

Files:
  clang/include/clang/Analysis/Analyses/Dominators.h
  llvm/include/llvm/CodeGen/MachineDominators.h
  llvm/include/llvm/IR/Dominators.h
  llvm/lib/Target/X86/X86InstrInfo.cpp
  llvm/lib/Transforms/Scalar/EarlyCSE.cpp
  llvm/lib/Transforms/Scalar/Sink.cpp
  llvm/lib/Transforms/Vectorize/VPlanDominatorTree.h
  mlir/include/mlir/IR/Dominance.h
  mlir/lib/Transforms/CSE.cpp

Index: mlir/lib/Transforms/CSE.cpp
===
--- mlir/lib/Transforms/CSE.cpp
+++ mlir/lib/Transforms/CSE.cpp
@@ -64,7 +64,7 @@
 ScopedMapTy::ScopeTy scope;
 
 DominanceInfoNode *node;
-DominanceInfoNode::iterator childIterator;
+DominanceInfoNode::const_iterator childIterator;
 
 /// If this node has been fully processed yet or not.
 bool processed;
Index: mlir/include/mlir/IR/Dominance.h
===
--- mlir/include/mlir/IR/Dominance.h
+++ mlir/include/mlir/IR/Dominance.h
@@ -141,7 +141,7 @@
 /// DominatorTree GraphTraits specialization so the DominatorTree can be
 /// iterated by generic graph iterators.
 template <> struct GraphTraits {
-  using ChildIteratorType = mlir::DominanceInfoNode::iterator;
+  using ChildIteratorType = mlir::DominanceInfoNode::const_iterator;
   using NodeRef = mlir::DominanceInfoNode *;
 
   static NodeRef getEntryNode(NodeRef N) { return N; }
Index: llvm/lib/Transforms/Vectorize/VPlanDominatorTree.h
===
--- llvm/lib/Transforms/Vectorize/VPlanDominatorTree.h
+++ llvm/lib/Transforms/Vectorize/VPlanDominatorTree.h
@@ -30,7 +30,8 @@
 /// Template specializations of GraphTraits for VPDomTreeNode.
 template <>
 struct GraphTraits
-: public DomTreeGraphTraitsBase {};
+: public DomTreeGraphTraitsBase {};
 
 template <>
 struct GraphTraits
Index: llvm/lib/Transforms/Scalar/Sink.cpp
===
--- llvm/lib/Transforms/Scalar/Sink.cpp
+++ llvm/lib/Transforms/Scalar/Sink.cpp
@@ -166,8 +166,8 @@
   // dominated by one of the successors.
   // Look at all the dominated blocks and see if we can sink it in one.
   DomTreeNode *DTN = DT.getNode(Inst->getParent());
-  for (DomTreeNode::iterator I = DTN->begin(), E = DTN->end();
-  I != E && SuccToSinkTo == nullptr; ++I) {
+  for (auto I = DTN->begin(), E = DTN->end(); I != E && SuccToSinkTo == nullptr;
+   ++I) {
 BasicBlock *Candidate = (*I)->getBlock();
 // A node always immediate-dominates its children on the dominator
 // tree.
Index: llvm/lib/Transforms/Scalar/EarlyCSE.cpp
===
--- llvm/lib/Transforms/Scalar/EarlyCSE.cpp
+++ llvm/lib/Transforms/Scalar/EarlyCSE.cpp
@@ -620,8 +620,8 @@
   public:
 StackNode(ScopedHTType , LoadHTType ,
   InvariantHTType , CallHTType ,
-  unsigned cg, DomTreeNode *n, DomTreeNode::iterator child,
-  DomTreeNode::iterator end)
+  unsigned cg, DomTreeNode *n, DomTreeNode::const_iterator child,
+  DomTreeNode::const_iterator end)
 : CurrentGeneration(cg), ChildGeneration(cg), Node(n), ChildIter(child),
   EndIter(end),
   Scopes(AvailableValues, AvailableLoads, AvailableInvariants,
@@ -635,7 +635,7 @@
 unsigned childGeneration() { return ChildGeneration; }
 void childGeneration(unsigned generation) { ChildGeneration = generation; }
 DomTreeNode *node() { return Node; }
-DomTreeNode::iterator childIter() { return ChildIter; }
+DomTreeNode::const_iterator childIter() { return ChildIter; }
 
 DomTreeNode *nextChild() {
   DomTreeNode *child = *ChildIter;
@@ -643,7 +643,7 @@
   return child;
 }
 
-DomTreeNode::iterator end() { return EndIter; }
+DomTreeNode::const_iterator end() { return EndIter; }
 bool isProcessed() { return Processed; }
 void process() { Processed = true; }
 
@@ -651,8 +651,8 @@