<div dir="ltr"><br><div class="gmail_extra"><br>hi Tim,guys,</div><div class="gmail_extra"><br></div><div class="gmail_extra"> it was regarding splitting 16-bit ADDC to two 8-bit ADDC+ADDE.</div><div class="gmail_extra"><br>
</div><div class="gmail_extra">the 8-bit ADDE instruction is defined as:</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">let Constraints="$dst=$op0",mayStore=1, hasSideEffects=0,neverHasSideEffects=1 in</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">def ADDErm: myInstr</div><div class="gmail_extra"><0x0,</div><div class="gmail_extra">(outs Intregs:$dst) (ins Intregs:$op0,MEMi:$op1),</div><div class="gmail_extra">
"",</div><div class="gmail_extra">[set IntRegs:$dest (adde IntRegs:$op0, (load ADDRi:$op1))]</div><div class="gmail_extra">><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">very unlucky, this instruction failed.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">in the generated match table, there was flag OPFL_Chain.</div><div class="gmail_extra"><br></div><div class="gmail_extra">it caused a token factor node to be created in switch case OPC_EmitMergeInputChains in SelectCodeCommon.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">very bad, all uses of input chain was replaced with ADDErm Node.</div><div class="gmail_extra"><br></div><div class="gmail_extra">so the created token factor node depends on the ADDErm node after the replacement.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">very bad the ADDCrm node depends on above token factor.</div><div class="gmail_extra"><br></div><div class="gmail_extra">because of the glue, a cycle formed. ADDE-->ADDC-->TF-->ADDE.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">after I removed the flag OPFL_Chain in the match table, the problem was gone.</div><div class="gmail_extra"><br></div><div class="gmail_extra">
<br></div><div class="gmail_extra">So, my question was obvious:how could I make the table gen tool not add the said flag?</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">
<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">thanks</div><div class="gmail_extra"><br></div><div class="gmail_extra">hilbert</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div>
<div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">
<br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div></div>