<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 13, 2020 at 8:07 PM Paul C. Anagnostopoulos <<a href="mailto:paul@windfall.com">paul@windfall.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Nicolai:<br>
<br>
If we have two operators to get and set DAG operator/operands, does it make sense to add to more operators to get/set the $names of operands? They would still specify the operand by integer index.<br>
<br>
At 10/13/2020 10:16 AM, Nicolai Hähnle wrote:<br>
>On Tue, Oct 13, 2020 at 10:47 AM Madhur Amilkanthwar<br>
><<a href="mailto:madhur13490@gmail.com" target="_blank">madhur13490@gmail.com</a>> wrote:<br>
>> What do you guys think about the below enhancements?<br>
>><br>
>> 5. !getdagrestype(dag [, index]) - Returns type of result value. If the DAG computes multiple values then return type of 'index'th result.<br>
>><br>
>> 6. !setdagrestype(dag target_dag, type T [, index]) - Set return type of target_dag to T. Use of 'index' is as in 5.(Coupled with the existing (or enhanced?) foreach construct we can construct multiple DAGs with different return types.)<br>
>><br>
>> .7 !setdagchild(dag target_dag, dag new_dag, index) - Set child 'index' numbered of target_dag to new_dag. I think this is more or less similar to 3 you suggested but I feel it is more convenient and concise.<br>
>><br>
>> 8. !setdagchildcond(dag target_dag, dag new_dag, index, {C++ code}) - Similar to 7 above but do it only if the C++ code returns true. This is useful to check if the result type of `new_dag` and that of the operand type of 'index' child of 'target_dag' are compatible. Users can define compatibility using C++ code. For example, it is okay to set dag even if there is mismatch between signedness of types.<br>
><br>
>All of these sound like operations that are specific to TableGen<br>
>backend interpretations of what a DAG means. This discussion is about<br>
>!ops which are a part of the TableGen frontend, so I don't think any<br>
>of these apply here.<br></blockquote><div> </div><div>I am not sure why you say so. Isn't 7 and 8 above somewhere similar to <b>!con</b> already offered by the language?  !con allows you to concatenate two DAGs, 5 allows you to connect two DAGs to form a bigger DAG. You may be able to achieve the same today with existing the language constructs but I don't see a concise way to do this. <br></div><div><br></div><div>5 and 6 are subject to debate but since it's a language an addition like this could be useful. </div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
>Cheers,<br>
>Nicolai<br>
<br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><i style="font-size:12.8px">Disclaimer: Views, concerns, thoughts, questions, ideas expressed in this mail are of my own and my employer has no take in it. </i><br></div><div>Thank You.<br>Madhur D. Amilkanthwar<br><br></div></div></div></div>