[llvm] r251904 - [X86] Generate .cfi_adjust_cfa_offset correctly when pushing arguments

Kuperstein, Michael M via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 3 09:12:32 PST 2015


Sorry, I wasn't clear - when I said "always", I meant both -O2 and -Os -fomit-frame-pointers.
But "-Os -fomit-frame-pointers" isn't a configuration that's normally used, so I'm not entirely sure it was a conscious decision.

Anyway, if there's consensus that we need to always be precise, the code is already in place, we just need to flip the switch - but I'm afraid of the size impact.

-----Original Message-----
From: Rafael EspĂ­ndola [mailto:rafael.espindola at gmail.com] 
Sent: Tuesday, November 03, 2015 18:09
To: Kuperstein, Michael M
Cc: llvm-commits
Subject: Re: [llvm] r251904 - [X86] Generate .cfi_adjust_cfa_offset correctly when pushing arguments

On 3 November 2015 at 10:55, Kuperstein, Michael M <michael.m.kuperstein at intel.com> wrote:
> GCC is always precise, but that seems unnecessary when we only care about performing unwinding for synchronous EH (since in this case, we only need to be right at call sites), and inflates the module size.
>
> It's actually a bit hard to compare apples-to-apples here, since for -O2, there's no definitely harm in emitting extra CFI, but clang doesn't use pushes, and for -Os, GCC defaults to -no-omit-frame-pointer, so the issue does not arise.

-Os -fomit-frame-pointers?

I think it is incorrect to say that we don't care about asynchronous unwinding (not exceptions). The .eh_frame is part of the ABI and any tool wanting to unwind can depend on it being precise.

Cheers,
Rafael
---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


More information about the llvm-commits mailing list