Find a file
Alexandre Oliva 510335c8b6 re PR middle-end/22156 (bit-field copying regressed)
PR middle-end/22156
* tree-sra.c (struct sra_elt): Add in_bitfld_block.
(sra_hash_tree): Handle BIT_FIELD_REFs.
(sra_elt_hash): Don't hash bitfld blocks.
(sra_elt_eq): Skip them in parent compares as well.  Handle
BIT_FIELD_REFs.
(build_element_name_1): Handle BIT_FIELD_REFs.
(instantiate_element): Propagate nowarn from parents.  Create
BIT_FIELD_REF for variables that are widened by scalarization.
Gimple-zero-initialize all bit-field variables that are not
part of parameters that are going to be scalarized on entry.
(instantiate_missing_elements_1): Return the sra_elt.
(canon_type_for_field): New.
(try_instantiate_multiple_fields): New.  Infer widest possible
access mode from decl or member type, but clip it at word
size, and only widen it if a field crosses an alignment
boundary.
(instantiate_missing_elements): Use them.
(generate_one_element_ref): Handle BIT_FIELD_REFs.
(scalar_bitfield_p): New.
(sra_build_assignment): Optimize assignments from scalarizable
BIT_FIELD_REFs.  Use BITS_BIG_ENDIAN to determine shift
counts.
(REPLDUP): New.
(sra_build_bf_assignment): New.  Optimize assignments to
scalarizable BIT_FIELD_REFs.
(sra_build_elt_assignment): New.  Optimize BIT_FIELD_REF
assignments to full variables.
(generate_copy_inout): Use the new macros and functions.
(generate_element_copy): Likewise.  Handle bitfld differences.
(generate_element_zero): Don't recurse for blocks.  Use
sra_build_elt_assignment.
(generate_one_element_init): Take elt instead of var.  Use
sra_build_elt_assignment.
(generate_element_init_1): Adjust.
(bitfield_overlap_info): New struct.
(bitfield_overlaps_p): New.
(sra_explode_bitfield_assignment): New.  Adjust widened
variables to account for endianness.
(sra_sync_for_bitfield_assignment): New.
(scalarize_use): Re-expand assignment to/from scalarized
BIT_FIELD_REFs.  Explode or sync needed members for
BIT_FIELD_REFs accesses or assignments.  Use REPLDUP.
(scalarize_copy): Use REPLDUP.
(scalarize_ldst): Move assert before dereference.  Adjust EH
handling.
(dump_sra_elt_name): Handle BIT_FIELD_REFs.

