Find a file
Martin Jambor 07ffa034dd common.opt (fipa-sra): New switch.
2009-09-17  Martin Jambor  <mjambor@suse.cz>

	* common.opt (fipa-sra): New switch.
	* opts.c (decode_options): Turn flag_ipa_sra on for opt2.
	* timevar.def (TV_IPA_SRA): New timevar.
	* params.def (ipa-sra-ptr-growth-factor): New parameter.
	* doc/invoke.texi: Document -fipa-sra and ipa-sra-ptr-growth-factor.
	* tree-sra.c: Include cgraph.c.
	(enum sra_mode): Added SRA_MODE_EARLY_IPA.
	(struct access): Added fields stmt, grp_maybe_modified, grp_scalar_ptr
	and grp_not_necessarilly_dereferenced.
	(func_param_count): New variable.
	(encountered_apply_args): New variable.
	(bb_dereferences): New variable.
	(final_bbs): New variable.
	(no_accesses_representant): New variable.
	(no_accesses_p): New function.
	(dump_access): Dump the new fields.
	(sra_initialize): Set encountered_apply_args to false.
	(get_ssa_base_param): New function.
	(mark_parm_dereference): New function.
	(create_access): Caring for INIDRECT_REFs and different handling of
	varialble length accesses in early IPA SRA.  Store the stmt - a new
	parameter - to the new access.
	(build_access_from_expr_1): New parameter stmt, passed to
	create_access.  Handle INDIRECT_REFs.
	(build_access_from_expr): Pass the current statement to
	build_access_from_expr_1.
	(disqualify_ops_if_throwing_stmt): Trigger only in intraprocedural
	passes.
	(build_accesses_from_assign): Pass the current statement to
	build_access_from_expr_1.  Do not create assign links in IPA-SRA.
	(scan_function): Call handle_ssa_defs on phi nodes.  Set bits in
	final_bbs when necessary.  Check for calls to __builtin_apply_args.
	Fixup EH info if anythng was changed.
	(is_unused_scalar_param): New function.
	(ptr_parm_has_direct_uses): New function.
	(find_param_candidates): New function.
	(mark_maybe_modified): New function.
	(analyze_modified_params): New function.
	(propagate_dereference_distances): New function.
	(dump_dereferences_table): New function.
	(analyze_caller_dereference_legality): New function.
	(unmodified_by_ref_scalar_representative): New function.
	(splice_param_accesses): New function.
	(decide_one_param_reduction): New function.
	(enum ipa_splicing_result): New type.
	(splice_all_param_accesses): New function.
	(get_param_index): New function.
	(turn_representatives_into_adjustments): New function.
	(analyze_all_param_acesses): New function.
	(get_replaced_param_substitute): New function.
	(get_adjustment_for_base): New function.
	(replace_removed_params_ssa_names): New function.
	(sra_ipa_reset_debug_stmts): New function.
	(sra_ipa_modify_expr): New function.
	(sra_ipa_modify_assign): New function.
	(convert_callers): New function.
	(modify_function): New function.
	(ipa_sra_preliminary_function_checks): New function.
	(ipa_early_sra): New function.
	(ipa_early_sra_gate): New function.
	(pass_early_ipa_sra): New variable.
	* Makefile.in (tree-sra.o): Add cgraph.h to dependencies.
	
	Testsuite:

	* gcc.dg/struct/wo_prof_escape_arg_to_local.c: Do not run IPA-SRA.
	* gcc.dg/ipa/ipa-sra-1.c: New test.
	* gcc.dg/ipa/ipa-sra-2.c: New test.
	* gcc.dg/ipa/ipa-sra-3.c: New test.
	* gcc.dg/ipa/ipa-sra-4.c: New test.
	* gcc.dg/ipa/ipa-sra-5.c: New test.
	* gcc.c-torture/execute/ipa-sra-1.c: New test.
	* gcc.c-torture/execute/ipa-sra-2.c: New test.

