2
0
mirror of git://gcc.gnu.org/git/gcc.git synced 2025-03-21 10:20:29 +08:00

Make -fno-emulate-complex the default

From-SVN: r26161
This commit is contained in:
Craig Burley 1999-04-03 20:34:35 +00:00 committed by Craig Burley
parent 0ea78edbd7
commit d8955e1744
7 changed files with 40 additions and 57 deletions

@ -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.

@ -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

@ -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.
completed as of version 2.8.1 and @code{egcs} 1.1.2.)
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.
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

@ -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", "" )

@ -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

@ -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;

@ -1 +1 @@
const char *ffe_version_string = "0.5.24-19990313";
const char *ffe_version_string = "0.5.24-19990403";