Linux/i386: Remove SUBTARGET_FRAME_POINTER_REQUIRED
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 12 Jun 2020 12:44:59 +0000 (05:44 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 26 Jun 2020 22:17:49 +0000 (15:17 -0700)
commit727efd27da90fe09ed393c7bb44bba071ae0e0d3
tree87ff43981c07e1902048cdd0d14878d32dc39fb6
parent00e90d3d4cb51fd0fae7b2dbd4bab1db26d6676e
Linux/i386: Remove SUBTARGET_FRAME_POINTER_REQUIRED

config/i386/gnu-user.h has

 #define SUBTARGET_FRAME_POINTER_REQUIRED crtl->profile

ix86_frame_pointer_required() has

  /* Several x86 os'es need a frame pointer for other reasons,
     usually pertaining to setjmp.  */
  if (SUBTARGET_FRAME_POINTER_REQUIRED)
    return true;
...

  if (crtl->profile && !flag_fentry)
    return true;

A frame pointer is needed only for -pg, not for -mfentry -pg.  Remove
SUBTARGET_FRAME_POINTER_REQUIRED from gnu-user.h to make i386 GCC behave
the same as x86-64 GCC.  This fixes

FAIL: gcc.target/i386/pr93492-3.c scan-assembler \t.cfi_startproc\n\tendbr(32|64)\n.*.LPFE1:\n\tnop\n1:\tcall\t__fentry__\n\tret\n
FAIL: gcc.target/i386/pr93492-5.c scan-assembler \t.cfi_startproc\n.*.LPFE1:\n\tnop\n1:\tcall\t__fentry__\n\tret\n

on Linux/i386.

PR target/95655
* config/i386/gnu-user.h (SUBTARGET_FRAME_POINTER_REQUIRED):
Removed.
* config/i386/i386.c (ix86_frame_pointer_required): Update
comments.
gcc/config/i386/gnu-user.h
gcc/config/i386/i386.c