Skip to content
Snippets Groups Projects
  • Rong Xu's avatar
    d6d3f033
    The patch re-factors libgcov.c to make it better modulelized. · d6d3f033
    Rong Xu authored
    2013-11-12  Rong Xu  <xur@google.com>
    
    The patch re-factors libgcov.c to make it better modulelized.
    It contains two pieces of work:
    1. break gcov_exit() into the following structure:
       gcov_exit()
          --> gcov_exit_compute_summary()
          --> allocate_filename_struct()
              for gi_ptr in gcov_list
                --> gcov_exit_dump_gcov()
                       --> gcov_exit_open_gcda_file()
                       --> gcov_exit_merge_gcda ()
                       --> gcov_exit_merge_summary ()
                       --> gcov_exit_write_gcda ()
    2. split libgcov.c into the following files:
         libgcov-profiler.c
         libgcov-merge.c
         libgcov-interface.c
         libgcov-driver.c
           libgcov-driver-system.c (source included into libgcov-driver.c)
    
    	* libgcc/libgcov.c: Delete as part of re-factoring.
    	* gcc/gcov-io.h (__gcov_indirect_call_profiler): Add the decl to
            avoid warning.
    	* libgcc/libgcov-interface.c (init_mx): Moved from libgcov.c.
    	(init_mx_once): Ditto.
    	(__gcov_flush): Ditto.
    	(__gcov_reset): Ditto.
    	(__gcov_dump): Ditto.
    	(__gcov_fork): Ditto.
    	(__gcov_execl): Ditto.
    	(__gcov_execlp): Ditto.
    	(__gcov_execle): Ditto.
    	(__gcov_execv): Ditto.
    	(__gcov_execvp): Ditto.
    	(__gcov_execve): Ditto.
            * libgcc/libgcov-merge.c (__gcov_merge_time_profile): Moved from
            libgcov.c.
    	(__gcov_merge_add): Ditto.
    	(__gcov_merge_ior): Ditto.
    	(__gcov_merge_single): Ditto.
    	(__gcov_merge_delta): Ditto.
    	* libgcc/libgcov-profiler.c 
    	(__gcov_interval_profiler): Ditto.
    	(__gcov_pow2_profiler): Ditto.
    	(__gcov_one_value_profiler_body): Ditto.
    	(__gcov_one_value_profiler): Ditto.
    	(__gcov_indirect_call_profiler): Ditto.
    	(__gcov_indirect_call_profiler_v2): Ditto.
    	(__gcov_time_profiler): Ditto.
    	(__gcov_average_profiler): Ditto.
    	(__gcov_ior_profiler): Ditto.
    	* libgcc/libgcov-driver.c (set_gcov_list): New.
    	(get_gcov_dump_complete): Ditto.
    	(set_gcov_dump_complete):Ditto.
    	(reset_gcov_dump_complete):Ditto.
    	(gcov_exit_compute_summary): New function split from gcov_exit().
    	(gcov_exit_merge_gcda): Ditto.
    	(gcov_exit_write_gcda): Ditto.
    	(gcov_exit_merge_summary): Ditto.
    	(gcov_exit_dump_gcov): Ditto.
    	(struct gcov_fn_buffer): Moved from libgcov.c
    	(struct gcov_summary_buffer): Ditto.
    	(free_fn_data): Ditto.
    	(buffer_fn_data): Ditto.
    	(crc32_unsigned): Ditto.
    	(gcov_version): Ditto.
    	(gcov_histogram_insert): Ditto.
    	(gcov_compute_histogram): Ditto.
    	(gcov_exit): Ditto.
    	(gcov_clear): Ditto.
    	(__gcov_init): Ditto.
            (this_prg): Make it file scope static variable.
            (all_prg): Ditto.
            (crc32): Ditto.
            (gi_filename): Ditto.
            (fn_buffer): Ditto.
            (sum_buffer): Ditto.
            (struct gcov_filename_aux): New types to store auxiliary information
            for gi_filename.
    	* libgcc/libgcov-driver-system.c (gcov_error): New utility function.
    	(allocate_filename_struct): New function split from gcov_exit().
    	(gcov_exit_open_gcda_file): Ditto.
    	(create_file_directory): Moved from libgcov.c
    	* libgcc/Makefile.in: Change to build newly added files.
    
    From-SVN: r204730
    d6d3f033
    History
    The patch re-factors libgcov.c to make it better modulelized.
    Rong Xu authored
    2013-11-12  Rong Xu  <xur@google.com>
    
    The patch re-factors libgcov.c to make it better modulelized.
    It contains two pieces of work:
    1. break gcov_exit() into the following structure:
       gcov_exit()
          --> gcov_exit_compute_summary()
          --> allocate_filename_struct()
              for gi_ptr in gcov_list
                --> gcov_exit_dump_gcov()
                       --> gcov_exit_open_gcda_file()
                       --> gcov_exit_merge_gcda ()
                       --> gcov_exit_merge_summary ()
                       --> gcov_exit_write_gcda ()
    2. split libgcov.c into the following files:
         libgcov-profiler.c
         libgcov-merge.c
         libgcov-interface.c
         libgcov-driver.c
           libgcov-driver-system.c (source included into libgcov-driver.c)
    
    	* libgcc/libgcov.c: Delete as part of re-factoring.
    	* gcc/gcov-io.h (__gcov_indirect_call_profiler): Add the decl to
            avoid warning.
    	* libgcc/libgcov-interface.c (init_mx): Moved from libgcov.c.
    	(init_mx_once): Ditto.
    	(__gcov_flush): Ditto.
    	(__gcov_reset): Ditto.
    	(__gcov_dump): Ditto.
    	(__gcov_fork): Ditto.
    	(__gcov_execl): Ditto.
    	(__gcov_execlp): Ditto.
    	(__gcov_execle): Ditto.
    	(__gcov_execv): Ditto.
    	(__gcov_execvp): Ditto.
    	(__gcov_execve): Ditto.
            * libgcc/libgcov-merge.c (__gcov_merge_time_profile): Moved from
            libgcov.c.
    	(__gcov_merge_add): Ditto.
    	(__gcov_merge_ior): Ditto.
    	(__gcov_merge_single): Ditto.
    	(__gcov_merge_delta): Ditto.
    	* libgcc/libgcov-profiler.c 
    	(__gcov_interval_profiler): Ditto.
    	(__gcov_pow2_profiler): Ditto.
    	(__gcov_one_value_profiler_body): Ditto.
    	(__gcov_one_value_profiler): Ditto.
    	(__gcov_indirect_call_profiler): Ditto.
    	(__gcov_indirect_call_profiler_v2): Ditto.
    	(__gcov_time_profiler): Ditto.
    	(__gcov_average_profiler): Ditto.
    	(__gcov_ior_profiler): Ditto.
    	* libgcc/libgcov-driver.c (set_gcov_list): New.
    	(get_gcov_dump_complete): Ditto.
    	(set_gcov_dump_complete):Ditto.
    	(reset_gcov_dump_complete):Ditto.
    	(gcov_exit_compute_summary): New function split from gcov_exit().
    	(gcov_exit_merge_gcda): Ditto.
    	(gcov_exit_write_gcda): Ditto.
    	(gcov_exit_merge_summary): Ditto.
    	(gcov_exit_dump_gcov): Ditto.
    	(struct gcov_fn_buffer): Moved from libgcov.c
    	(struct gcov_summary_buffer): Ditto.
    	(free_fn_data): Ditto.
    	(buffer_fn_data): Ditto.
    	(crc32_unsigned): Ditto.
    	(gcov_version): Ditto.
    	(gcov_histogram_insert): Ditto.
    	(gcov_compute_histogram): Ditto.
    	(gcov_exit): Ditto.
    	(gcov_clear): Ditto.
    	(__gcov_init): Ditto.
            (this_prg): Make it file scope static variable.
            (all_prg): Ditto.
            (crc32): Ditto.
            (gi_filename): Ditto.
            (fn_buffer): Ditto.
            (sum_buffer): Ditto.
            (struct gcov_filename_aux): New types to store auxiliary information
            for gi_filename.
    	* libgcc/libgcov-driver-system.c (gcov_error): New utility function.
    	(allocate_filename_struct): New function split from gcov_exit().
    	(gcov_exit_open_gcda_file): Ditto.
    	(create_file_directory): Moved from libgcov.c
    	* libgcc/Makefile.in: Change to build newly added files.
    
    From-SVN: r204730