<div dir="ltr">Amara, <div><br></div><div>first, thank you for answering.  but I found expandPsuedo instructions actually happens before post-RA, like the following code showing:</div><div>your approach is a little hacky, right? : )</div>
<div><div>  </div><div>// Expand pseudo instructions before second scheduling pass.</div><div>  addPass(&ExpandPostRAPseudosID);</div><div>  printAndVerify("After ExpandPostRAPseudos");</div><div><br></div><div>
  // Run pre-sched2 passes.</div><div>  if (addPreSched2())</div><div>    printAndVerify("After PreSched2 passes");</div><div><br></div><div>  // Second pass scheduler.</div><div>  if (getOptLevel() != CodeGenOpt::None) {</div>
<div>    addPass(&PostRASchedulerID);</div><div>    printAndVerify("After PostRAScheduler");</div><div>  }</div></div><div><br></div><div><br></div><div>secondly, psuedo instruction is kind of compiler internal representation. I wish our instruction pair can disclose to programmer. intrinsics can do that. </div>
<div><br></div><div>thanks,</div><div>--lx</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Nov 22, 2013 at 9:45 PM, Amara Emerson <span dir="ltr"><<a href="mailto:amara.emerson@arm.com" target="_blank">amara.emerson@arm.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-GB" link="blue" vlink="purple"><div><div><div><p class="MsoNormal"><span style="font-size:10.5pt;font-family:Consolas">What about describing the instruction pairs as pseudo-instructions, and then expanding them in a machine function pass at the pre-emit stage?<span class="HOEnZb"><font color="#888888"><u></u><u></u></font></span></span></p>
<span class="HOEnZb"><font color="#888888"><p class="MsoNormal"><span style="font-size:10.5pt;font-family:Consolas"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:10.5pt;font-family:Consolas">Amara<u></u><u></u></span></p>
</font></span></div></div></div></div></blockquote></div><br></div>