<p class="MsoNormal">Hi, all</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">I am studying the ARM backend on SelectionDAG, I have some following
questions:</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">1. Each operator of SDNode in SelectionDAG is required to be
defined by SDNode<ISD::XXX,XXX,XXX> in .td file, right?</p><p class="MsoNormal">But several operators
are not defined in .td file, why? (e.g., ISD::BR_CC, ISD::CopyToReg, ISD::AssertSext)</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">2. The MVT::glue value is used to ensure two nodes are
scheduled together and in order. </p><p class="MsoNormal">In the other word, we can’t insert any instruction
of them in the scheduling, is it correct? </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">3. In the ARMISelLowering constructor, it sets the callback
function with</p>
<p class="MsoNormal">setLoadExtAction(ISD::SEXTLOAD,
MVT::i1, Promote); </p>
<p class="MsoNormal">My question is ARM don’t support MVT::i1 registerclass, why should it determine this operation with MVT::i1 value? </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Can anyone tell me?</p>
<p class="MsoNormal">Thank you very much.</p>
<p class="MsoNormal"> </p><p class="MsoNormal"><br></p><p class="MsoNormal">Best regards,</p>
<p class="MsoNormal">Zakk</p><div><br></div><br><br><br>