<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><span style="font-family:Arial,Helvetica,sans-serif">On Sun, 21 Nov 2021 at 01:02, Fāng-ruì Sòng <<a href="mailto:maskray@google.com">maskray@google.com</a>> wrote:</span><br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 2021-11-21, Momchil Velikov wrote:<br>
>On Sun, 21 Nov 2021 at 00:33, Fāng-ruì Sòng <<a href="mailto:maskray@google.com" target="_blank">maskray@google.com</a>> wrote:<br>
><br>
>> On 2021-11-21, Momchil Velikov wrote:<br>
>> > | nounwind 0 | nounwind 1<br>
>> >----------+-------------+--------------<br>
>> >uwtable 0 | <full,no> | <no,no><br>
>> >----------+-------------+--------------<br>
>> >uwtable 1 | <full,no> | <full,no><br>
>> >----------+-------------+--------------<br>
>> >uwtable 2 | <full,min> | <min, min><br>
>> >----------+-------------+--------------<br>
>> >uwtable 3 | <full,full> | <full,full><br>
>> ><br>
>> >where<br>
>> > - "full" means full unwind info - CFA, CSRs, return address<br>
>> > - "min" is minimal, sans CSRs,<br>
>> > - "no" is, well, no unwind info and<br>
>> > - "<p,e>" is the kind generated for prologues and epilogues,<br>
>> respectively.<br>
>><br>
>> uwtable 1/nounwind 1: <full,no><br>
>> uwtable 2/nounwind 1: <min,min><br>
>><br>
>> Why is there a full->min transition for the generated prologue?<br>
>><br>
><br>
>Because for a synchronous unwind table it makes only sense for the prologue<br>
>to be full, <min, no> is<br>
>unusable combination, whereas <full, no> is usable for a debugger (it's<br>
>basically what we have now for most backends).<br>
<br>
I wanted to ask why the prologue information has degraded from full to<br>
min when transiting from uwtable 1 to uwtable 2.<br>
<br>
I do not understand why moving from uwtable 1 to uwtable 2 is not monotonic.<br>
</blockquote></div><br clear="all"><div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">It's not that it was degraded in the case for "uwtable=2,nounwind=1", but that it was</div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">"too much" for "uwtable=1,nounwind=1". One could generate "<min,no>" there, but that</div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">serves no purpose - it's unusable for debugging, and for profiling, one would</div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">be better off with the "<min,min> variant. Also, this is the current state, and</div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">degrading *that* could be viewed as a regression.</div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr">Compiler scrub, Arm<br></div></div></div>