Go to file
Yuri Rumyantsev e9d5a1a001 tree-if-conv.c: Include hash-map.h.
gcc/

	* tree-if-conv.c: Include hash-map.h.
	(aggressive_if_conv): New variable.
	(fold_build_cond_expr): Add simplification of non-zero condition.
	(add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
	destination block is not always executed.
	(if_convertible_phi_p): Fix commentary, allow phi nodes have more
	than two predecessors if AGGRESSIVE_IF_CONV is true.
	(if_convertible_stmt_p): Fix commentary.
	(all_preds_critical_p): New function.
	(has_pred_critical_p): New function.
	(if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
	BB can have more than two predecessors and all incoming edges can be
	critical.
	(predicate_bbs): Skip predication for loop exit block, use build2_loc
	to compute predicate for true edge.
	(find_phi_replacement_condition): Delete this function.
	(is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
	Allow interchange PHI arguments if EXTENDED is false.
	Change check that block containing reduction statement candidate
	is predecessor of phi-block since phi may have more than two arguments.
	(phi_args_hash_traits): New helper structure.
	(struct phi_args_hash_traits): New type.
	(phi_args_hash_traits::hash): New function.
	(phi_args_hash_traits::equal_keys): New function.
	(gen_phi_arg_condition): New function.
	(predicate_scalar_phi): Add handling of phi nodes with more than two
	arguments, delete COND and TRUE_BB arguments, insert body of
	find_phi_replacement_condition to predicate ordinary phi nodes.
	(predicate_all_scalar_phis): Skip blocks with the only predecessor,
	delete call of find_phi_replacement_condition and invoke
	predicate_scalar_phi with two arguments.
	(insert_gimplified_predicates): Add assert that non-predicated block
	don't have statements to insert.
	(ifcvt_split_critical_edges): New function.
	(ifcvt_split_def_stmt): Likewise.
	(ifcvt_walk_pattern_tree): Likewise.
	(stmt_is_root_of_bool_pattern): Likewise.
	(ifcvt_repair_bool_pattern): Likewise.
	(ifcvt_local_dce): Likewise.
	(tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
	is copy of inner or outer loop force_vectorize field, invoke
	ifcvt_split_critical_edges, ifcvt_local_dce and
	ifcvt_repair_bool_pattern for aggressive if-conversion.

gcc/testsuite/

	* gcc.dg/vect/vect-aggressive-1.c: New.
	* gcc.target/i386/avx2-vect-aggressive.c: New.

From-SVN: r219658
2015-01-15 14:12:25 +00:00
boehm-gc Include target-utils.exp in boehm-gc testing 2014-12-18 09:42:22 +00:00
config isl.m4: Don't pass -DCLOOG_INT_GMP on islinc. 2014-12-04 08:45:33 +00:00
contrib check_GNU_style.sh: Support patches coming from stdin. 2015-01-12 08:40:16 +00:00
fixincludes server.c (server_setup): Check return value of getcwd and in case of error set buff[0] to 0. 2014-12-15 09:10:41 +01:00
gcc tree-if-conv.c: Include hash-map.h. 2015-01-15 14:12:25 +00:00
gnattools
gotools libgo, compiler: Upgrade libgo to Go 1.4, except for runtime. 2015-01-15 00:27:56 +00:00
include Pull libiberty.h copyright update from Binutils 2015-01-14 21:55:35 +00:00
INSTALL
intl
libada Update copyright years. 2015-01-05 13:33:28 +01:00
libatomic configure.ac: Don't add ${libgcj} for arm*-*-freebsd*. 2015-01-09 15:06:02 +01:00
libbacktrace Update copyright years. 2015-01-05 13:33:28 +01:00
libcc1 re PR rtl-optimization/64536 (Undefined .L* symbol starting with jump2 on s390x) 2015-01-09 22:17:10 +01:00
libcilkrts Always use PIC option with -shared in libtool 2014-11-21 08:49:17 -08:00
libcpp Update copyright years. 2015-01-05 13:33:28 +01:00
libdecnumber Update copyright years. 2015-01-05 13:33:28 +01:00
libffi configure.host: Remove extra brackets for sh. 2015-01-13 23:30:33 +00:00
libgcc configure.ac: Don't add ${libgcj} for arm*-*-freebsd*. 2015-01-09 15:06:02 +01:00
libgfortran re PR fortran/61933 (Inquire on internal units) 2015-01-15 03:57:29 +00:00
libgo libgo: Bump version number in libgo configure script. 2015-01-15 00:52:38 +00:00
libgomp libgomp: Now known as the GNU Offloading and Multi Processing Runtime Library. 2015-01-10 20:10:37 +01:00
libiberty xasprintf.c: New file. 2014-12-24 17:22:51 +01:00
libitm Update copyright years. 2015-01-05 13:33:28 +01:00
libjava re PR libgcj/64219 (Rename libgcj-5.0.pc to libgcj-5.pc) 2015-01-13 09:23:31 +01:00
libobjc Added PR libobjc/51891. 2015-01-09 18:12:51 +00:00
liboffloadmic libgomp: Now known as the GNU Offloading and Multi Processing Runtime Library. 2015-01-10 20:10:37 +01:00
libquadmath gcc.c (process_command): Update copyright notice dates. 2015-01-05 13:05:46 +01:00
libsanitizer sanitizer_deadlock_detector.h: Cherry pick upstream r224518 and r224519. 2015-01-13 18:01:30 +01:00
libssp Always use PIC option with -shared in libtool 2014-11-21 08:49:17 -08:00
libstdc++-v3 re PR c++/64356 (Some constexpr expressions not recognized as constexpr) 2015-01-13 16:04:43 -05:00
libvtv Add load of target-utils.exp to libatomic, libitm, libvtv, libgo testsuite drivers 2014-12-12 12:00:01 +00:00
lto-plugin lto-wrapper.c (compile_offload_image): Start processing in_argv from 0 instead of 1. 2014-12-09 22:44:16 +00:00
maintainer-scripts
zlib Always use PIC option with -shared in libtool 2014-11-21 08:49:17 -08:00
.dir-locals.el
.gitignore Local Vim config with GNU formatting. 2014-12-09 13:45:47 +00:00
ABOUT-NLS
ChangeLog MAINTAINERS: (Write After Approval): Add myself. 2015-01-15 13:18:53 +00:00
ChangeLog.jit
ChangeLog.tree-ssa
compile
config-ml.in
config.guess config.sub: Update from upstream, to 2015-01-01 version. 2015-01-02 09:30:21 +00:00
config.rpath
config.sub config.sub: Update from upstream, to 2015-01-01 version. 2015-01-02 09:30:21 +00:00
configure configure.ac (host_tools): Add gotools. 2015-01-09 21:23:09 +00:00
configure.ac configure.ac (host_tools): Add gotools. 2015-01-09 21:23:09 +00:00
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.RUNTIME
depcomp
install-sh
libtool-ldflags
libtool.m4 Always use PIC option with -shared in libtool 2014-11-21 08:49:17 -08:00
lt~obsolete.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS MAINTAINERS: (Write After Approval): Add myself. 2015-01-15 13:18:53 +00:00
Makefile.def configure.ac (host_tools): Add gotools. 2015-01-09 21:23:09 +00:00
Makefile.in configure.ac (host_tools): Add gotools. 2015-01-09 21:23:09 +00:00
Makefile.tpl Bug #63539 2015-01-03 14:50:48 -08:00
missing
mkdep
mkinstalldirs
move-if-change Update move-if-change from gnulib 2014-11-16 16:12:44 +00:00
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.