Richard Allen
c912005af7
gprof: only process line numbers for intersection of vmas and histograms
...
Some programs like RTOS firmware may have a large number of symbols.
The profile information in the profile data file includes histogram
records, which capture low PC and high PC of program execution. If all
histogram records come in the profile data file before any call-graph
records and basic-block records, we can look up only the line numbers
within low PC and high PC in histogram records, which reduces processing
time for such a firmware from ~2 minutes to ~2 seconds.
Add symbol table access function, get_symtab, get_symtab_direct and
set_symtab to delay loading the symbol table until its first use.
* aarch64.c (aarch64_find_call): Call get_symtab to get the
symbol table pointer
* alpha.c (alpha_find_call): Likewise.
* basic_blocks.c (bb_read_rec): Likewise.
(bb_write_blocks): Likewise.
(print_exec_counts): Likewise.
(print_annotated_source): Likewise.
* call_graph.c (cg_tally): Likewise.
(cg_write_arcs): Likewise.
* cg_arcs.c (cycle_link): Likewise.
(propagate_flags): Likewise.
(cg_assemble): Likewise.
* cg_print.c (cg_print): Likewise.
(cg_print_index): Likewise.
(cg_print_function_ordering): Likewise.
* corefile.c: Include "gmon_io.h".
(core_create_syms_from): Call get_symtab_direct to get the
symbol table pointer.
(core_create_function_syms): Likewise.
(core_create_line_syms): Likewise. If all histogram records
come in the profile data file before any call-graph records and
basic-block records, we can look up only the line numbers within
low PC and high PC in histogram records.
* gmon_io.c (gmon_histograms_first): New.
(gmon_out_read): Set gmon_histograms_first to true if all
histogram records come first.
(gmon_out_write): Call get_symtab to get the symbol table
pointer.
* hist.c (scale_and_align_entries): Likewise.
(hist_assign_samples_1): Likewise.
(hist_print): Likewise.
* i386.c (i386_find_call): Likewise.
* mips.c (mips_find_call): Likewise.
* sparc.c (sparc_find_call): Likewise.
* sym_ids.c (sym_id_parse): Likewise.
* vax.c (vax_find_call): Likewise.
* gmon_io.h (gmon_histograms_first): New.
* gprof.c (man): Don't create profile info.
(symtab_init): New.
* gprof.h (symtab_init): New.
* symtab.c (symtab): Changed to static.
(get_symtab_direct): New.
(get_symtab): Likewise.
(set_symtab): Likewise.
* symtab.h (symtab): Removed.
(get_symtab_direct): New.
(get_symtab): Likewise.
(set_symtab): Likewise.
Signed-off-by: Richard Allen <rsaxvc@gmail.com>
Co-Authored-By: H.J. Lu <hjl.tools@gmail.com>
2025-03-14 07:03:52 -07:00
Richard Allen
50eeb3b160
gprof: remove ASCII formfeed/0x0C bytes from source code
...
Signed-off-by: Richard Allen <rsaxvc@gmail.com>
2025-03-01 11:17:13 +10:30
Alan Modra
e8e7cf2abe
Update year range in copyright notice of binutils files
2025-01-01 18:29:57 +10:30
Alan Modra
fd67aa1129
Update year range in copyright notice of binutils files
...
Adds two new external authors to etc/update-copyright.py to cover
bfd/ax_tls.m4, and adds gprofng to dirs handled automatically, then
updates copyright messages as follows:
1) Update cgen/utils.scm emitted copyrights.
2) Run "etc/update-copyright.py --this-year" with an extra external
author I haven't committed, 'Kalray SA.', to cover gas testsuite
files (which should have their copyright message removed).
3) Build with --enable-maintainer-mode --enable-cgen-maint=yes.
4) Check out */po/*.pot which we don't update frequently.
2024-01-04 22:58:12 +10:30
Alan Modra
23f6f86ca0
gprof: sprintf sanitizer null destination pointer
...
* basic_blocks.c (annotate_with_count): Use output of sprintf
rather than strlen.
2023-08-03 21:19:54 +09:30
Alan Modra
d87bef3a7b
Update year range in copyright notice of binutils files
...
The newer update-copyright.py fixes file encoding too, removing cr/lf
on binutils/bfdtest2.c and ld/testsuite/ld-cygwin/exe-export.exp, and
embedded cr in binutils/testsuite/binutils-all/ar.exp string match.
2023-01-01 21:50:11 +10:30
Alan Modra
e3154ef69c
gprof: remove use of PTR
...
* basic_blocks.c: Replace uses of PTR with void * throughout.
* cg_arcs.c: Likewise.
* cg_print.c: Likewise.
* hist.c: Likewise.
* source.h: Likewise.
* symtab.c: Likewise.
2022-05-10 11:21:37 +09:30
Alan Modra
a2c5833233
Update year range in copyright notice of binutils files
...
The result of running etc/update-copyright.py --this-year, fixing all
the files whose mode is changed by the script, plus a build with
--enable-maintainer-mode --enable-cgen-maint=yes, then checking
out */po/*.pot which we don't update frequently.
The copy of cgen was with commit d1dd5fcc38ead reverted as that commit
breaks building of bfp opcodes files.
2022-01-02 12:04:28 +10:30
Alan Modra
faa7a26040
Use bool in gprof
...
* basic_blocks.c: Replace bfd_boolean with bool, FALSE with false,
and TRUE with true throughout.
* basic_blocks.h: Likewise.
* cg_arcs.c: Likewise.
* cg_dfn.c: Likewise.
* cg_print.c: Likewise.
* corefile.c: Likewise.
* gmon_io.c: Likewise.
* gprof.c: Likewise.
* gprof.h: Likewise.
* hist.c: Likewise.
* mips.c: Likewise.
* source.c: Likewise.
* source.h: Likewise.
* sym_ids.c: Likewise.
* sym_ids.h: Likewise.
* symtab.h: Likewise.
* vax.c: Likewise.
2021-03-31 10:49:23 +10:30
Alan Modra
250d07de5c
Update year range in copyright notice of binutils files
2021-01-01 10:31:05 +10:30
Alan Modra
b3adc24a07
Update year range in copyright notice of binutils files
2020-01-01 18:42:54 +10:30
Alan Modra
827041555a
Update year range in copyright notice of binutils files
2019-01-01 22:06:53 +10:30
Alan Modra
219d1afa89
Update year range in copyright notice of binutils files
2018-01-03 17:49:56 +10:30
Alan Modra
2571583aed
Update year range in copyright notice of all files.
2017-01-02 14:08:56 +10:30
Ambrogino Modigliani
576a6e4d1d
Fix spelling in comments in C source files (gprof)
...
* basic_blocks.c: Fix spelling in comments.
* cg_arcs.c: Fix spelling in comments.
* cg_print.c: Fix spelling in comments.
* corefile.c: Fix spelling in comments.
2016-11-27 15:04:01 +10:30
Trevor Saunders
e6c7cdec06
update many old style function definitions
...
This includes regenerating a bunch of files in opcodes/ with trunk cgen.
gprof/ChangeLog:
2016-04-20 Trevor Saunders <tbsaunde+binutils@tbsaunde.org>
* basic_blocks.c: Update old style function definitions.
* cg_arcs.c: Likewise.
* cg_print.c: Likewise.
* gen-c-prog.awk: Likewise.
* gmon_io.c: Likewise.
* hertz.c: Likewise.
* hist.c: Likewise.
* sym_ids.c: Likewise.
bfd/ChangeLog:
2016-04-20 Trevor Saunders <tbsaunde+binutils@tbsaunde.org>
* cache.c: Update old style function definitions.
* elf32-m68k.c: Likewise.
* elf64-mmix.c: Likewise.
* stab-syms.c: Likewise.
opcodes/ChangeLog:
2016-04-20 Trevor Saunders <tbsaunde+binutils@tbsaunde.org>
* alpha-dis.c: Regenerate.
* crx-dis.c: Likewise.
* disassemble.c: Likewise.
* epiphany-opc.c: Likewise.
* fr30-opc.c: Likewise.
* frv-opc.c: Likewise.
* ip2k-opc.c: Likewise.
* iq2000-opc.c: Likewise.
* lm32-opc.c: Likewise.
* lm32-opinst.c: Likewise.
* m32c-opc.c: Likewise.
* m32r-opc.c: Likewise.
* m32r-opinst.c: Likewise.
* mep-opc.c: Likewise.
* mt-opc.c: Likewise.
* or1k-opc.c: Likewise.
* or1k-opinst.c: Likewise.
* tic80-opc.c: Likewise.
* xc16x-opc.c: Likewise.
* xstormy16-opc.c: Likewise.
ld/ChangeLog:
2016-04-20 Trevor Saunders <tbsaunde+binutils@tbsaunde.org>
* emultempl/scoreelf.em: Likewise.
binutils/ChangeLog:
2016-04-20 Trevor Saunders <tbsaunde+binutils@tbsaunde.org>
* resres.c: Likewise.
gas/ChangeLog:
2016-04-20 Trevor Saunders <tbsaunde+binutils@tbsaunde.org>
* cgen.c: Likewise.
* config/tc-bfin.c: Likewise.
* config/tc-ia64.c: Likewise.
* config/tc-mep.c: Likewise.
* config/tc-metag.c: Likewise.
* config/tc-nios2.c: Likewise.
* config/tc-rl78.c: Likewise.
2016-04-20 07:04:49 -04:00
Alan Modra
6f2750feaf
Copyright update for binutils
2016-01-01 23:00:01 +10:30
H.J. Lu
f3445b37b6
Remove trailing spaces in gprof
2015-08-12 04:43:32 -07:00
Alan Modra
b90efa5b79
ChangeLog rotatation and copyright year update
2015-01-02 00:53:45 +10:30
Alan Modra
4b95cf5c0c
Update copyright years
2014-03-05 22:16:15 +10:30
Kai Tietz
aee9ba6f90
2011-02-28 Kai Tietz <kai.tietz@onevision.com>
...
* basic_blocks.c (cmp_bb): Use filename_(n)cmp.
* cg_print.c (order_and_dump_functions_by_arcs): Likewise.
(cg_print_file_ordering): Likewise.
* corefile.c (read_function_mappings): Likewise.
(core_create_line_syms): Likewise.
2011-02-28 18:36:14 +00:00
Nick Clifton
1e9cc1c27b
* po/bfd.pot: Updated by the Translation project.
...
* po/binutils.pot: Updated by the Translation project.
* po/gold.pot: Updated by the Translation project.
* po/gold.pot: Updated by the Translation project.
* po/gprof.pot: Updated by the Translation project.
* po/sv.po: Updated Swedish translation.
* po/ld.pot: Updated by the Translation project.
* po/fi.po: Updated Finnish translation.
* po/ld.pot: Updated by the Translation project.
* po/fi.po: Updated Finnish translation.
Updated sources to compile cleanly with -Wc++-compat:
* basic_blocks.c: Add casts.
* cg_dfn.c: Add cast.
* corefile.c: Add casts.
* gmon_io.c: Add casts.
* hist.c: Add cast.
* source.c: Add cast.
* sym_ids.c (struct match): Moved to top level.
Updated soruces in ld/* to compile cleanly with -Wc++-compat:
* ld.h (enum endian_enum,enum symbolic_enum,enum dynamic_list_enum): Move to top level.
* ldcref.c: Add casts.
* ldctor.c: Add casts.
* ldexp.c
* ldexp.h (enum node_tree_enum,enum phase_enum): Move to top level.
* ldlang.c: Add casts. (lang_insert_orphan): Use enum name instead of integer.
* ldlang.h (enum statement_enum): Move to top level.
* ldmain.c: Add casts.
* ldwrite.c: Add casts.
* lexsup.c: Add casts. (enum control_enum): Move to top level.
* mri.c: Add casts. (mri_draw_tree): Use enum name instead of integer.
Updated sources to compile cleanly with -Wc++-compat:
* basic_blocks.c: Add casts.
* cg_dfn.c: Add cast.
* corefile.c: Add casts.
* gmon_io.c: Add casts.
* hist.c: Add cast.
* source.c: Add cast.
* sym_ids.c (struct match): Moved to top level.
* as.c (main): Call dwarf2_init.
* config/obj-elf.c (struct group_list): New field.
(build_group_lists): Use hash lookup.
(free_section_idx): New function.
(elf_frob_file): Adjust.
* dwarf2dbg.c (all_segs_hash, last_seg_ptr): New variables.
(get_line_subseg): Adjust.
(dwarf2_init): New function.
* dwarf2dbg.h (dwarf2_init): New declaration.
2009-09-11 15:27:38 +00:00
Andreas Schwab
ecba005fa1
* basic_blocks.c: Always include "gprof.h" first.
...
* cg_arcs.c: Likewise.
* cg_dfn.c: Likewise.
* cg_print.c: Likewise.
* corefile.c: Likewise.
* gprof.c: Likewise.
* hist.c: Likewise.
* search_list.c: Likewise.
* sym_ids.c: Likewise.
* utils.c: Likewise.
2008-06-19 16:30:29 +00:00
Nick Clifton
651dbc76f2
CHange FSF sources over to GPLv3
2007-07-06 10:40:34 +00:00
Nick Clifton
44eb18016c
Update the address of the FSF
2005-05-09 06:55:25 +00:00
Nick Clifton
f7945f452e
Step through the sorted array of basic blocks.
2005-03-15 16:20:42 +00:00
Alan Modra
d6a3970174
update copyright dates
2005-03-03 12:05:13 +00:00
Alan Modra
8c62e9e130
* basic_blocks.c: Warning fixes.
...
* gmon_io.c: Likewise.
* hist.c: Likewise.
* hist.h: Likewise.
2005-02-22 12:59:21 +00:00
Ben Elliston
3e8f6abf1e
* alpha.c, basic_blocks.c, basic_blocks.h, bb_exit_func.c,
...
call_graph.c, call_graph.h, cg_arcs.c, cg_arcs.h, cg_dfn.c,
cg_dfn.h, cg_print.c, cg_print.h, corefile.c, corefile.h,
gmon_io.c, gmon_io.h, gprof.c, gprof.h, hertz.h, hist.c, hist.h,
i386.c, mips.c, search_list.c, search_list.h, source.c, source.h,
sparc.c, sym_ids.c, sym_ids.h, symtab.c, symtab.h, tahoe.c,
utils.c, utils.h, vax.c, gen-c-prog.awk: Convert K&R C to ANSI C.
2004-05-26 04:55:55 +00:00
Alan Modra
b34976b65a
s/boolean/bfd_boolean/ s/true/TRUE/ s/false/FALSE/. Simplify
...
comparisons of bfd_boolean vars with TRUE/FALSE. Formatting.
2002-11-30 08:39:46 +00:00
Alan Modra
1355568ab4
* alpha.c (alpha_find_call): Warning fixes.
...
* mips.c (mips_find_call): Likewise.
* sparc.c (sparc_find_call): Likewise.
* basic_blocks.c: Warning fixes. Eliminate DEFUN.
* call_graph.c: Likewise.
* cg_arcs.c: Likewise.
* cg_dfn.cp: Likewise.
* gprof.c: Likewise.
* gprof.h: Likewise.
* hist.c: Likewise.
* search_list.c: Likewise.
* source.c: Likewise.
* source.h: Likewise.
* sym_ids.c: Likewise.
* symtab.c: Likewise.
* symtab.h: Likewise.
* utils.c: Likewise.
* cg_print.c: Likewise.
(struct function_map, symbol_map, symbol_map_count): Move
declaration to..
* corefile: ..here.
* corefile.c: Warning fixes. Eliminate DEFUN.
(struct function_map): Remove declaration.
* gmon_io.c: Warning fixes. Eliminate DEFUN.
(gmon_io_read_64): Make static.
(gmon_io_write_64): Likewise.
(gmon_read_raw_arc): Likewise.
(gmon_write_raw_arc): Likewise.
(gmon_io_write_8): Don't pass char, pass int param.
* gmon_io.h (gmon_io_write_8): Likewise.
and a few copyright dates that should have been done previously.
2002-02-01 08:24:16 +00:00
Alan Modra
bde52789b2
* basic_blocks.c: Replace bool with boolean, TRUE with true and
...
FALSE with false throughout.
* basic_blocks.h: Likewise.
* cg_arcs.c: Likewise.
* cg_dfn.c: Likewise.
* cg_print.c: Likewise.
* corefile.c: Likewise.
* gmon_io.c: Likewise.
* gprof.c: Likewise.
* hist.c: Likewise.
* mips.c: Likewise.
* source.c: Likewise.
* source.h: Likewise.
* sym_ids.c: Likewise.
* sym_ids.h: Likewise.
* symtab.h: Likewise.
* tahoe.c: Likewise.
* vax.c: Likewise.
* gprof.h: Likewise.
(TRUE): Don't define.
(FALSE): Don't define.
2002-02-01 01:18:06 +00:00
Alan Modra
6d9c411afd
* alpha.c (alpha_Instruction): Don't use.
...
(alpha_find_call): Avoid use of bitfields and casts between
pointers and integers of different sizes. Avoid endian problems
when cross-compiling.
* vax.c (vax_find_call): Likewise.
(struct modebyte): Don't use.
(vax_operandmode): Pass in an unsigned char *.
(vax_operandlength): Likewise.
(vax_reladdr): Rename to vax_offset and return relative offset
rather than address.
* i386.c (i386_find_call): Avoid casts between pointers and
integers of different sizes.
* sparc.c (sparc_find_call): Likewise. Avoid endian problems.
* tahoe.c (tahoe_find_call): Likewise.
(tahoe_reladdr): Rename to tahoe_offset and return relative offset
rather than address.
* basic_blocks.h: Don't include headers here.
* call_graph.h: Likewise.
* cg_arcs.h: Likewise.
* cg_print.h: Likewise.
* corefile.h: Likewise.
* gmon_io.h: Likewise.
* gmon_out.h: Likewise.
* hertz.h: Likewise.
* hist.h: Likewise.
* source.h: Likewise.
* sym_ids.h: Likewise.
* symtab.h: Likewise.
* gprof.h: Don't include ansidecl.h, do include bfd.h.
(bool): Don't typedef.
* alpha.c: Adjust #include's for above header changes.
* basic_blocks.c: Likewise.
* call_graph.c: Likewise.
* cg_arcs.c: Likewise.
* cg_dfn.c: Likewise.
* cg_print.c: Likewise.
* corefile.c: Likewise.
* gmon_io.c: Likewise.
* gprof.c: Likewise.
* hertz.c: Likewise.
* hist.c: Likewise.
* i386.c: Likewise.
* mips.c: Likewise.
* sparc.c: Likewise.
* sym_ids.c: Likewise.
* symtab.c: Likewise.
* tahoe.c: Likewise.
* utils.c: Likewise.
* vax.c: Likewise.
* po/POTFILES.in: Regenerate.
2002-01-31 12:56:08 +00:00
Alan Modra
0eee5820aa
David Mosberger's fixes for cross compiling gprof.
2001-03-14 03:14:56 +00:00
Nick Clifton
37503931d0
Fix typos in ChangeLog; fix dates in copyright notices
2001-03-13 21:07:30 +00:00
Michael Sokolov
b71c67aba4
* basic_blocks.c: #include <unistd.h> only if it exists.
2001-01-27 19:54:49 +00:00
Nick Clifton
ef368dac31
Add GPL copyright notices to uncopyrighted files.
...
Add copy of GPL.
2000-07-24 20:59:04 +00:00
Ian Lance Taylor
fdcf7d4328
* Many files: Add casts in many print statements to cast bfd_vma
...
values to unsigned long when calling printf.
* Makefile.am ($(OBJECTS)): Add gmon.h.
* Makefile.in: Rebuild.
1999-06-30 22:38:30 +00:00
Richard Henderson
252b5132c7
19990502 sourceware import
1999-05-03 07:29:11 +00:00