This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] i386: Don't use frame pointer without stack access
On Mon, Aug 7, 2017 at 6:21 AM, Uros Bizjak <email@example.com> wrote:
> On Mon, Aug 7, 2017 at 3:15 PM, Michael Matz <firstname.lastname@example.org> wrote:
>> On Mon, 7 Aug 2017, Uros Bizjak wrote:
>>> On Sun, Aug 6, 2017 at 9:40 PM, H.J. Lu <email@example.com> wrote:
>>> > When there is no stack access, there is no need to use frame pointer
>>> > even if -fno-omit-frame-pointer is used.
>>> > Tested on i686 and x86-64. OK for trunk?
>> This will break unwinders relying on frame pointers to exist on all
>> functions, for which projects conciously forced a frame pointer with this
>> option. I don't think we can simply override user specified explicit
>> wishes in this way, presumably they had a reason to use it.
> Hm... yes, you are right.
> HJ, please revert the patch.
Is there a testcae? I'd like to add it.
[hjl@gnu-tools-1 pr81736]$ cat x.i
extern int i;
[hjl@gnu-tools-1 pr81736]$ clang -S -O2 -fno-omit-frame-pointer x.i
[hjl@gnu-tools-1 pr81736]$ cat x.s
.p2align 4, 0x90
foo: # @foo
movl i(%rip), %eax
.size foo, .Lfunc_end0-foo
.ident "clang version 4.0.0 (tags/RELEASE_400/final)"
Does it mean clang is broken?