[llvm-dev] [RFC] Asynchronous unwind tables attribute

Momchil Velikov via llvm-dev llvm-dev at lists.llvm.org
Sat Nov 20 16:52:17 PST 2021


On Sun, 21 Nov 2021 at 00:33, Fāng-ruì Sòng <maskray at google.com> wrote:

> On 2021-11-21, Momchil Velikov wrote:
> >         | nounwind 0  |  nounwind 1
> >----------+-------------+--------------
> >uwtable 0 | <full,no>   |  <no,no>
> >----------+-------------+--------------
> >uwtable 1 | <full,no>   |  <full,no>
> >----------+-------------+--------------
> >uwtable 2 | <full,min> | <min, min>
> >----------+-------------+--------------
> >uwtable 3 | <full,full> |  <full,full>
> >
> >where
> > - "full" means full unwind info - CFA, CSRs, return address
> > - "min" is minimal, sans CSRs,
> > - "no" is, well, no unwind info and
> > - "<p,e>" is the kind generated for prologues and epilogues,
> respectively.
>
> uwtable 1/nounwind 1: <full,no>
> uwtable 2/nounwind 1: <min,min>
>
> Why is there a full->min transition for the generated prologue?
>

Because for a synchronous unwind table it makes only sense for the prologue
to be full, <min, no> is
unusable combination, whereas <full, no> is usable for a debugger (it's
basically what we have now for most backends).

-- 
Compiler scrub, Arm
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20211121/81ffec3d/attachment.html>


More information about the llvm-dev mailing list