From 2e3f0db6f996d6b3d84955391263e9d035d58760 Mon Sep 17 00:00:00 2001 From: Dale Johannesen Date: Fri, 10 Jun 2005 01:16:52 +0000 Subject: [PATCH] i386.c (optimization_options): Make -fno-math-errno the default on Darwin. 2005-06-09 Dale Johannesen * config/i386/i386.c (optimization_options): Make -fno-math-errno the default on Darwin. * config/rs6000/rs6000.c (optimization_options): Ditto. * doc/invoke.texi (-fno-math-errno): Document. 2005-06-09 Dale Johannesen * config/rs6000/rs6000.c (TARGET_INSN_VALID_WITHIN_DOLOOP): Change to TARGET_INVALID_WITHIN_DOLOOP. From-SVN: r100813 --- gcc/ChangeLog | 12 ++++++++++++ gcc/config/i386/i386.c | 5 +++++ gcc/config/rs6000/rs6000.c | 8 ++++++-- gcc/doc/invoke.texi | 4 ++++ 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d41db885477..b91d5d064bf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2005-06-09 Dale Johannesen + + * config/i386/i386.c (optimization_options): Make -fno-math-errno + the default on Darwin. + * config/rs6000/rs6000.c (optimization_options): Ditto. + * doc/invoke.texi (-fno-math-errno): Document. + +2005-06-09 Dale Johannesen + + * config/rs6000/rs6000.c (TARGET_INSN_VALID_WITHIN_DOLOOP): + Change to TARGET_INVALID_WITHIN_DOLOOP. + 2005-06-09 David Edelsohn * config/rs6000/rs6000.md (eq): Convert to define_insn_and_split. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 0ff50ec9f4b..8dd2d152dc7 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -1636,6 +1636,11 @@ optimization_options (int level, int size ATTRIBUTE_UNUSED) flag_schedule_insns = 0; #endif + if (TARGET_MACHO) + /* The Darwin libraries never set errno, so we might as well + avoid calling them when that's the only reason we would. */ + flag_errno_math = 0; + /* The default values of these switches depend on the TARGET_64BIT that is not known at this moment. Mark these values with 2 and let user the to override these. In case there is no command line option diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 732ccbbee60..5aa2558d0fb 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -906,8 +906,8 @@ static const char alt_reg_names[][8] = #undef TARGET_FUNCTION_OK_FOR_SIBCALL #define TARGET_FUNCTION_OK_FOR_SIBCALL rs6000_function_ok_for_sibcall -#undef TARGET_INSN_VALID_WITHIN_DOLOOP -#define TARGET_INSN_VALID_WITHIN_DOLOOP rs6000_invalid_within_doloop +#undef TARGET_INVALID_WITHIN_DOLOOP +#define TARGET_INVALID_WITHIN_DOLOOP rs6000_invalid_within_doloop #undef TARGET_RTX_COSTS #define TARGET_RTX_COSTS rs6000_rtx_costs @@ -1543,6 +1543,10 @@ rs6000_parse_tls_size_option (void) void optimization_options (int level ATTRIBUTE_UNUSED, int size ATTRIBUTE_UNUSED) { + if (DEFAULT_ABI == ABI_DARWIN) + /* The Darwin libraries never set errno, so we might as well + avoid calling them when that's the only reason we would. */ + flag_errno_math = 0; } /* Implement TARGET_HANDLE_OPTION. */ diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 95846f16273..8b12244b828 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -5331,6 +5331,10 @@ math functions. The default is @option{-fmath-errno}. +On Darwin systems, the math library never sets @code{errno}. There is therefore +no reason for the compiler to consider the possibility that it might, +and @option{-fno-math-errno} is the default. + @item -funsafe-math-optimizations @opindex funsafe-math-optimizations Allow optimizations for floating-point arithmetic that (a) assume -- 2.30.2