This is the mail archive of the gcc-cvs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gcc/gcc ChangeLog.rtlopt Makefile.in basic-blo ...


CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	rtlopt-branch
Changes by:	rakdver@gcc.gnu.org	2002-11-08 12:47:15

Modified files:
	gcc            : ChangeLog.rtlopt Makefile.in basic-block.h 
	                 cfg.c cfgcleanup.c cfglayout.c cfgloop.c 
	                 cfgloop.h cfgloopanal.c cfgloopmanip.c cfgrtl.c 
	                 flags.h gcov-io.h libgcc2.c loop-init.c 
	                 loop-unroll.c loop-unswitch.c params.def 
	                 profile.c profile.h toplev.c tracer.c 
	gcc/doc        : invoke.texi 

Log message:
	* Makefile.in (profile.o): Add hashtab.h, cfgloop.h and params.h
	dependency.
	(cfgloop.o): Add flags.h dependency.
	(loop-init.o): Add profile.h dependency.
	* basic_block.h (struct edge_def): Add loop_histogram field.
	(dfs_enumerate_from): Moved from cfgloop.h.
	* cfg.c (dump_edge_info): Dump info about histograms.
	* cfgcleanup.c (try_simplify_condjump, try_forward_edges, merge_blocks):
	Keep histograms alive.
	* cfglayout.c (cleanup_unconditional_jumps, cfg_layout_duplicate_bb):
	Keep histograms alive.
	* cfgloop.c: Include flags.h
	(flow_loop_dump): Dump histograms.
	(flow_loop_free): Free histogram.
	(redirect_edge_with_latch_update, make_forwarder_block): Keep histograms
	alive.
	(flow_loops_find): Modified.
	(verify_loop_structure): Removed argument flags (use loops->state instead).
	Verify loop histograms.
	(move_histograms_to_loops, copy_histogram, add_histogram, free_histogram):
	New functions.
	(loop_latch_edge, loop_preheader_edge): Declare parameter as const.
	* cfgloop.h (struct loop): Add histogram field.
	(struct loop_histogram): New.
	(LOOPS_HAVE_PREHEADERS, LOOPS_HAVE_SIMPLE_LATCHES,
	LOOPS_HAVE_MARKED_IRREDUCIBLE_REGIONS, LOOPS_HAVE_HISTOGRAMS_ON_EDGES):
	New flags for loops->state.
	(struct loops): Add state field.
	(VLS_EXPECT_PREHEADERS, VLS_EXPECT_SIMPLE_LATCHES,
	VLS_EXPECT_MARKED_IRREDUCIBLE_LOOPS, VLS_FOR_LOOP): Removed.
	(dfs_enumerate_from): Declaration moved to basic_block.h.
	(loop_preheader_edge, loop_latch_edge, verify_loop_structure): Declaration
	changed.
	(move_histograms_to_loops, loop_histogram, add_histogram, free_histogram):
	Declare.
	(DLTHE_PROB_UPDATING, DLTHE_USE_HISTOGRAM_PROB, DLTHE_USE_WONT_EXIT):
	New flags.
	(DLTHE_FLAG_ALL): Removed.
	* cfgloopanal.c (mark_irreducible_loops): Set loops->state.
	* cfgloopmanip.c (duplicate_loop, duplicate_subloops, copy_loops_to):
	Update histograms.
	(scale_loop_histograms): New.
	(duplicate_loop_to_header_edge): Use histograms for updating counts.
	(create_preheader): Update loop information correctly.
	(create_preheaders, force_single_succ_latches): Set loops->state.
	(loop_split_edge_with): Keep histograms alive.
	* cfgrtl.c (merge_blocks_nomove): Keep histograms alive.
	* flags.h (flag_loop_histograms): Declare.
	* gcov-io.h (GCOV_TAG_LOOP_HISTOGRAMS, GCOV_SUMMARY_LENGTH): New.
	(struct function_info): Add n_loop_histogram_counters field.
	(struct gcov_info): Add histogram_counts and n_histogram_counts fields.
	* libgcc2.c (gcov_exit, __gcov_flush): Write out histograms.
	* loop-init.c: Include profile.h.
	(loop_optimizer_init): Move histograms to loops.
	* loop-unroll.c (unroll_and_peel_loops): Modified.
	(peel_loop_completely, unroll_loop_constant_iterations,
	unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
	peel_loop_simple, unroll_loop_stupid): Update/use histograms.
	(unroll_or_peel_loop): Use histograms to decide peeling.
	* loop-unswitch.c (unswitch_loops, unswitch_loop): Modified.
	* params.def (PARAM_HISTOGRAM_PEEL_RATIO): New.
	* profile.c: Include cfgloop.h, params.h and hashtab.h.
	(struct function_list): Add histogram_counters field.
	(loop_histograms_label): New.
	(gen_loop_profiler, instrument_loops, compute_loop_histograms,
	htab_counts_index_hash, htab_counts_index_eq, htab_counts_index_del,
	cleanup_counts_index, index_counts_file, get_histogram_counts): New.
	(get_exec_counts, instrument_edges, init_branch_prob,
	create_profiler): Modified.
	(branch_prob): Read loop histograms and add code to generate them.
	* profile.h (struct profile_info): Add count_histogram_counters,
	count_histogram_counters_now and have_loop_histograms fields.
	* toplev.c (flag_loop_histograms): New.
	* tracer.c (find_trace): Prevent loop peeling.
	* doc/invoke.texi: Document -floop-histograms.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.rtlopt.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.1.2.19&r2=1.1.2.20
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/Makefile.in.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.937.2.5&r2=1.937.2.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/basic-block.h.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.158.2.2&r2=1.158.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfg.c.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.35&r2=1.35.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfgcleanup.c.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.63.2.1&r2=1.63.2.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfglayout.c.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.21.4.2&r2=1.21.4.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfgloop.c.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.15.4.3&r2=1.15.4.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfgloop.h.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.1.2.2&r2=1.1.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfgloopanal.c.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.1.4.3&r2=1.1.4.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfgloopmanip.c.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.1.2.3&r2=1.1.2.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfgrtl.c.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.58.4.1&r2=1.58.4.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/flags.h.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.88.2.2&r2=1.88.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/gcov-io.h.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.16.6.1&r2=1.16.6.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/libgcc2.c.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.147.2.2&r2=1.147.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/loop-init.c.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.1.2.1&r2=1.1.2.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/loop-unroll.c.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.1.2.9&r2=1.1.2.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/loop-unswitch.c.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.1.2.1&r2=1.1.2.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/params.def.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.15.6.5&r2=1.15.6.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/profile.c.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.97.2.1&r2=1.97.2.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/profile.h.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.3.14.1&r2=1.3.14.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/toplev.c.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.668.2.8&r2=1.668.2.9
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tracer.c.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.3.2.2&r2=1.3.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/doc/invoke.texi.diff?cvsroot=gcc&only_with_tag=rtlopt-branch&r1=1.174.2.2&r2=1.174.2.3


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]