<div dir="ltr">Matthias,<div><br></div><div>Thank you for the answer. I've found the two following call chains: <span style="font-family:"Courier New";color:rgb(0,128,128)">MachineVerifier</span><span style="color:rgb(0,0,0);font-family:"Courier New"">::report -> </span><span style="font-family:"Courier New";color:rgb(0,128,128)">MachineVerifier</span><span style="color:rgb(0,0,0);font-family:"Courier New"">::report -> </span><span style="font-family:"Courier New";color:rgb(0,128,128)">LiveIntervals</span><span style="color:rgb(0,0,0);font-family:"Courier New"">::print</span></div><div>and <span style="font-family:"Courier New";color:rgb(0,128,128)">RegisterCoalescer</span><span style="color:rgb(0,0,0);font-family:"Courier New"">::print -> </span> <span style="font-family:"Courier New";color:rgb(0,128,128)">LiveIntervals</span><span style="color:rgb(0,0,0);font-family:"Courier New"">::print </span>but I see no invocations of <span style="font-family:"Courier New";color:rgb(0,128,128)">RegisterCoalescer</span><span style="color:rgb(0,0,0);font-family:"Courier New"">::print</span>). So, the method <span style="font-family:"Courier New";color:rgb(0,128,128)">LiveIntervals</span><span style="color:rgb(0,0,0);font-family:"Courier New"">:<span class="gmail-m_-6477639967795052529gmail-gr_ gmail-m_-6477639967795052529gmail-gr_53 gmail-m_-6477639967795052529gmail-gr-alert gmail-m_-6477639967795052529gmail-gr_gramm gmail-m_-6477639967795052529gmail-gr_inline_cards gmail-m_-6477639967795052529gmail-gr_run_anim gmail-m_-6477639967795052529gmail-Style gmail-m_-6477639967795052529gmail-replaceWithoutSep" id="gmail-m_-6477639967795052529gmail-53" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat;color:inherit;font-size:inherit">:print</span></span> can be needed for some cases.</div><div><br></div><div>Pavel. </div></div><br><div class="gmail_quote"><div dir="ltr">чт, 8 нояб. 2018 г. в 4:01, Matthias Braun <<a href="mailto:mbraun@apple.com">mbraun@apple.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space">Actually it seems Pass:dump() is calling Pass::print() and the dump() functions is used in a couple places throughout CodeGen for debug printing. So that's why ::print is implemented at all.<br><div><br><blockquote type="cite"><div>On Nov 7, 2018, at 4:58 PM, Matthias Braun via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:</div><br class="m_8672675126376420304Apple-interchange-newline"><div><div style="word-wrap:break-word;line-break:after-white-space">I suspect you cannot :-/<div><br></div><div>As far as I understand the code, you would need to put a FunctionPassPrinter into the pass pipeline, and I right now I don't see any code in llc that would do that. Maybe we should just remove LiveIntervals::print() given that nobody can use it (or someone could implement an -analyze for llc).</div><div><br></div><div>In practice this works for me to inspect live intervals (but technically it isn't using LiveIntervals::print):</div><div><br></div><div>$ llc -debug-only=regalloc -run-pass=liveintervals test.mir</div><div><br></div><div>- Matthias<br><div><div><br><blockquote type="cite"><div>On Nov 7, 2018, at 2:12 AM, Samolisov Pavel via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:</div><br class="m_8672675126376420304Apple-interchange-newline"><div><div dir="ltr"><div dir="ltr"><div dir="ltr">Hello everyone.<div><br></div><div>I'm looking for a way how to invoke the '<span style="font-family:"Courier New"">print(</span><span style="font-family:"Courier New";color:rgb(0,128,128)">raw_ostream </span><span style="font-family:"Courier New"">&OS, </span><span style="font-family:"Courier New";color:rgb(0,0,128);font-weight:bold">const </span><span style="font-family:"Courier New";color:rgb(0,128,128)">Module</span><span style="font-family:"Courier New"">*)</span>' method in MachineFunctionPass. If we have a 'usual' pass, which can be used by the 'opt' tool, we can just pass the '-analyze' command line argument but what about the 'llc' compiler?</div><div><br></div><div>As I can see, there is an implementation of the '<span style="font-family:"Courier New"">print(</span><span style="font-family:"Courier New";color:rgb(0,128,128)">raw_ostream </span><span style="font-family:"Courier New"">&OS, </span><span style="font-family:"Courier New";color:rgb(0,0,128);font-weight:bold">const </span><span style="font-family:"Courier New";color:rgb(0,128,128)">Module</span><span style="font-family:"Courier New"">*)</span>' method in the 'LiveIntervals.cpp'. </div><div><pre style="font-family:"Courier New""><span style="color:rgb(0,0,128);font-weight:bold">void </span><span style="color:rgb(0,128,128)">LiveIntervals</span>::print(<span style="color:rgb(0,128,128)">raw_ostream </span>&OS, <span style="color:rgb(0,0,128);font-weight:bold">const </span><span style="color:rgb(0,128,128)">Module</span>* ) <span style="color:rgb(0,0,128);font-weight:bold">const </span>{<br>  OS <span style="color:rgb(0,128,128)"><< </span><span style="color:rgb(0,128,0);font-weight:bold">"********** INTERVALS **********</span><span style="color:rgb(0,0,128);font-weight:bold">\n</span><span style="color:rgb(0,128,0);font-weight:bold">"</span>;<br><br>  <span style="color:rgb(128,128,128);font-style:italic">// Dump the regunits.<br></span></pre><pre style="font-family:"Courier New""><span style="color:rgb(128,128,128);font-style:italic">...</span></pre><pre style="font-family:"Courier New""><span style="color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;white-space:normal">The method also is implemented in 'RegisterCoalescer.cpp' (in fact, this method just invokes one from LiveIntervals).</span></pre><pre><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">Is there a way to invoke the 'print' method implemented in **Machine** pass? If so, could you let me know how I can do it?</span></font></pre><pre><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">Thank you.</span></font></pre><pre><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">Pavel</span></font></pre><pre><br></pre><pre></pre></div></div></div></div>
_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br></div></blockquote></div><br></div></div></div>_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br></div></blockquote></div><br></div></blockquote></div>