[llvm-dev] MTE -- discussion on Exception unwinding ABI
Matthew Malcomson via llvm-dev
llvm-dev at lists.llvm.org
Mon May 11 02:12:52 PDT 2020
On 05/05/2020 01:32, Evgenii Stepanov wrote:
>
>
>
> Approach 1 sounds perfect to me. Conveniently, both unwinders ignore
> unrecognized characters in the augmentation string.
>
> In our experience with ASan, errors caused by failing to unpoison/untag
> a stack frame are cryptic, and pretty hard to debug. But they can be
> caused by a number of other things, not just the unwinder - vfork,
> longjmp and friends in libc, custom stack manipulation anywhere (ex. ART
> has longjmp implemented in assembly). We could implement a "verified"
> mode to catch these cases - a compilation flag that checks that the
> entire frame is SP-accessible at function entry.
>
> We could use the letter "G" as that's what stands for "tag" in the
> instruction mnemonics (STG, IRG).
Awesome -- and the "G" letter seems like a good idea to me.
I'll wait until the end of the week to give others a chance to comment,
but if no-one objects by then I think we can go ahead with Approach 1
using the letter "G".
>
> I had a thought about extending Dwarf with a way to specify a range of
> offsets to be untagged within the frame (and default to the entire frame
> if not specified). But it feels like the performance savings would not
> be worth the extra complexity.
>
More information about the llvm-dev
mailing list