[PATCH] D67216: [cfi] Add flag to always generate call frame information

John Reagan via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 24 10:20:50 PDT 2019


Does the current code generate all the prologue cfi directives? 
Epilogue too?  The last time I checked, it did not (especially for
epilogues).

Fully asynch prologue/epilogue is one of the things that we need for
OpenVMS and will be doing that work.  We're also looking at using the
compact format instead of the CFI form (at least for routine bodies).

clang's driver already recognizes "-fasynchronous-unwind-tables" today
and maps that to "-munwind-tables" and probably should be switched to
setting your new "always-need-cfi" or simply change your name.    Either
way, I think there is an interaction between them.

From the code in Clang.cpp

  // This is a coarse approximation of what llvm-gcc actually does, both
  // -fasynchronous-unwind-tables and -fnon-call-exceptions interact in more
  // complicated ways.

On 9/24/19 11:54 AM, Eric Christopher wrote:
> That said, prior art in gcc in this area:
>
> -fasynchronous-unwind-tables
>
> Generate unwind table in DWARF format, if supported by target machine.
> The table is exact at each instruction boundary, so it can be used for
> stack unwinding from asynchronous events (such as debugger or garbage
> collector).
>
> -eric
>
> On Tue, Sep 24, 2019 at 8:43 AM Keith Walker via Phabricator
> <reviews at reviews.llvm.org> wrote:
>> keith.walker.arm added a comment.
>>
>> I feel that using a -g option make more sense.
>>
>> Maybe -gdwarf-frame, or -gdwarf-frame-always might be more user friendly as it relates more to the DWARF section created rather than the section content.
>>
>>
>> Repository:
>>   rG LLVM Github Monorepo
>>
>> CHANGES SINCE LAST ACTION
>>   https://reviews.llvm.org/D67216/new/
>>
>> https://reviews.llvm.org/D67216
>>
>>
>>


More information about the cfe-commits mailing list