Go to file
Segher Boessenkool 5d59ed6332 Fix shrink-wrapping bug (PR67778, PR68634)
After shrink-wrapping has found the "tightest fit" for where to place
the prologue, it tries move it earlier (so that frame saves are run
earlier) -- but without copying any more basic blocks.

Unfortunately a candidate block we select can be inside a loop, and we
will still allow it (because the loop always exits via our previously
chosen block).  We can do that just fine if we make a duplicate of the
block, but we do not want to here.

So we need to detect this situation.  We can place the prologue at a
previous block PRE only if PRE dominates every block reachable from
it, because then we will never need to duplicate that block (it will
always be executed with prologue).


2015-12-11  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/67778
	PR rtl-optimization/68634
	* shrink-wrap.c (try_shrink_wrapping): Add a comment about why we want
	to put the prologue earlier.  When determining if an earlier block is
	suitable, make sure it dominates every block reachable from it.

From-SVN: r231552
2015-12-11 01:27:14 +01:00
boehm-gc
config
contrib download_prerequisites: Download ISL 0.15 instead of 0.14. 2015-12-06 11:42:49 +01:00
fixincludes
gcc Fix shrink-wrapping bug (PR67778, PR68634) 2015-12-11 01:27:14 +01:00
gnattools re PR ada/50048 ("cc1: note: obsolete option -I- used, please use -iquote instead" during bootstrap) 2015-12-06 18:44:56 +00:00
gotools re PR go/66147 (go fails to cross build) 2015-12-02 19:27:58 +00:00
include
INSTALL
intl
libada
libatomic
libbacktrace PR 68115/libfortran 2015-12-10 01:08:13 +00:00
libcc1
libcilkrts
libcpp Fix missing range information for "%q+D" format code 2015-12-07 16:07:00 +00:00
libdecnumber
libffi
libgcc fptr.c (__canonicalize_funcptr_for_compare): Remove code to initialize call to __dl_fixup once. 2015-12-10 01:32:10 +00:00
libgfortran re PR fortran/50201 (gfortran with -static causes seg fault at runtime for writing double prec array with precision increased to kind=16) 2015-12-05 18:12:26 +00:00
libgo
libgomp Fix GOMP/GOACC_parallel handling in find_func_clobbers 2015-12-09 10:13:35 +00:00
libiberty
libitm
libjava
libmpx
libobjc
liboffloadmic
libquadmath
libsanitizer
libssp
libstdc++-v3 Change tests to use -std=gnu++14 not -std=gnu++1y 2015-12-10 14:39:07 +00:00
libvtv configure.ac: Move AM_ENABLE_MULTILIB before GCC_LIBSTDCXX_RAW_CXX_FLAGS. 2015-12-02 18:18:51 +00:00
lto-plugin
maintainer-scripts
zlib
.dir-locals.el
.gitignore
ABOUT-NLS
ChangeLog re PR go/66147 (go fails to cross build) 2015-12-02 19:27:58 +00:00
ChangeLog.jit
ChangeLog.tree-ssa
compile
config-ml.in
config.guess
config.rpath
config.sub
configure
configure.ac
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.RUNTIME
depcomp
install-sh
libtool-ldflags
libtool.m4
lt~obsolete.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS
Makefile.def re PR libffi/65726 (libffi fails to build when not bootstrapping: configure: error: C++ preprocessor "/lib/cpp" fails sanity check) 2015-12-01 21:15:35 +01:00
Makefile.in re PR go/66147 (go fails to cross build) 2015-12-02 19:27:58 +00:00
Makefile.tpl re PR go/66147 (go fails to cross build) 2015-12-02 19:27:58 +00:00
missing
mkdep
mkinstalldirs
move-if-change
README
symlink-tree
ylwrap

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.