Turn on -fomit-frame-pointer by default for 32bit Linux/x86.
2010-08-12 H.J. Lu <hongjiu.lu@intel.com> Uros Bizjak <ubizjak@gmail.com> * config.gcc: Handle --enable-frame-pointer. * configure.ac: Add --enable-frame-pointer. * configure: Regenerated. * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0. (override_options): If not configured with --enable-frame-pointer, enable -fomit-frame-pointer (but not for TARGET_MACHO or when optimizing for size), -fasynchronous-unwind-tables and -maccumulate-outgoing-args by default. Co-Authored-By: Uros Bizjak <ubizjak@gmail.com> From-SVN: r163196
This commit is contained in:
parent
a8c5681878
commit
d79389af14
5 changed files with 90 additions and 29 deletions
|
@ -1,3 +1,17 @@
|
|||
2010-08-12 H.J. Lu <hongjiu.lu@intel.com>
|
||||
Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* config.gcc: Handle --enable-frame-pointer.
|
||||
|
||||
* configure.ac: Add --enable-frame-pointer.
|
||||
* configure: Regenerated.
|
||||
|
||||
* config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
|
||||
(override_options): If not configured with --enable-frame-pointer,
|
||||
enable -fomit-frame-pointer (but not for TARGET_MACHO or when
|
||||
optimizing for size), -fasynchronous-unwind-tables and
|
||||
-maccumulate-outgoing-args by default.
|
||||
|
||||
2010-08-12 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare
|
||||
|
|
|
@ -406,6 +406,9 @@ i[34567]86-*-*)
|
|||
if test "x$enable_cld" = xyes; then
|
||||
tm_defines="${tm_defines} USE_IX86_CLD=1"
|
||||
fi
|
||||
if test "x$enable_frame_pointer" = xyes; then
|
||||
tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
|
||||
fi
|
||||
tm_file="vxworks-dummy.h ${tm_file}"
|
||||
;;
|
||||
x86_64-*-*)
|
||||
|
@ -413,6 +416,9 @@ x86_64-*-*)
|
|||
if test "x$enable_cld" = xyes; then
|
||||
tm_defines="${tm_defines} USE_IX86_CLD=1"
|
||||
fi
|
||||
if test "x$enable_frame_pointer" = xyes; then
|
||||
tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
|
||||
fi
|
||||
tm_file="vxworks-dummy.h ${tm_file}"
|
||||
;;
|
||||
esac
|
||||
|
|
|
@ -2979,32 +2979,6 @@ override_options (bool main_args_p)
|
|||
if (TARGET_MACHO && TARGET_64BIT)
|
||||
flag_pic = 2;
|
||||
|
||||
/* Set the default values for switches whose default depends on TARGET_64BIT
|
||||
in case they weren't overwritten by command line options. */
|
||||
if (TARGET_64BIT)
|
||||
{
|
||||
if (flag_zee == 2)
|
||||
flag_zee = 1;
|
||||
/* Mach-O doesn't support omitting the frame pointer for now. */
|
||||
if (flag_omit_frame_pointer == 2)
|
||||
flag_omit_frame_pointer = (TARGET_MACHO ? 0 : 1);
|
||||
if (flag_asynchronous_unwind_tables == 2)
|
||||
flag_asynchronous_unwind_tables = 1;
|
||||
if (flag_pcc_struct_return == 2)
|
||||
flag_pcc_struct_return = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (flag_zee == 2)
|
||||
flag_zee = 0;
|
||||
if (flag_omit_frame_pointer == 2)
|
||||
flag_omit_frame_pointer = 0;
|
||||
if (flag_asynchronous_unwind_tables == 2)
|
||||
flag_asynchronous_unwind_tables = 0;
|
||||
if (flag_pcc_struct_return == 2)
|
||||
flag_pcc_struct_return = DEFAULT_PCC_STRUCT_RETURN;
|
||||
}
|
||||
|
||||
/* Need to check -mtune=generic first. */
|
||||
if (ix86_tune_string)
|
||||
{
|
||||
|
@ -3292,6 +3266,38 @@ override_options (bool main_args_p)
|
|||
for (i = 0; i < X86_TUNE_LAST; ++i)
|
||||
ix86_tune_features[i] = !!(initial_ix86_tune_features[i] & ix86_tune_mask);
|
||||
|
||||
#ifndef USE_IX86_FRAME_POINTER
|
||||
#define USE_IX86_FRAME_POINTER 0
|
||||
#endif
|
||||
|
||||
/* Set the default values for switches whose default depends on TARGET_64BIT
|
||||
in case they weren't overwritten by command line options. */
|
||||
if (TARGET_64BIT)
|
||||
{
|
||||
if (flag_zee == 2)
|
||||
flag_zee = 1;
|
||||
/* Mach-O doesn't support omitting the frame pointer for now. */
|
||||
if (flag_omit_frame_pointer == 2)
|
||||
flag_omit_frame_pointer = (TARGET_MACHO ? 0 : 1);
|
||||
if (flag_asynchronous_unwind_tables == 2)
|
||||
flag_asynchronous_unwind_tables = 1;
|
||||
if (flag_pcc_struct_return == 2)
|
||||
flag_pcc_struct_return = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (flag_zee == 2)
|
||||
flag_zee = 0;
|
||||
/* Mach-O doesn't support omitting the frame pointer for now. */
|
||||
if (flag_omit_frame_pointer == 2)
|
||||
flag_omit_frame_pointer =
|
||||
(TARGET_MACHO ? 0 : !(USE_IX86_FRAME_POINTER || optimize_size));
|
||||
if (flag_asynchronous_unwind_tables == 2)
|
||||
flag_asynchronous_unwind_tables = !USE_IX86_FRAME_POINTER;
|
||||
if (flag_pcc_struct_return == 2)
|
||||
flag_pcc_struct_return = DEFAULT_PCC_STRUCT_RETURN;
|
||||
}
|
||||
|
||||
if (optimize_size)
|
||||
ix86_cost = &ix86_size_cost;
|
||||
else
|
||||
|
@ -3574,7 +3580,8 @@ override_options (bool main_args_p)
|
|||
prefix, suffix, sw);
|
||||
}
|
||||
|
||||
if ((x86_accumulate_outgoing_args & ix86_tune_mask)
|
||||
if ((!USE_IX86_FRAME_POINTER
|
||||
|| (x86_accumulate_outgoing_args & ix86_tune_mask))
|
||||
&& !(target_flags_explicit & MASK_ACCUMULATE_OUTGOING_ARGS)
|
||||
&& !optimize_size)
|
||||
target_flags |= MASK_ACCUMULATE_OUTGOING_ARGS;
|
||||
|
|
24
gcc/configure
vendored
24
gcc/configure
vendored
|
@ -898,6 +898,7 @@ with_system_libunwind
|
|||
enable_secureplt
|
||||
enable_leading_mingw64_underscores
|
||||
enable_cld
|
||||
enable_frame_pointer
|
||||
enable_win32_registry
|
||||
enable_static
|
||||
with_pic
|
||||
|
@ -1597,6 +1598,7 @@ Optional Features:
|
|||
--enable-leading-mingw64-underscores
|
||||
Enable leading underscores on 64 bit mingw targets
|
||||
--enable-cld enable -mcld by default for 32bit x86
|
||||
--enable-frame-pointer enable -fno-omit-frame-pointer by default for 32bit x86
|
||||
--disable-win32-registry
|
||||
disable lookup of installation paths in the
|
||||
Registry on Windows hosts
|
||||
|
@ -10708,6 +10710,24 @@ else
|
|||
fi
|
||||
|
||||
|
||||
# Check whether --enable-frame-pointer was given.
|
||||
if test "${enable_frame_pointer+set}" = set; then :
|
||||
enableval=$enable_frame_pointer;
|
||||
else
|
||||
|
||||
case $target_os in
|
||||
linux*)
|
||||
# Enable -fomit-frame-pointer by default for Linux.
|
||||
enable_frame_pointer=no
|
||||
;;
|
||||
*)
|
||||
enable_frame_pointer=yes
|
||||
;;
|
||||
esac
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Windows32 Registry support for specifying GCC installation paths.
|
||||
# Check whether --enable-win32-registry was given.
|
||||
if test "${enable_win32_registry+set}" = set; then :
|
||||
|
@ -17109,7 +17129,7 @@ else
|
|||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<_LT_EOF
|
||||
#line 17112 "configure"
|
||||
#line 17132 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
|
@ -17215,7 +17235,7 @@ else
|
|||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<_LT_EOF
|
||||
#line 17218 "configure"
|
||||
#line 17238 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
|
|
|
@ -1580,6 +1580,20 @@ AC_ARG_ENABLE(cld,
|
|||
[ --enable-cld enable -mcld by default for 32bit x86], [],
|
||||
[enable_cld=no])
|
||||
|
||||
AC_ARG_ENABLE(frame-pointer,
|
||||
[ --enable-frame-pointer enable -fno-omit-frame-pointer by default for 32bit x86], [],
|
||||
[
|
||||
case $target_os in
|
||||
linux*)
|
||||
# Enable -fomit-frame-pointer by default for Linux.
|
||||
enable_frame_pointer=no
|
||||
;;
|
||||
*)
|
||||
enable_frame_pointer=yes
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
# Windows32 Registry support for specifying GCC installation paths.
|
||||
AC_ARG_ENABLE(win32-registry,
|
||||
[ --disable-win32-registry
|
||||
|
|
Loading…
Add table
Reference in a new issue