Go to file
Ramana Radhakrishnan 1be49a38e4 [Patch AArch64] Fixup floating point division with -march=armv8-a+nosimd
The canonical examples is :

    double
    foo (double x, double y)
      {
        return x / y;
      }

    with -march=armv8-a+nosimd

generates a function that calls __divdf3. Ofcourse on AArch64 we don't
have any software floating point and this causes issues.

There is also a problem in +nosimd that has existed since the dawn of
time in the port with respect to long doubles (128 bit floating
point), here the ABI and the compiler expect the presence of the SIMD
unit as these parameters are passed in the vector registers. Thus
while +nosimd tries to prevent the use of SIMD instructions in the
compile we don't get this right as we end up using ldr qN / str qN
instructions and even there I think things go wrong in a simple
example that I tried.

Is that sufficient to consider marking +nosimd as deprecated in GCC-8
and remove this in a future release ?

That is not a subject for this patch but something separate but I
would like to put this into trunk and the release
branches. Bootstrapped and regression tested on my aarch64 desktop.

Ok ?

From-SVN: r255194
2017-11-28 10:26:28 +00:00
INSTALL
config Plugin support on Windows/MinGW 2017-11-26 13:00:48 +00:00
contrib analyze_brprob.py: fix SI units 2017-11-08 07:24:14 +00:00
fixincludes fixinc.in (dirname): Change sed from 's|[^/]*/||' to 's|[^/]*//*||'. 2017-10-13 09:28:41 -06:00
gcc [Patch AArch64] Fixup floating point division with -march=armv8-a+nosimd 2017-11-28 10:26:28 +00:00
gnattools re PR ada/81878 (--disable-bootstrap --enable-languages=ada fails) 2017-08-17 13:39:58 +00:00
gotools Makefile.am (check-go-tool): Output colon after ${fl}. 2017-10-25 22:00:50 +00:00
include RISC-V: Implement __umulsidi3, umul_ppmm and __muluw3 2017-11-20 19:08:38 +00:00
intl Require ngettext in test of system gettext implementation 2017-11-07 15:24:01 +10:30
libada
libatomic Enable building libatomic with Intel CET 2017-11-17 22:18:15 +01:00
libbacktrace Enable building libbacktrace with Intel CET 2017-11-17 22:11:42 +01:00
libcc1 Plugin support on Windows/MinGW 2017-11-26 13:00:48 +00:00
libcilkrts
libcpp Use -Wtraditional for "would be stringified in traditional C" (PR preprocessor/81794) 2017-11-21 00:57:29 +00:00
libdecnumber
libffi Import from libffi master repository. 2017-10-03 14:26:31 -04:00
libgcc i386.c (processor_target_table): Add skylake_cost for skylake-avx512. 2017-11-26 17:11:29 +01:00
libgfortran Whitespace fix for libgfortran/ChangeLog 2017-11-24 11:57:52 +02:00
libgo cmd/go, go/internal/gccgoimporter: pass -X to ar on AIX 2017-11-23 00:24:21 +00:00
libgomp re PR fortran/81304 (Bogus warning with -Wsurprising and -fopenmp: Type specified for intrinsic function 'min' / 'max') 2017-11-24 22:40:21 +01:00
libhsail-rt [BRIGFE] Improved support for function and module scope group 2017-09-27 15:40:24 +00:00
libiberty re PR lto/82757 (r251560 causes: plugin needed to handle lto object) 2017-10-30 12:48:53 +00:00
libitm Enable building libitm with Intel CET 2017-11-17 23:59:41 +01:00
libmpx Enable building libmpx with Intel CET 2017-11-17 23:41:10 +01:00
libobjc [libobjc] Wrap CLASS_TABLE_HASH in do {} while (0) 2017-11-23 15:03:29 +00:00
liboffloadmic
libquadmath Enable building libquadmath with Intel CET 2017-11-17 23:36:50 +01:00
libsanitizer Enable building libsanitizer with Intel CET 2017-11-17 22:34:50 +01:00
libssp Enable building libssp with Intel CET 2017-11-17 23:32:46 +01:00
libstdc++-v3 Add missing noexcept in string_view::find_first_of declaration 2017-11-27 19:43:40 +00:00
libvtv Enable building libvtv with Intel CET 2017-11-17 23:29:19 +01:00
lto-plugin
maintainer-scripts update_version_svn: Ignore the GCC 5 branch. 2017-10-10 15:10:28 +02:00
zlib
.dir-locals.el
.gitattributes
.gitignore
ABOUT-NLS
COPYING
COPYING.LIB
COPYING.RUNTIME
COPYING3
COPYING3.LIB
ChangeLog * MAINTAINERS (write after approval): Add myself. 2017-11-28 09:14:43 +01:00
ChangeLog.jit
ChangeLog.tree-ssa
MAINTAINERS * MAINTAINERS (write after approval): Add myself. 2017-11-28 09:14:43 +01:00
Makefile.def
Makefile.in Fix profiledbootstrap. 2017-10-27 13:13:05 +00:00
Makefile.tpl Fix profiledbootstrap. 2017-10-27 13:13:05 +00:00
README
compile
config-ml.in
config.guess
config.rpath
config.sub
configure configure.ac (target-libffi): Don't disable for AIX. 2017-07-28 14:56:28 -04:00
configure.ac configure.ac (target-libffi): Don't disable for AIX. 2017-07-28 14:56:28 -04:00
depcomp
install-sh
libtool-ldflags
libtool.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
lt~obsolete.m4
missing
mkdep
mkinstalldirs
move-if-change
symlink-tree
ylwrap

README

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.

Copyright years on GCC source files may be listed using range
notation, e.g., 1987-2012, indicating that every year in the range,
inclusive, is a copyrightable year that could otherwise be listed
individually.