<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>