aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2005-06-10 01:16:52 +0000
committerDale Johannesen <dalej@gcc.gnu.org>2005-06-10 01:16:52 +0000
commit2e3f0db6f996d6b3d84955391263e9d035d58760 (patch)
treebe41b63edfaa93227ab09b71f4485a27df0f3511
parente94412761a952781f4b29043a8f11e8b53a9e159 (diff)
downloadgcc-2e3f0db6f996d6b3d84955391263e9d035d58760.zip
gcc-2e3f0db6f996d6b3d84955391263e9d035d58760.tar.gz
gcc-2e3f0db6f996d6b3d84955391263e9d035d58760.tar.bz2
i386.c (optimization_options): Make -fno-math-errno the default on Darwin.
2005-06-09 Dale Johannesen <dalej@apple.com> * 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 <dalej@apple.com> * config/rs6000/rs6000.c (TARGET_INSN_VALID_WITHIN_DOLOOP): Change to TARGET_INVALID_WITHIN_DOLOOP. From-SVN: r100813
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/config/i386/i386.c5
-rw-r--r--gcc/config/rs6000/rs6000.c8
-rw-r--r--gcc/doc/invoke.texi4
4 files changed, 27 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d41db88..b91d5d0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,15 @@
+2005-06-09 Dale Johannesen <dalej@apple.com>
+
+ * 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 <dalej@apple.com>
+
+ * config/rs6000/rs6000.c (TARGET_INSN_VALID_WITHIN_DOLOOP):
+ Change to TARGET_INVALID_WITHIN_DOLOOP.
+
2005-06-09 David Edelsohn <edelsohn@gnu.org>
* 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 0ff50ec..8dd2d15 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 732ccbb..5aa2558 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 95846f1..8b12244 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