From-SVN: r128908
2007-10-01 16:35:55 +00:00
boehm-gc * include/private/gcconfig.h: Handle mips64-linux n64 ABI. 2007-08-15 06:42:16 +00:00
config mt-sde (CFLAGS_FOR_TARGET): Replace -fno-optimize-sibling-calls with -minterlink-mips16. 2007-09-21 07:33:31 +00:00
contrib warn_summary (srcdirFilter): Add fixincludes, sim, newlib and mpfr. 2007-09-22 01:19:10 +00:00
fixincludes inclhack.def (solaris_math_5, [...]): Delete fixes. 2007-08-04 03:44:24 +00:00
gcc re PR middle-end/22156 (bit-field copying regressed) 2007-10-01 16:35:55 +00:00
gnattools configure.ac: Update TOOLS_TARGET_PAIRS configuration to match gcc/ada/Makefile.in. 2007-06-06 15:18:52 +02:00
include pexecute.txh (pex_free): Document process killing. 2007-09-06 16:58:57 +00:00
INSTALL
intl Makefile.in (distclean): Delete config files. 2006-09-27 18:51:52 +09:30
libada * Makefile.in: Add dummy install-pdf target. 2007-03-01 16:05:13 -08:00
libcpp tree-cfg.c (remove_bb): Only warn if line is non-zero. 2007-09-06 16:24:05 +00:00
libdecnumber Makefile.in (libdecnumber_a_OBJS): Remove decUtility.o 2007-09-10 20:44:08 +00:00
libffi [multiple changes] 2007-09-04 17:52:45 +00:00
libgcc Makefile.in (dfp-filenames): Replace decimal_globals... 2007-09-27 10:47:23 -07:00
libgfortran re PR fortran/33400 (Formatted read fails if line ends without line break) 2007-09-28 16:55:07 +00:00
libgomp openmp_stack.f90: Removed. 2007-09-28 15:22:18 +02:00
libiberty pexecute.txh (pex_free): Document process killing. 2007-09-06 16:58:57 +00:00
libjava defineclass.cc (MAJOR_1_6): New define. 2007-09-17 16:30:46 +00:00
libmudflap Makefile.in: Rebuilt. 2007-07-27 00:16:35 +00:00
libobjc re PR libobjc/30731 (Warnings while compiling libobjc with the uleb128 changes) 2007-08-06 07:17:59 -07:00
libssp Regenerate aclocal.m4 in boehm-gc, libffi, libgfortran, libgomp, 2007-07-05 10:54:10 -07:00
libstdc++-v3 algorithmfwd.h: Spacing. 2007-09-28 17:49:28 +00:00
maintainer-scripts gcc_release: Do not include copies of faq.html in releases... 2007-10-01 06:21:10 +00:00
zlib Regenerate aclocal.m4 in boehm-gc, libffi, libgfortran, libgomp, 2007-07-05 10:54:10 -07:00
ABOUT-NLS
ChangeLog Makefile.tpl (AR_FOR_BUILD, [...]): Use autoconf substitutions. 2007-10-01 07:15:42 +00:00
ChangeLog.tree-ssa
compile COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
config-ml.in * config-ml.in: Pass ${ml_config_env} to configure calls. 2007-04-14 19:48:36 +00:00
config.guess * config.sub, config.guess: Update from upstream sources. 2007-08-29 15:21:28 +00:00
config.rpath all files: Update FSF address. 2005-07-16 02:30:53 +00:00
config.sub * config.sub, config.guess: Update from upstream sources. 2007-08-29 15:21:28 +00:00
configure Makefile.tpl (AR_FOR_BUILD, [...]): Use autoconf substitutions. 2007-10-01 07:15:42 +00:00
configure.ac Makefile.tpl (AR_FOR_BUILD, [...]): Use autoconf substitutions. 2007-10-01 07:15:42 +00:00
COPYING COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
COPYING.LIB Update COPYING.LIB from upstream. Correct last Changelog. 2005-07-14 01:41:54 +00:00
COPYING3 COPYING_v3: New file. 2007-07-17 08:37:53 +00:00
COPYING3.LIB COPYING_v3: New file. 2007-07-17 08:37:53 +00:00
depcomp
install-sh COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
libtool-ldflags re PR bootstrap/31906 ("-Xcompiler" is inserted after "-Xlinker" when building libstdc++) 2007-09-20 10:20:05 +00:00
libtool.m4 libtool.m4 (LT_CMD_MAX_LEN): Try using getconf to set lt_cv_sys_max_cmd_len. 2007-06-01 11:32:07 +00:00
ltgcc.m4 [multiple changes] 2007-05-31 06:40:42 +00:00
ltmain.sh ltmain.sh: Fix Darwin verstring, remove ${wl}. 2007-05-25 21:26:27 +02:00
ltoptions.m4 ltmain.sh: Update from ToT Libtool. 2007-05-24 16:37:27 +00:00
ltsugar.m4 ltmain.sh: Update from ToT Libtool. 2007-05-24 16:37:27 +00:00
ltversion.m4 ltmain.sh: Update from ToT Libtool. 2007-05-24 16:37:27 +00:00
lt~obsolete.m4 lt~obsolete.m4: New. 2007-07-05 10:36:59 -07:00
MAINTAINERS * MAINTAINERS (Register allocation reviewer): Add myself. 2007-09-24 11:55:40 -05:00
Makefile.def configure.ac (TOPLEVEL_CONFIGURE_ARGUMENTS): Move libgomp before libstdc++. 2007-09-20 00:58:02 +00:00
Makefile.in Makefile.tpl (AR_FOR_BUILD, [...]): Use autoconf substitutions. 2007-10-01 07:15:42 +00:00
Makefile.tpl Makefile.tpl (AR_FOR_BUILD, [...]): Use autoconf substitutions. 2007-10-01 07:15:42 +00:00
missing COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
mkdep
mkinstalldirs COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
move-if-change Import from Autoconf sources: 2005-11-21 13:21:37 +11:00
README
README.SCO
symlink-tree COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
ylwrap COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +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.