kuhar added inline comments.

================
Comment at: clang/include/clang/Analysis/Analyses/Dominators.h:39
 
 /// Concrete subclass of DominatorTreeBase for Clang
 /// This class implements the dominators tree functionality given a Clang CFG.
----------------
Seems outdated?


================
Comment at: clang/include/clang/Analysis/Analyses/Dominators.h:47
 public:
-  llvm::DomTreeBase<CFGBlock> *DT;
+  using DomTreeBase = llvm::DominatorTreeBase<CFGBlock, IsPostDom>;
 
----------------
nit: I think this can name can be somewhat confusing as it's not a base class 
of CFGDomTree.


================
Comment at: clang/include/clang/Analysis/Analyses/Dominators.h:49
 
-  DominatorTree() {
-    DT = new llvm::DomTreeBase<CFGBlock>();
+  DomTreeBase *DT;
+
----------------
Why not  have it as a value member? Or a unique_ptr, if pointer semantics are 
really desired.


================
Comment at: clang/include/clang/Analysis/Analyses/Dominators.h:111
+      assert(
+          (IDom && !IDom->getBlock() && *I == &(*I)->getParent()->getExit() &&
+           IsPostDom) ||
----------------
Assertions with multiple conditions conjoined are difficult to debug -- perhaps 
it'd be better to split them and assign to separate booleans for each 
condition, with descriptive names? This code can be hidden behind an ifdef for 
debug. 


================
Comment at: clang/include/clang/Analysis/Analyses/Dominators.h:174
 
+using DominatorTree = CFGDominatorTree</*IsPostDom*/ false>;
+using PostDominatorTree = CFGDominatorTree</*IsPostDom*/ true>;
----------------
nit: How about having the parent class template called CFGDominatorTreeImpl and 
these two as CFGDomTree and CFGPostdomTree?


Repository:
  rC Clang

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

https://reviews.llvm.org/D62551



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

Reply via email to