This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] i386: Don't use frame pointer without stack access

On Mon, Aug 7, 2017 at 6:21 AM, Uros Bizjak <> wrote:
> On Mon, Aug 7, 2017 at 3:15 PM, Michael Matz <> wrote:
>> Hi,
>> On Mon, 7 Aug 2017, Uros Bizjak wrote:
>>> On Sun, Aug 6, 2017 at 9:40 PM, H.J. Lu <> 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?
>>> LGTM.
>> 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;

foo (void)
  return i;
[hjl@gnu-tools-1 pr81736]$ clang -S -O2 -fno-omit-frame-pointer x.i
[hjl@gnu-tools-1 pr81736]$ cat x.s
.file "x.i"
.globl foo
.p2align 4, 0x90
.type foo,@function
foo:                                    # @foo
# BB#0:
movl i(%rip), %eax
.size foo, .Lfunc_end0-foo

.ident "clang version 4.0.0 (tags/RELEASE_400/final)"
.section ".note.GNU-stack","",@progbits
[hjl@gnu-tools-1 pr81736]$

Does it mean clang is broken?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]