<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
================<br>
Comment at: lib/Transforms/Utils/<wbr>PredicateInfo.cpp:65-73<br>
+struct ValueDFS {<br>
+  int DFSIn = 0;<br>
+  int DFSOut = 0;<br>
+  unsigned int LocalNum = LN_Middle;<br>
+  PredicateBase *PInfo = nullptr;<br>
+  // Only one of Def or Use will be set.<br>
+  Value *Def = nullptr;<br>
----------------<br>
We have this similar pattern in many places now: `NewGVN`, `SSAUpdater`, `MemSSA` and now here. Too bad we can't actually share more.<br>
<br></blockquote><div><br></div><div>FWIW, i'm going to merge most of these and template out the part they don't share</div><div><br></div><div>I have a patch to NewGVN to template it, and then started figuring out how to merge them all.</div><div><br></div><div><br></div></div></div></div>