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:
parent
0ea78edbd7
commit
d8955e1744
@ -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";
|
||||
|
Loading…
x
Reference in New Issue
Block a user