<div dir="ltr"><div><div><div>Thanks Daniel for your help. It works as required. <br><br></div>Also, I am working with the custom defined instructions for MIPS and are not related to branch delay slots.<br><br></div>Thanks,<br></div>Ambuj<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 19, 2015 at 4:56 PM, Daniel Sanders <span dir="ltr"><<a href="mailto:Daniel.Sanders@imgtec.com" target="_blank">Daniel.Sanders@imgtec.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div link="blue" vlink="purple" lang="EN-GB">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">One possibility is adding the option to the backend instead and using '-mllvm –no_nop_optimise' on the clang command. This approach is good for options you don't intend end-users
 to use.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">Just to check: The NOP's you're trying to eliminate aren't related to branch delay slots are they? The reason I ask is because removing those without putting another instruction
 in their place will change the behaviour of your code.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""><u></u> <u></u></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"" lang="EN-US">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"" lang="EN-US"> <a href="mailto:llvmdev-bounces@cs.uiuc.edu" target="_blank">llvmdev-bounces@cs.uiuc.edu</a> [mailto:<a href="mailto:llvmdev-bounces@cs.uiuc.edu" target="_blank">llvmdev-bounces@cs.uiuc.edu</a>]
<b>On Behalf Of </b>Ambuj Agrawal<br>
<b>Sent:</b> 19 March 2015 15:45<br>
<b>To:</b> <a href="mailto:llvmdev@cs.uiuc.edu" target="_blank">llvmdev@cs.uiuc.edu</a>; <a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
<b>Subject:</b> [LLVMdev] Clang flag to either print/omit nop instruction in llvm backend<u></u><u></u></span></p>
</div>
</div><div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">I have created custom Clang flag -no_nop_optimise which can be passes with clang on command line.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">I am planning to implement someting like:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">when -no_nop_optimise flag is passed on the command line do not emit a nop instruction.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">i.e. inside SelLowering class<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">if ( !OPT_no_nop_optimise)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">{<br>
      BuildMI(*BB, MI, DL, TII->get(Mips::NOP));<br>
}<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Any clues on how can I pass the flag to the LLVM backend from clang?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<p class="MsoNormal">Thanks,<u></u><u></u></p>
</div>
<p class="MsoNormal">Ambuj<u></u><u></u></p>
</div>
</div></div></div>
</div>
</div>

</blockquote></div><br></div>