gcc/libgcc
Teresa Johnson 9f71de8404 Enhances the gcov program summary by adding a histogram of arc counter entries.
Enhances the gcov program summary by adding a histogram of arc counter
entries. This is used to compute working set information in the compiler
for use by optimizations that need information on hot vs cold counter
values or the rough working set size in terms of the number of counters.
Each working set data point is the minimum counter value and number of
counters required to reach a given percentage of the cumulative counter
sum across the profiled execution (sum_all in the program summary).

2012-09-04  Teresa Johnson  <tejohnson@google.com>

	* libgcc/libgcov.c (struct gcov_summary_buffer): New structure.
	(gcov_histogram_insert): New function.
	(gcov_compute_histogram): Ditto.
	(gcov_exit): Invoke gcov_compute_histogram, and perform merging of
	histograms during summary merging.
	* gcc/gcov-io.c (gcov_write_summary): Write out non-zero histogram
	entries to function summary along with an occupancy bit vector.
	(gcov_read_summary): Read in the histogram entries.
	(gcov_histo_index): New function.
	(void gcov_histogram_merge): Ditto.
	* gcc/gcov-io.h (gcov_type_unsigned): New type.
	(struct gcov_bucket_type): Ditto.
	(struct gcov_ctr_summary): Include histogram.
	(GCOV_TAG_SUMMARY_LENGTH): Update to include histogram entries.
	(GCOV_HISTOGRAM_SIZE): New macro.
	(GCOV_HISTOGRAM_BITVECTOR_SIZE): Ditto.
	* gcc/profile.c (NUM_GCOV_WORKING_SETS): Ditto.
	(gcov_working_sets): New global variable.
	(compute_working_sets): New function.
	(find_working_set): Ditto.
	(get_exec_counts): Invoke compute_working_sets.
	* gcc/coverage.c (read_counts_file): Merge histograms, and
	fix bug with accessing summary info for non-summable counters.
	* gcc/basic-block.h (gcov_type_unsigned): New type.
	(struct gcov_working_set_info): Ditto.
	(find_working_set): Declare.
	* gcc/gcov-dump.c (tag_summary): Dump out histogram.

