aboutsummaryrefslogtreecommitdiff
path: root/gcc/f
diff options
context:
space:
mode:
authorCraig Burley <craig@jcb-sc.com>1999-04-03 20:34:35 +0000
committerCraig Burley <burley@gcc.gnu.org>1999-04-03 15:34:35 -0500
commitd8955e1744a63a795c43d65457c25b31a519f354 (patch)
treeb524182a48e163e0374645e450332b3692ef41eb /gcc/f
parent0ea78edbd7375b83ae45d275e89fc8a5e0b25ebb (diff)
downloadgcc-d8955e1744a63a795c43d65457c25b31a519f354.zip
gcc-d8955e1744a63a795c43d65457c25b31a519f354.tar.gz
gcc-d8955e1744a63a795c43d65457c25b31a519f354.tar.bz2
Make -fno-emulate-complex the default
From-SVN: r26161
Diffstat (limited to 'gcc/f')
-rw-r--r--gcc/f/ChangeLog8
-rw-r--r--gcc/f/bugs.texi19
-rw-r--r--gcc/f/g77.texi57
-rw-r--r--gcc/f/lang-options.h4
-rw-r--r--gcc/f/news.texi7
-rw-r--r--gcc/f/top.c2
-rw-r--r--gcc/f/version.c2
7 files changed, 41 insertions, 58 deletions
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog
index f54463c..4d3b71c 100644
--- a/gcc/f/ChangeLog
+++ b/gcc/f/ChangeLog
@@ -1,3 +1,11 @@
+Sat Apr 3 23:29:33 1999 Craig Burley <craig@jcb-sc.com>
+
+ * bugs.texi, g77.texi, lang-options.h, news.texi, top.c:
+ Make -fno-emulate-complex the default, as COMPLEX support
+ in the back end is now believed to be working.
+
+ * version.c: Bump version.
+
Fri Apr 2 13:33:16 1999 Craig Burley <craig@jcb-sc.com>
* g77.texi: -malign-double now works.
diff --git a/gcc/f/bugs.texi b/gcc/f/bugs.texi
index 637f205..ccf3a7b 100644
--- a/gcc/f/bugs.texi
+++ b/gcc/f/bugs.texi
@@ -9,7 +9,7 @@
@c in the standalone derivations of this file (e.g. BUGS).
@set copyrights-bugs 1995-1999
-@set last-update-bugs 1999-03-15
+@set last-update-bugs 1999-04-03
@include root.texi
@@ -247,23 +247,6 @@ This problem is largely resolved as of version 0.5.23.
Version 0.6 should solve most or all remaining problems
(such as cross-compiling involving 64-bit machines).
-@cindex COMPLEX support
-@cindex support, COMPLEX
-@item
-Maintainers of @code{gcc} report that the back end definitely has ``broken''
-support for @code{COMPLEX} types.
-Based on their input, it seems many of
-the problems affect only the more-general facilities for gcc's
-@code{__complex__} type, such as @code{__complex__ int}
-(where the real and imaginary parts are integers) that GNU
-Fortran does not use.
-
-Version 0.5.20 of @code{g77} works around this
-problem by not using the back end's support for @code{COMPLEX}.
-The new option @samp{-fno-emulate-complex} avoids the work-around,
-reverting to using the same ``broken'' mechanism as that used
-by versions of @code{g77} prior to 0.5.20.
-
@cindex padding
@cindex structures
@cindex common blocks
diff --git a/gcc/f/g77.texi b/gcc/f/g77.texi
index 225345f..a6b611c 100644
--- a/gcc/f/g77.texi
+++ b/gcc/f/g77.texi
@@ -2,7 +2,7 @@
@c %**start of header
@setfilename g77.info
-@set last-update 1999-04-02
+@set last-update 1999-04-03
@set copyrights-g77 1995-1999
@include root.texi
@@ -1466,7 +1466,7 @@ by type. Explanations are in the following sections.
-fpcc-struct-return -freg-struct-return
-fshort-double -fno-common -fpack-struct
-fzeros -fno-second-underscore
--fdebug-kludge -fno-emulate-complex
+-fdebug-kludge -femulate-complex
-falias-check -fargument-alias
-fargument-noalias -fno-argument-noalias-global
-fno-globals
@@ -3253,44 +3253,36 @@ Current plans call for this to happen when published versions of @code{g77}
and @code{gdb} exist that provide proper access to debugging information on
@code{COMMON} and @code{EQUIVALENCE} members.
-@cindex -fno-emulate-complex option
-@cindex options, -fno-emulate-complex
-@item -fno-emulate-complex
-Implement @code{COMPLEX} arithmetic using the facilities in
+@cindex -femulate-complex option
+@cindex options, -femulate-complex
+@item -femulate-complex
+Implement @code{COMPLEX} arithmetic via emulation,
+instead of using the facilities of
the @code{gcc} back end that provide direct support of
-@code{complex} arithmetic, instead of emulating the arithmetic.
+@code{complex} arithmetic.
-@code{gcc} has some known problems in its back-end support
+(@code{gcc} had some bugs in its back-end support
for @code{complex} arithmetic, due primarily to the support not being
-completed as of version 2.7.2.2.
-Other front ends for the @code{gcc} back end avoid this problem
-by emulating @code{complex} arithmetic at a higher level, so the
-back end sees arithmetic on the real and imaginary components.
-To make @code{g77} more portable to systems where @code{complex}
-support in the @code{gcc} back end is particularly troublesome,
-@code{g77} now defaults to performing the same kinds of emulations
-done by these other front ends.
-
-Use @samp{-fno-emulate-complex} to try the @code{complex} support
-in the @code{gcc} back end, in case it works and produces faster
-programs.
-So far, all the known bugs seem to involve compile-time crashes,
-rather than the generation of incorrect code.
+completed as of version 2.8.1 and @code{egcs} 1.1.2.)
+
+Use @samp{-femulate-complex} if you suspect code-generation bugs,
+or experience compiler crashes,
+that might result from @code{g77} using the @code{COMPLEX} support
+in the @code{gcc} back end.
+If using that option fixes the bugs or crashes you are seeing,
+that indicates a likely @code{g77} bugs
+(though, all compiler crashes are considered bugs),
+so, please report it.
+(Note that the known bugs, now believed fixed, produced compiler crashes
+rather than causing the generation of incorrect code.)
Use of this option should not affect how Fortran code compiled
by @code{g77} works in terms of its interfaces to other code,
e.g. that compiled by @code{f2c}.
-@emph{Caution:} Future versions of @code{g77} are likely to change
-the default for this option to
-@samp{-fno-emulate-complex}, and perhaps someday ignore both forms
+@emph{Caution:} Future versions of @code{g77} might ignore both forms
of this option.
-Also, it is possible that use of the @samp{-fno-emulate-complex} option
-could result in incorrect code being silently produced by @code{g77}.
-But, this is generally true of compilers anyway, so, as usual, test
-the programs you compile before assuming they are working.
-
@cindex -falias-check option
@cindex options, -falias-check
@cindex -fargument-alias option
@@ -8896,11 +8888,6 @@ mode afterward.
(In @code{gdb}, this is accomplished via @samp{set lang c} and
either @samp{set lang fortran} or @samp{set lang auto}.)
-@emph{Note:} Compiling with the @samp{-fno-emulate-complex} option
-avoids the debugging problem, but is known to cause other problems
-like compiler crashes and generation of incorrect code, so it is
-not recommended.
-
@node Arrays
@section Arrays (DIMENSION)
@cindex DIMENSION statement
diff --git a/gcc/f/lang-options.h b/gcc/f/lang-options.h
index e1446dd..3f439fd 100644
--- a/gcc/f/lang-options.h
+++ b/gcc/f/lang-options.h
@@ -81,8 +81,8 @@ FTNOPT( "-finit-local-zero", "Initialize local vars and arrays to zero" )
FTNOPT( "-fno-init-local-zero", "" )
FTNOPT( "-fbackslash", "" )
FTNOPT( "-fno-backslash", "Backslashes in character/hollerith constants not special (C-style)" )
-FTNOPT( "-femulate-complex", "" )
-FTNOPT( "-fno-emulate-complex", "Have compiler back end cope with COMPLEX arithmetic" )
+FTNOPT( "-femulate-complex", "Have front end emulate COMPLEX arithmetic to avoid bugs" )
+FTNOPT( "-fno-emulate-complex", "" )
FTNOPT( "-funderscoring", "" )
FTNOPT( "-fno-underscoring", "Disable the appending of underscores to externals" )
FTNOPT( "-fsecond-underscore", "" )
diff --git a/gcc/f/news.texi b/gcc/f/news.texi
index 8bfa438..8723157 100644
--- a/gcc/f/news.texi
+++ b/gcc/f/news.texi
@@ -9,7 +9,7 @@
@c in the standalone derivations of this file (e.g. NEWS).
@set copyrights-news 1995-1999
-@set last-update-news 1999-04-02
+@set last-update-news 1999-04-03
@include root.texi
@@ -204,6 +204,11 @@ when the corresponding @emph{subsequent} function program unit
disagrees with the reference concerning the type of the function.
@end ifclear
+@item
+@code{-fno-emulate-complex} is now the default option.
+This should result in improved performance
+of code that uses the @code{COMPLEX} data type.
+
@cindex alignment
@cindex double-precision performance
@cindex -malign-double
diff --git a/gcc/f/top.c b/gcc/f/top.c
index 6f94b1c..6928018 100644
--- a/gcc/f/top.c
+++ b/gcc/f/top.c
@@ -65,7 +65,7 @@ bool ffe_is_do_internal_checks_ = FALSE;
bool ffe_is_90_ = FFETARGET_defaultIS_90;
bool ffe_is_automatic_ = FFETARGET_defaultIS_AUTOMATIC;
bool ffe_is_backslash_ = FFETARGET_defaultIS_BACKSLASH;
-bool ffe_is_emulate_complex_ = TRUE;
+bool ffe_is_emulate_complex_ = FALSE;
bool ffe_is_underscoring_ = FFETARGET_defaultEXTERNAL_UNDERSCORED
|| FFETARGET_defaultUNDERSCORED_EXTERNAL_UNDERSCORED;
bool ffe_is_second_underscore_ = FFETARGET_defaultUNDERSCORED_EXTERNAL_UNDERSCORED;
diff --git a/gcc/f/version.c b/gcc/f/version.c
index 83cb30c..5ec5a80 100644
--- a/gcc/f/version.c
+++ b/gcc/f/version.c
@@ -1 +1 @@
-const char *ffe_version_string = "0.5.24-19990313";
+const char *ffe_version_string = "0.5.24-19990403";