NetBSD/gnu/dist/gcc
mycroft b9c785bd44 As seen on tech-toolchain:
So the problem is thus:

* The {u,}mulsidi3 generate two parallel sets which modify the upper and lower
halves of the target register.

* life_analysis() does not track subregister modifications -- if you don't
modify the whole register with a single set, it considers the register
unused.

The simple, if klugy, solution to this is to stick an explicit clobber in.  It
seems to work.

While doing this, I noticed that constant folding was not happening for
32x32->64 multiplies.  This is because the parallel set generated by
{u,}mulsidi3 cannot be folded at all.  To solve this, I first expand to a
normal multiply, and then use a define_insn_and_split to convert it to the
parallel set after CSE and constant folding.

This patch has also been submitted to GCC bugzilla, but who knows if I'll get
a reply to that.
2003-10-29 21:25:03 +00:00
..
config initial import of GCC 3.3.2. this is a bug-fix release that fixes dozens 2003-10-18 11:03:09 +00:00
contrib initial import of GCC 3.3.2. this is a bug-fix release that fixes dozens 2003-10-18 11:03:09 +00:00
gcc As seen on tech-toolchain: 2003-10-29 21:25:03 +00:00
include initial import of GCC 3.3.2. this is a bug-fix release that fixes dozens 2003-10-18 11:13:12 +00:00
INSTALL initial import of GCC 3.3.2. this is a bug-fix release that fixes dozens 2003-10-18 11:03:09 +00:00
libf2c initial import of GCC 3.3.2. this is a bug-fix release that fixes dozens 2003-10-18 11:13:12 +00:00
libiberty initial import of GCC 3.3.2. this is a bug-fix release that fixes dozens 2003-10-18 11:13:12 +00:00
libobjc initial import of GCC 3.3.2. this is a bug-fix release that fixes dozens 2003-10-18 11:13:12 +00:00
libstdc++-v3 initial import of GCC 3.3.2. this is a bug-fix release that fixes dozens 2003-10-18 11:13:12 +00:00
maintainer-scripts initial import of GCC 3.3.2. this is a bug-fix release that fixes dozens 2003-10-18 11:13:12 +00:00
BUGS merge gcc 3.3.2 2003-10-18 11:54:13 +00:00
bugs.html initial import of GCC 3.3.2. this is a bug-fix release that fixes dozens 2003-10-18 11:03:09 +00:00
ChangeLog merge gcc 3.3.2 2003-10-18 11:54:13 +00:00
config-ml.in initial import of GCC 3.3 sources. (this is the latest GCC 3.3.1 2003-07-23 02:40:42 +00:00
config.guess merge import conflicts. 2003-07-25 09:04:06 +00:00
config.if initial import of GCC 3.3 sources. (this is the latest GCC 3.3.1 2003-07-23 02:40:42 +00:00
config.sub merge import conflicts. 2003-07-25 09:04:06 +00:00
configure merge import conflicts. 2003-07-25 09:04:06 +00:00
configure.in merge gcc 3.3.2 2003-10-18 11:54:13 +00:00
COPYING merge import conflicts. 2003-07-25 09:04:06 +00:00
COPYING.LIB merge import conflicts. 2003-07-25 09:04:06 +00:00
FAQ initial import of GCC 3.3.2. this is a bug-fix release that fixes dozens 2003-10-18 11:03:09 +00:00
faq.html initial import of GCC 3.3.2. this is a bug-fix release that fixes dozens 2003-10-18 11:03:09 +00:00
install-sh initial import of GCC 3.3 sources. (this is the latest GCC 3.3.1 2003-07-23 02:40:42 +00:00
libtool.m4 initial import of GCC 3.3.2. this is a bug-fix release that fixes dozens 2003-10-18 11:03:09 +00:00
ltcf-c.sh initial import of GCC 3.3 sources. (this is the latest GCC 3.3.1 2003-07-23 02:40:42 +00:00
ltcf-cxx.sh initial import of GCC 3.3 sources. (this is the latest GCC 3.3.1 2003-07-23 02:40:42 +00:00
ltcf-gcj.sh initial import of GCC 3.3 sources. (this is the latest GCC 3.3.1 2003-07-23 02:40:42 +00:00
ltconfig initial import of GCC 3.3 sources. (this is the latest GCC 3.3.1 2003-07-23 02:40:42 +00:00
ltmain.sh initial import of GCC 3.3 sources. (this is the latest GCC 3.3.1 2003-07-23 02:40:42 +00:00
MAINTAINERS initial import of GCC 3.3.2. this is a bug-fix release that fixes dozens 2003-10-18 11:03:09 +00:00
Makefile.def initial import of GCC 3.3 sources. (this is the latest GCC 3.3.1 2003-07-23 02:40:42 +00:00
Makefile.in merge import conflicts. 2003-07-25 09:04:06 +00:00
Makefile.tpl initial import of GCC 3.3 sources. (this is the latest GCC 3.3.1 2003-07-23 02:40:42 +00:00
missing initial import of GCC 3.3 sources. (this is the latest GCC 3.3.1 2003-07-23 02:40:42 +00:00
mkdep initial import of GCC 3.3 sources. (this is the latest GCC 3.3.1 2003-07-23 02:40:42 +00:00
mkinstalldirs initial import of GCC 3.3 sources. (this is the latest GCC 3.3.1 2003-07-23 02:40:42 +00:00
move-if-change merge import conflicts. 2003-07-25 09:04:06 +00:00
README merge import conflicts. 2003-07-25 09:04:06 +00:00
README.SCO initial import of (final) GCC 3.3.1 sources 2003-08-09 11:11:09 +00:00
symlink-tree initial import of GCC 3.3 sources. (this is the latest GCC 3.3.1 2003-07-23 02:40:42 +00:00
ylwrap initial import of GCC 3.3 sources. (this is the latest GCC 3.3.1 2003-07-23 02:40:42 +00:00

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the file 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.html for how to report bugs usefully.