From-SVN: r190952
2012-09-04 21:16:18 +00:00
..
config crtfastmath.c (set_fast_math): Add 'nomips16' attribute. 2012-08-29 09:31:52 +00:00
soft-fp soft-fp: Imported from glibc upstream. 2012-03-01 21:50:26 +01:00
ChangeLog config.host (x86_64-*-openbsd*): New target. 2012-09-02 14:13:21 +00:00
config.host config.host (x86_64-*-openbsd*): New target. 2012-09-02 14:13:21 +00:00
config.in Use i386-cpuinfo.c on all i386 targets 2012-05-10 08:51:39 +00:00
configure ieee754-df.S: Fix typos. 2012-05-29 15:54:22 +01:00
configure.ac ieee754-df.S: Fix typos. 2012-05-29 15:54:22 +01:00
crtstuff.c crtstuff.c (USE_PT_GNU_EH_FRAME): Define for systems using glibc even if inhibit_libc. 2012-08-19 16:11:40 +01:00
dfp-bit.c dfp-bit.c, dfp-bit.h: Move to ../libgcc. 2011-07-11 14:40:56 +00:00
dfp-bit.h Move libgcc_tm_file to toplevel libgcc 2011-11-02 15:26:35 +00:00
divmod.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
empty.mk
emutls.c Move libgcc_tm_file to toplevel libgcc 2011-11-02 15:26:35 +00:00
enable-execute-stack-empty.c enable-execute-stack-empty.c (__enable_execute_stack): Add prototype. 2011-06-22 13:20:07 +02:00
enable-execute-stack-mprotect.c re PR bootstrap/51006 (bootstrap fails on NetBSD 5.1) 2012-01-03 21:39:46 +00:00
fixed-bit.c Move libgcc_tm_file to toplevel libgcc 2011-11-02 15:26:35 +00:00
fixed-bit.h Makefile.in (LIBGCC_VER_FIXEDPOINT_GNU_PREFIX): New. 2011-08-01 12:02:45 +00:00
fixed-obj.mk Makefile.in (fixed-funcs,fixed-conv-funcs): filter-out LIB2FUNCS_EXCLUDE before adding them to libgcc-objects, libgcc-s-objects. 2012-08-23 15:41:03 +00:00
floatunsidf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
floatunsisf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
floatunsitf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
floatunsixf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
fp-bit.c Move libgcc_tm_file to toplevel libgcc 2011-11-02 15:26:35 +00:00
fp-bit.h Makefile.in (FPBIT_FUNCS, [...]): Remove. 2011-08-05 14:53:09 +00:00
gbl-ctors.h Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
gen-fixed.sh fixed-obj.mk: New file to support fine-grain fixed-point functions. 2007-09-17 22:18:13 +00:00
generic-morestack-thread.c Move libgcc_tm_file to toplevel libgcc 2011-11-02 15:26:35 +00:00
generic-morestack.c generic-morestack.c (__splitstack_releasecontext): Correct call to __morestack_release_segments. 2012-02-28 17:43:43 +00:00
generic-morestack.h common.opt (fsplit-stack): New option. 2010-09-27 19:48:20 +00:00
gstdint.h dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined. 2008-06-11 00:43:09 +01:00
gthr-posix.h gthr-posix.h [...] (__gthread_active_p): If __GLIBC__ is defined, refer to __pthread_key_create instead of pthread_cancel. 2012-06-11 14:15:38 -07:00
gthr-single.h gthr-single.h (__GTHREAD_MUTEX_INIT_FUNCTION): Fix definition. 2012-03-13 09:39:01 +00:00
gthr.h re PR gcov-profile/49484 (gcov crash if two(or more) forks happen at the same time) 2012-03-12 14:23:27 +00:00
libgcc2.c Move libgcc_tm_file to toplevel libgcc 2011-11-02 15:26:35 +00:00
libgcc2.h Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
libgcc-std.ver.in generic-morestack.c (__splitstack_find): Check for NULL old stack value. 2011-11-28 05:44:31 +00:00
libgcov.c Enhances the gcov program summary by adding a histogram of arc counter entries. 2012-09-04 21:16:18 +00:00
longlong.h longlong.h: (powerpc): Delete _ARCH_PWR and _ARCH_COM handling. 2012-08-16 03:49:57 +02:00
Makefile.in Makefile.in (fixed-funcs,fixed-conv-funcs): filter-out LIB2FUNCS_EXCLUDE before adding them to libgcc-objects, libgcc-s-objects. 2012-08-23 15:41:03 +00:00
memcmp.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
memcpy.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
memmove.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
memset.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
mkheader.sh Move libgcc_tm_file to toplevel libgcc 2011-11-02 15:26:35 +00:00
mkmap-flat.awk Remove obsolete Tru64 UNIX V5.1B support 2012-03-12 15:35:56 +00:00
mkmap-symver.awk Move shlib support to toplevel libgcc 2011-11-02 10:49:46 +00:00
shared-object.mk shared-object.mk (c_flags-$o): Save c_flags. 2011-06-21 14:26:13 +00:00
siditi-object.mk Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
static-object.mk Makefile.in (vis_hide, [...]): Do not make definitions depend on --enable-shared. 2012-08-22 09:36:23 +01:00
sync.c sync.c: Move to ../libgcc. 2011-08-09 15:40:30 +00:00
udivmod.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
udivmodsi4.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
unwind-arm-common.inc unwind-arm-common.inc: Include tconfig.h', tsystem.h' and `sys/sdt.h'. 2011-12-20 20:54:25 +00:00
unwind-c.c eh_personality.cc (__gxx_personality_seh0): New function. 2012-07-19 07:29:24 +00:00
unwind-compat.c Makefile.in (UNWIND_H): Remove. 2011-08-05 14:37:48 +00:00
unwind-compat.h Makefile.in (UNWIND_H): Remove. 2011-08-05 14:37:48 +00:00
unwind-dw2-fde-compat.c Makefile.in (UNWIND_H): Remove. 2011-08-05 14:37:48 +00:00
unwind-dw2-fde-dip.c unwind-dw2-fde-dip.c: Define USE_PT_GNU_EH_FRAME for BIONIC. 2012-04-24 22:41:33 +00:00
unwind-dw2-fde.c re PR bootstrap/52569 (bootstrap fails on x86_64-apple-darwin10 at revision 185261) 2012-03-13 10:00:48 +00:00
unwind-dw2-fde.h Makefile.in (UNWIND_H): Remove. 2011-08-05 14:37:48 +00:00
unwind-dw2.c Assert DWARF register size <= saved reg size 2012-03-13 10:07:50 -07:00
unwind-dw2.h Makefile.in (UNWIND_H): Remove. 2011-08-05 14:37:48 +00:00
unwind-generic.h eh_personality.cc (__gxx_personality_seh0): New function. 2012-07-19 07:29:24 +00:00
unwind-pe.h Makefile.in (UNWIND_H): Remove. 2011-08-05 14:37:48 +00:00
unwind-seh.c eh_personality.cc (__gxx_personality_seh0): New function. 2012-07-19 07:29:24 +00:00
unwind-sjlj.c Move libgcc_tm_file to toplevel libgcc 2011-11-02 15:26:35 +00:00
unwind.inc Makefile.in (UNWIND_H): Remove. 2011-08-05 14:37:48 +00:00