From-SVN: r151800
2009-09-17 13:35:38 +02:00
boehm-gc Override all per-target *_LINK variables correctly. 2009-09-11 05:02:20 +00:00
config stdint.m4 (GCC_HEADER_STDINT): Revert changes to this macro in the previous two patches. 2009-09-09 19:42:21 +00:00
contrib re PR bootstrap/41245 (Bootstrap broken on I386-apple-darwin9 at revision 151373) 2009-09-10 16:32:51 +02:00
fixincludes Remove obsolete entries from fixincludes. 2009-09-15 04:59:54 +00:00
gcc common.opt (fipa-sra): New switch. 2009-09-17 13:35:38 +02:00
gnattools Update AC_PREREQ entries to 2.64 2009-08-24 19:08:51 +00:00
include update copyright dates 2009-09-03 11:32:09 +09:30
INSTALL
intl Update AC_PREREQ entries to 2.64 2009-08-24 19:08:51 +00:00
libada re PR ada/41122 (libada multilib string parsing error) 2009-08-30 14:26:37 +00:00
libcpp Changlog libcpp 2009-09-13 15:08:20 +02:00
libdecnumber stdint.m4 (GCC_HEADER_STDINT): Revert changes to this macro in the previous two patches. 2009-09-09 19:42:21 +00:00
libffi java_raw_api.c (ffi_java_raw_to_rvalue): Remove special handling for FFI_TYPE_POINTER. 2009-09-15 17:15:33 +00:00
libgcc Update AC_PREREQ entries to 2.64 2009-08-24 19:08:51 +00:00
libgfortran re PR fortran/41328 (bad iostat when reading DOS file in a character array (non-advancing)) 2009-09-13 03:41:41 +00:00
libgomp Override all per-target *_LINK variables correctly. 2009-09-11 05:02:20 +00:00
libiberty * hashtab.c [HAVE_INTTYPES_H]: Include <inttypes.h>. 2009-09-16 08:38:46 +00:00
libjava natVMSecureRandomWin32.cc: Correct UnsupportedOperationException namespace. 2009-09-16 21:38:46 +00:00
libmudflap mf-runtime.c (__mf_init): Support FreeBSD. 2009-09-01 18:13:18 +00:00
libobjc Update AC_PREREQ entries to 2.64 2009-08-24 19:08:51 +00:00
libssp Update AC_PREREQ entries to 2.64 2009-08-24 19:08:51 +00:00
libstdc++-v3 algobase.h: Replace tabs by spaces; correct line breaks. 2009-09-17 08:42:39 +00:00
maintainer-scripts * update_web_docs_svn: Redirect output of texi2dvi to /dev/null. 2009-04-23 13:30:49 +00:00
zlib Update AC_PREREQ entries to 2.64 2009-08-24 19:08:51 +00:00
ABOUT-NLS
ChangeLog configure.ac: Disable java and boehm-gc for bfin-*-*. 2009-09-15 15:10:09 +00:00
ChangeLog.tree-ssa
compile Update automake-provided files in the toplevel. 2009-08-22 11:47:16 +00:00
config-ml.in config-ml.in: don't handle --enable-shared and --enable-static. 2008-05-14 17:15:51 +00:00
config.guess * config.sub, config.guess: Update from upstream sources. 2009-08-17 14:09:01 +10:00
config.rpath * config.rpath: Add AIX 6 support. 2008-03-13 14:55:20 -04:00
config.sub * config.sub, config.guess: Update from upstream sources. 2009-08-17 14:09:01 +10:00
configure configure.ac: Disable java and boehm-gc for bfin-*-*. 2009-09-15 15:10:09 +00:00
configure.ac configure.ac: Disable java and boehm-gc for bfin-*-*. 2009-09-15 15:10:09 +00:00
COPYING
COPYING.LIB
COPYING.RUNTIME Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception. 2009-04-09 17:00:19 +02: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 Update automake-provided files in the toplevel. 2009-08-22 11:47:16 +00:00
install-sh Update automake-provided files in the toplevel. 2009-08-22 11:47:16 +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 (output_verbose_link_cmd): Require leading blank, and blank before -L. 2009-09-08 17:43:37 +00:00
ltgcc.m4 libtool.m4: Update to libtool 2.2.6. 2008-09-26 16:21:02 +00:00
ltmain.sh ltmain.sh (removedotparts): Don't use comma as 's' separator. 2009-08-26 14:52:45 +00:00
ltoptions.m4 libtool.m4: Update to libtool 2.2.6. 2008-09-26 16:21:02 +00:00
ltsugar.m4 libtool.m4: Update to libtool 2.2.6. 2008-09-26 16:21:02 +00:00
ltversion.m4 libtool.m4: Update to libtool 2.2.6. 2008-09-26 16:21:02 +00:00
lt~obsolete.m4 libtool.m4: Update to libtool 2.2.6. 2008-09-26 16:21:02 +00:00
MAINTAINERS MAINTAINERS (Write After Approval): Update my e-mail address, and move from from here... 2009-09-12 13:46:40 +01:00
Makefile.def configure.ac: Detect awk and sed. 2009-08-30 14:33:13 +00:00
Makefile.in configure.ac (--with-build-config): New. 2009-09-03 05:55:57 +00:00
Makefile.tpl configure.ac (--with-build-config): New. 2009-09-03 05:55:57 +00:00
missing Update automake-provided files in the toplevel. 2009-08-22 11:47:16 +00:00
mkdep
mkinstalldirs Update automake-provided files in the toplevel. 2009-08-22 11:47:16 +00:00
move-if-change
README
symlink-tree
ylwrap Update automake-provided files in the toplevel. 2009-08-22 11:47:16 +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.