<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Nov 27, 2009, at 11:44 AM, Tobias Grosser wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Hi,<br><br>I worked on some dotty improvements. The main changes are:<br><br>* Better layout<br>* Allow to hide details in -only mode<br>* Do not print unneeded stuff<br>* Several small bug fixes<br><br>The effects can be seen on this page:<br><a href="http://students.fim.uni-passau.de/~grosser/llvm/dotty_patch/dotty.html">http://students.fim.uni-passau.de/~grosser/llvm/dotty_patch/dotty.html</a><br></div></blockquote><div><br></div>Looks nice!  The only thing I don't like is the removal of the T/F labels from the "only" CFG graph.</div><div><br></div><div><br><blockquote type="cite"><div>These are the changes in detail:<br><br>*    Remove ":" after BB name in -view-cfg-only<br></div></blockquote><div><br></div>Ok.</div><div><br><blockquote type="cite"><div>*    Small PostDominatorTree improvements<br><br>     * Do not SEGFAULT if tree entryNode() is NULL<br>     * Print function names in dotty printer<br></div></blockquote><div><br></div>Ok.</div><div><br></div><div><blockquote type="cite"><div>*    Only print edgeSourceLabels if they are not empty<br></div></blockquote><div><br></div>Ok.</div><div><br><blockquote type="cite"><div>*    Do not point edge heads to source labels<br><br>     If no destination label is available, just point to the node itself<br>     instead of pointing to some source label. Source and destination   <br>     labels are not related in any way.<br></div></blockquote><div><br></div>Ok.</div><div><br><blockquote type="cite"><div>*    Instantiate DefaultDOTGraphTraits<br></div></blockquote><div><br></div>Ok.</div><div><br><blockquote type="cite"><div>*    Remove ShortNames from getNodeLabel<br><br>     Convert ShortNames to the general isSimple(). isSimple() is only<br>     called in the classes where it actually makes a difference.<br></div></blockquote><div><br></div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">+  std::string getNodeLabel(const BasicBlock *Node,</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">+                                  const Function *Graph) {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">Please line up the second line with the (</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">+    if (isSimple())</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">+      return getSimpleNodeLabel (Node, Graph);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">+    else</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">+      return getCompleteNodeLabel (Node, Graph);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">+</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">No spaces before the '(' in function calls.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">Otherwise, ok.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><br></div></div><blockquote type="cite"><div>*    Do not print edge source labels in -view-cfg-only & -dot-cfg-only<br><br>     Without branch instructions the labels are not informative and at<br>     the same time complicate the layout of the graph. This uses the new<br>     isSimple.<br></div></blockquote></div><br><div>I'd prefer to keep these.  I frequently look at a .ll file and a cfg-only graph at the same time, and the edges are really useful for this.</div><div><br></div><div>Please commit the other patches, if you need commit access, please send me the info requested in the dev policy document off list.</div><div><br></div><div>Thanks Tobias!</div><div><br></div><div>-Chris</div></body></html>