From d8955e1744a63a795c43d65457c25b31a519f354 Mon Sep 17 00:00:00 2001 From: Craig Burley Date: Sat, 3 Apr 1999 20:34:35 +0000 Subject: [PATCH] Make -fno-emulate-complex the default From-SVN: r26161 --- gcc/f/ChangeLog | 8 +++++++ gcc/f/bugs.texi | 19 +-------------- gcc/f/g77.texi | 57 +++++++++++++++++--------------------------- gcc/f/lang-options.h | 4 ++-- gcc/f/news.texi | 7 +++++- gcc/f/top.c | 2 +- gcc/f/version.c | 2 +- 7 files changed, 41 insertions(+), 58 deletions(-) diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog index f54463cc69b..4d3b71cdd53 100644 --- a/gcc/f/ChangeLog +++ b/gcc/f/ChangeLog @@ -1,3 +1,11 @@ +Sat Apr 3 23:29:33 1999 Craig Burley + + * 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 * g77.texi: -malign-double now works. diff --git a/gcc/f/bugs.texi b/gcc/f/bugs.texi index 637f205be01..ccf3a7b5ebb 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 225345f33a0..a6b611ccd3d 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 e1446ddde44..3f439fdd6a8 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 8bfa4381223..8723157ce92 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 6f94b1ce0fd..692801841b3 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 83cb30cbbe5..5ec5a808006 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"; -- 2.30.2