This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
GCC gprof statistics
- From: ishikawa at yk dot rim dot or dot jp
- To: gcc at gcc dot gnu dot org
- Cc: ishikawa at yk dot rim dot or dot jp
- Date: Sun, 29 Jun 2003 19:46:48 +0900 (JST)
- Subject: GCC gprof statistics
GCC gprof statistics
Many people seem to think the recent GCC is slow.
I have observed it certainly is a little sluggish under
Sun UltraSparc Blade 1500.
(Yes, the cheap and yet fast x86 CPU masks its slowness.)
I wonder where gcc spends its time.
So, as an investigation, I collected gprof prfile under
Debian GNU/Linux for x86 .
Rather than moaning on the slowness in general, the
statistics can get us started in concrete analysis.
(Of course tcov-like micro-analysis would be also
useful once we eliminate major bottlenecks.)
I used a source file that takes about 9.3 user seconds for
cc1 to compile into assembler source
on AMD athlon xp1800+ under linux 2.4.21.
(The source doesn't use floating point operation if I am not mistaken,
and so the functions to handle such data inside GCC won't be called.)
I compiled GCC 3.3 using
make BOOT_CFLAGS="-g -pg -O2" bootstrap-lean
This is the command run to the cc1 compilation
time /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/cc1 -quiet -v -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=0 -DHOST_DEBUG=1 mylib.c -quiet -dumpbase mylib.c -auxbase-strip mylib.o -g -O2 -Wall -version -o /tmp/cccEDsHE.s
GNU C version 3.3 (i686-pc-linux-gnu)
compiled by GNU C version 3.3.
GGC heuristics: --param ggc-min-expand=81 --param ggc-min-heapsize=96816
ignoring nonexistent directory "NONE/include"
ignoring nonexistent directory "/usr/local/i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include
/usr/include
End of search list.
Attached below is the first portion of the prof statistics (flat) and
gprof call graph.
Some may find it useful.
A cursory observation.
For example, I looked at how for_each_rtx, worst offender in terms of
time spent in flat profile, is called so many times. It was not so
evident how possibly to reduce the calls.
However, I figured that maybe we can eliminate the check in
if ( x && ...) of approx_reg_cost_1. (Maybe I am mistaken.) Again, however,
the overhead eliminated would be very small.
(Or maybe, we can rewrite the part of gcc so that
RTX contains the accumulated register cost of itself and
its siblings (and update the top-node's value when
a new RTL tree is created.) Then the for_each_rtx call
for obtaining approximate register cost can be eliminated.)
Maybe, we should provide specific version of for_each_rtx
for various functions and specialize/optimize them.
In any case, a statistics should get us started
in the right direction.
I can send the entire output of gprof on request to anyone interested.
Happy Hacking,
Ishikawa, Chiaki
----------------------------------------
Start of gprof output
----------------------------------------
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls s/call s/call name
5.05 0.26 0.26 1109427 0.00 0.00 for_each_rtx
3.11 0.42 0.16 4154256 0.00 0.00 canon_rtx
2.52 0.55 0.13 1229455 0.00 0.00 mark_set_1
2.33 0.67 0.12 1222352 0.00 0.00 find_base_term
2.33 0.79 0.12 224919 0.00 0.00 cse_insn
2.14 0.90 0.11 711175 0.00 0.00 side_effects_p
1.94 1.00 0.10 200171 0.00 0.00 constrain_operands
1.75 1.09 0.09 820005 0.00 0.00 canon_hash
1.75 1.18 0.09 521578 0.00 0.00 canon_reg
1.75 1.27 0.09 425486 0.00 0.00 fold_rtx
1.55 1.35 0.08 976769 0.00 0.00 ggc_alloc
1.55 1.43 0.08 843759 0.00 0.00 note_stores
1.55 1.51 0.08 34860 0.00 0.00 invalidate_for_call
1.55 1.59 0.08 htab_traverse
1.36 1.66 0.07 768888 0.00 0.00 rtx_equal_for_memref_p
1.36 1.73 0.07 267386 0.00 0.00 invalidate
1.17 1.79 0.06 2314167 0.00 0.00 get_cse_reg_info
0.97 1.84 0.05 2603060 0.00 0.00 ix86_find_base_term
0.97 1.89 0.05 1966491 0.00 0.00 find_reg_note
0.97 1.94 0.05 1776462 0.00 0.00 delete_reg_equiv
0.97 1.99 0.05 995543 0.00 0.00 check_dependence
0.97 2.04 0.05 634982 0.00 0.00 rtx_cost
0.97 2.09 0.05 546018 0.00 0.00 ix86_decompose_address
0.97 2.14 0.05 513245 0.00 0.00 constant_address_p
0.97 2.19 0.05 511105 0.00 0.00 exp_equiv_p
0.97 2.24 0.05 169675 0.00 0.00 mark_used_regs
0.97 2.29 0.05 157512 0.00 0.00 reg_scan_mark_refs
0.97 2.34 0.05 61955 0.00 0.00 invalidate_memory
0.97 2.39 0.05 25075 0.00 0.00 reload_cse_simplify_operands
0.78 2.43 0.04 1548102 0.00 0.00 rtx_equal_p
0.78 2.47 0.04 936615 0.00 0.00 cselib_invalidate_mem_1
0.78 2.51 0.04 527281 0.00 0.00 notreg_cost
0.78 2.55 0.04 298804 0.00 0.00 insert
0.78 2.59 0.04 228755 0.00 0.00 propagate_one_insn
0.78 2.63 0.04 183098 0.00 0.00 simplify_binary_operation
0.78 2.67 0.04 26644 0.00 0.00 record_reg_classes
0.78 2.71 0.04 5519 0.00 0.00 cse_basic_block
0.78 2.75 0.04 1008 0.00 0.00 init_alias_analysis
0.58 2.78 0.03 1604677 0.00 0.00 bitmap_bit_p
0.58 2.81 0.03 399671 0.00 0.00 legitimate_address_p
0.58 2.84 0.03 373222 0.00 0.00 commutative_operand_precedence
0.58 2.87 0.03 207352 0.00 0.00 mention_regs
0.58 2.90 0.03 186970 0.00 0.00 lookup_as_function
0.58 2.93 0.03 92165 0.00 0.00 volatile_refs_p
0.58 2.96 0.03 85801 0.00 0.00 mark_jump_label
0.58 2.99 0.03 htab_find_slot_with_hash
0.39 3.01 0.02 1377376 0.00 0.00 approx_reg_cost_1
0.39 3.03 0.02 643427 0.00 0.00 lookup
0.39 3.05 0.02 434100 0.00 0.00 nonoverlapping_memrefs_p
0.39 3.07 0.02 313277 0.00 0.00 change_address_1
0.39 3.09 0.02 284086 0.00 0.00 alloc_INSN_LIST
[[ the rest of the list omitted ]]
% the percentage of the total running time of the
time program used by this function.
cumulative a running sum of the number of seconds accounted
seconds for by this function and those listed above it.
self the number of seconds accounted for by this
seconds function alone. This is the major sort for this
listing.
calls the number of times this function was invoked, if
this function is profiled, else blank.
self the average number of milliseconds spent in this
ms/call function per call, if this function is profiled,
else blank.
total the average number of milliseconds spent in this
ms/call function and its descendents per call, if this
function is profiled, else blank.
name the name of the function. This is the minor sort
for this listing. The index shows the location of
the function in the gprof listing. If the index is
in parenthesis it shows where it would appear in
the gprof listing if it were to be printed.
Call graph (explanation follows)
granularity: each sample hit covers 4 byte(s) for 0.19% of 5.15 seconds
index % time self children called name
0.00 4.85 1/1 toplev_main [2]
[1] 94.1 0.00 4.85 1 do_compile [1]
0.00 4.84 1/1 compile_file [4]
0.00 0.00 1/1 backend_init [536]
0.00 0.00 1/1 lang_dependent_init [546]
0.00 0.00 1/1 c_common_post_options [2692]
0.00 0.00 1/1 process_options [2768]
0.00 0.00 1/1 init_timevar [2746]
0.00 0.00 1/1 timevar_start [2783]
0.00 0.00 1/1 finalize [2715]
0.00 0.00 1/1 timevar_stop [2784]
0.00 0.00 1/1 timevar_print [2782]
0.00 0.00 1/2 expand_dummy_function_end [2665]
-----------------------------------------------
0.00 4.85 1/1 main [3]
[2] 94.1 0.00 4.85 1 toplev_main [2]
0.00 4.85 1/1 do_compile [1]
0.00 0.00 1/1 init_ttree [2747]
0.00 0.00 1/1 general_init [2723]
0.00 0.00 1/1 parse_options_and_default_flags [2763]
-----------------------------------------------
<spontaneous>
[3] 94.1 0.00 4.85 main [3]
0.00 4.85 1/1 toplev_main [2]
-----------------------------------------------
0.00 4.84 1/1 do_compile [1]
[4] 94.0 0.00 4.84 1 compile_file [4]
0.00 4.79 1/1 c_common_parse_file [5]
0.00 0.03 1/1 dwarf2out_finish [175]
0.00 0.02 1/1 write_global_declarations [243]
0.00 0.00 1/1 dwarf2out_frame_finish [692]
0.00 0.00 2/130368 timevar_push [1546]
0.00 0.00 2/130368 timevar_pop [1545]
0.00 0.00 1/1 init_final [2736]
0.00 0.00 1/1 init_branch_prob [2733]
0.00 0.00 1/1 free_parser_stacks [2720]
0.00 0.00 1/1 lhd_clear_binding_stack [2753]
0.00 0.00 1/1 output_func_start_profiler [2761]
0.00 0.00 1/1 weak_finish [2785]
0.00 0.00 1/13508 dwarf2out_do_frame [1677]
0.00 0.00 1/1 dw2_output_indirect_constants [2710]
0.00 0.00 1/1 end_final [2712]
0.00 0.00 1/1 ix86_asm_file_end [2751]
0.00 0.00 1/2329 open_dump_file [1913]
-----------------------------------------------
0.00 4.79 1/1 compile_file [4]
[5] 93.0 0.00 4.79 1 c_common_parse_file [5]
0.02 4.77 1/1 yyparse [6]
0.00 0.00 1/1 cpp_finish_options [504]
0.00 0.00 1/78 dwarf2out_start_source_file [2460]
0.00 0.00 1/2 free_chain [2668]
-----------------------------------------------
0.02 4.77 1/1 c_common_parse_file [5]
[6] 93.0 0.02 4.77 1 yyparse [6]
0.00 3.55 118/118 finish_function [9]
0.00 0.99 1/1 c_objc_common_finish_file [14]
0.00 0.05 59987/59987 yylex [101]
0.00 0.05 2176/2176 push_parm_decl [116]
0.01 0.02 2002/2319 build_function_call [157]
0.00 0.02 1299/4190 finish_decl [80]
0.00 0.01 715/715 grokfield [281]
0.00 0.01 20336/20710 build_tree_list [314]
0.00 0.01 1299/1299 start_decl [441]
0.00 0.00 1369/1686 fix_string_type [442]
0.00 0.00 2239/5229 add_stmt [375]
0.00 0.00 2100/2100 process_init_element [482]
0.00 0.00 1388/1388 add_scope_stmt [499]
0.00 0.00 161/161 finish_struct [577]
0.00 0.00 118/118 store_parm_decls [583]
0.00 0.00 697/697 c_begin_compound_stmt [593]
0.00 0.00 1431/1431 parser_build_binary_op [607]
0.00 0.00 118/118 start_function [646]
0.00 0.00 10886/30262 tree_cons [517]
0.00 0.00 1900/1900 c_expand_expr_stmt [663]
0.00 0.00 224/224 build_enumerator [664]
0.00 0.00 837/837 build_modify_expr [677]
0.00 0.00 435/435 c_expand_start_cond [688]
0.00 0.00 384/384 build_c_cast [710]
0.00 0.00 1159/1159 build_component_ref [712]
0.00 0.00 635/9198 build_unary_op <cycle 3> [592]
0.00 0.00 632/9198 c_common_truthvalue_conversion <cycle 3> [2066]
0.00 0.00 161/161 start_struct [748]
0.00 0.00 222/222 c_expand_return [764]
0.00 0.00 710/710 c_sizeof_or_alignof_type [773]
0.00 0.00 384/384 c_cast_expr [793]
0.00 0.00 661/661 get_parm_info [806]
0.00 0.00 661/1104 build_nt [737]
0.00 0.00 329/713 groktypename [711]
0.00 0.00 225/225 build_array_ref [828]
0.00 0.00 913/913 build_indirect_ref [835]
0.00 0.00 67/67 do_case [844]
0.00 0.00 435/435 c_begin_if_stmt [864]
0.00 0.00 6/6 finish_enum [899]
0.00 0.00 73/73 build_conditional_expr [920]
0.00 0.00 308/308 build_array_declarator [922]
0.00 0.00 1450/1450 make_pointer_declarator [935]
0.00 0.00 268/53707 fold <cycle 4> [287]
0.00 0.00 1355/1473 poplevel [966]
0.00 0.00 5493/5493 build_compound_expr [984]
0.00 0.00 153/7425 default_conversion [606]
0.00 0.00 78/78 xref_tag [1157]
0.00 0.00 51/5268 build_stmt [535]
0.00 0.00 6/6 start_enum [1210]
0.00 0.00 38/38 build_break_stmt [1211]
0.00 0.00 720/10420 decl_attributes <cycle 1> [888]
0.00 0.00 16/16 c_start_case [1257]
0.00 0.00 19/19 pop_init_level [1278]
0.00 0.00 17/17 really_start_incremental_init [1316]
0.00 0.00 12/12 c_begin_while_stmt [1331]
0.00 0.00 5/65 invert_truthvalue [1100]
0.00 0.00 2/2 push_init_level [1420]
0.00 0.00 6/11 lookup_label [1386]
0.00 0.00 3/53707 convert <cycle 4> [731]
0.00 0.00 5/5 define_label [1441]
0.00 0.00 1355/1474 pushlevel [1469]
0.00 0.00 18/50658 size_int_type_wide [788]
0.00 0.00 12/2404 non_lvalue [1169]
0.00 0.00 9376/10655 chainon [1711]
0.00 0.00 6644/6644 build_external_ref [1750]
0.00 0.00 4972/4972 pending_xref_error [1794]
0.00 0.00 4259/6449 split_specs_attrs [1754]
0.00 0.00 3150/26912 lookup_name [1606]
0.00 0.00 1710/8556 require_complete_type [1727]
0.00 0.00 1446/36227 current_stmt_tree [1593]
0.00 0.00 1040/2771 ggc_collect [1893]
0.00 0.00 896/1762 get_pending_sizes [1958]
0.00 0.00 694/2215 clear_last_expr [1922]
0.00 0.00 694/694 kept_level_p [2099]
0.00 0.00 661/661 clear_parm_order [2114]
0.00 0.00 661/779 declare_parm_level [2078]
0.00 0.00 661/661 parmlist_tags_warning [2116]
0.00 0.00 617/4431 overflow_warning [1810]
0.00 0.00 435/435 c_finish_then [2185]
0.00 0.00 435/435 c_expand_end_cond [2184]
0.00 0.00 308/308 set_array_declarator_type [2217]
0.00 0.00 59/60 global_bindings_p [2483]
0.00 0.00 58/58 push_string [2487]
0.00 0.00 58/58 start_init [2488]
0.00 0.00 58/58 finish_init [2486]
0.00 0.00 39/39 c_expand_start_else [2511]
0.00 0.00 39/39 c_finish_else [2512]
0.00 0.00 27/27 shadow_tag [2537]
0.00 0.00 18/61911 tree_low_cst [1568]
0.00 0.00 18/9835 size_int_wide [1717]
0.00 0.00 17/17 pedantic_non_lvalue [2574]
0.00 0.00 16/16 c_finish_case [2576]
0.00 0.00 12/12 c_finish_while_stmt_cond [2597]
0.00 0.00 6/4504 nreverse [1809]
0.00 0.00 1/119 finish_fname_decls [2358]
0.00 0.00 1/1 finish_file [2716]
-----------------------------------------------
0.00 0.99 33/151 c_expand_deferred_function [13]
0.00 3.55 118/151 finish_function [9]
[7] 88.2 0.00 4.54 151 c_expand_body [7]
0.00 4.46 118/118 rest_of_compilation [8]
0.00 0.02 118/118 expand_function_start [196]
0.00 0.02 151/151 tree_inlinable_function_p [207]
0.00 0.02 118/118 optimize_inline_calls [240]
0.00 0.01 118/1850 expand_stmt <cycle 17> [813]
0.00 0.00 118/236 init_function_start [713]
0.00 0.00 118/118 expand_function_end [960]
0.00 0.00 33/33 defer_fn [1535]
0.00 0.00 269/130368 timevar_push [1546]
0.00 0.00 118/130368 timevar_pop [1545]
0.00 0.00 118/118 force_next_line_note [2372]
0.00 0.00 118/12851 decl_function_context [1684]
0.00 0.00 118/118 expand_fixups [2367]
0.00 0.00 85/85 dump_enabled_p [2419]
0.00 0.00 33/151 debug_nothing_tree [2326]
-----------------------------------------------
0.00 4.46 118/118 c_expand_body [7]
[8] 86.7 0.00 4.46 118 rest_of_compilation [8]
0.00 2.05 330/330 cse_main [10]
0.00 0.36 1216/1744 cleanup_cfg <cycle 19> [114]
0.00 0.33 85/85 schedule_insns [26]
0.00 0.21 85/85 gcse_main [38]
0.00 0.17 85/85 global_alloc [42]
0.01 0.12 85/85 combine_instructions [53]
0.00 0.12 670/702 delete_trivially_dead_insns [54]
0.00 0.10 170/170 life_analysis [65]
0.00 0.09 85/85 reload_cse_regs [72]
0.00 0.08 85/170 reload_cse_regs_1 [44]
0.01 0.07 85/85 regclass [79]
0.01 0.07 255/255 split_all_insns [85]
0.00 0.05 755/773 reg_scan [100]
0.00 0.05 85/85 peephole2_optimize [119]
0.00 0.05 85/85 copyprop_hardreg_forward [120]
0.00 0.04 85/85 regmove_optimize [127]
0.00 0.04 85/85 purge_addressof [128]
0.00 0.04 85/85 assemble_start_function [129]
0.00 0.04 85/85 estimate_probability [135]
0.00 0.04 85/85 local_alloc [139]
0.00 0.04 85/85 shorten_branches [144]
0.00 0.04 458/458 find_basic_blocks [158]
0.01 0.02 85/85 final [159]
0.00 0.03 458/458 rebuild_jump_labels [172]
0.00 0.03 85/85 recompute_reg_usage [183]
0.00 0.03 85/85 optimize_sibling_and_tail_recursive_calls [185]
0.00 0.02 170/170 loop_optimize [211]
0.00 0.02 85/85 instantiate_virtual_regs [265]
0.00 0.01 85/85 mark_constant_function [283]
0.01 0.00 203/203 find_exception_handler_labels [385]
0.01 0.00 85/85 purge_hard_subreg_sets [386]
0.00 0.01 170/170 delete_null_pointer_checks [408]
0.00 0.01 85/85 optimize_mode_switching [419]
0.00 0.01 203/362 reorder_blocks [299]
0.00 0.01 255/255 if_convert [439]
0.00 0.01 85/85 final_start_function [447]
0.00 0.01 415/500 purge_all_dead_edges [437]
0.00 0.00 85/261 unshare_all_rtl [284]
0.00 0.00 85/85 note_prediction_to_br_prob [498]
0.00 0.00 85/85 flow_loops_find [502]
0.00 0.00 85/85 scope_to_insns_initialize [515]
0.00 0.00 85/85 thread_prologue_and_epilogue_insns [532]
0.00 0.00 85/1945 dwarf2out_decl [212]
0.00 0.00 75/75 cfg_layout_finalize [671]
0.00 0.00 85/85 reorder_basic_blocks [702]
0.00 0.00 85/1373 allocate_reg_info [333]
0.00 0.00 85/85 copy_loop_headers [733]
0.00 0.00 85/85 combine_stack_adjustments [759]
0.00 0.00 118/118 convert_from_eh_region_ranges [853]
0.00 0.00 85/1627 delete_unreachable_blocks [520]
0.00 0.00 85/170 remove_unnecessary_notes [1241]
0.00 0.00 85/85 assemble_end_function [1334]
0.00 0.00 85/85 uninitialized_vars_warning [1341]
0.00 0.00 33/33 save_for_inline [1369]
0.00 0.00 85/85 final_end_function [1393]
0.00 0.00 85/85 init_function_for_compilation [1429]
0.00 0.00 85/85 flow_loops_free [1522]
0.00 0.00 3685/130368 timevar_pop [1545]
0.00 0.00 3227/130368 timevar_push [1546]
0.00 0.00 2468/16739 max_reg_num [1635]
0.00 0.00 2328/2329 open_dump_file [1913]
0.00 0.00 2125/2125 close_dump_file [1929]
0.00 0.00 1563/2771 ggc_collect [1893]
0.00 0.00 713/39759 get_insns [1592]
0.00 0.00 491/491 free_bb_for_insn [2164]
0.00 0.00 255/255 delete_dead_jumptables [2242]
0.00 0.00 255/255 cleanup_barriers [2241]
0.00 0.00 203/713 free_basic_block_vars [2095]
0.00 0.00 170/170 purge_line_number_notes [2303]
0.00 0.00 170/170 renumber_insns [2304]
0.00 0.00 118/118 init_flow [2373]
0.00 0.00 118/356 init_temp_slots [2206]
0.00 0.00 118/118 init_insn_lengths [2374]
0.00 0.00 118/491 init_recog_no_volatile [2165]
0.00 0.00 118/238 free_after_parsing [2259]
0.00 0.00 118/118 set_nothrow_function_flags [2379]
0.00 0.00 85/205 free_after_compilation [2280]
0.00 0.00 85/85 check_function_return_warnings [2408]
0.00 0.00 85/85 doing_eh [2418]
0.00 0.00 85/85 emit_initial_value_sets [2420]
0.00 0.00 85/85 regclass_init [2443]
0.00 0.00 85/85 leaf_function_p [2434]
0.00 0.00 85/866 cselib_finish [2069]
0.00 0.00 85/85 reg_to_stack [2442]
0.00 0.00 85/85 compute_alignments [2411]
0.00 0.00 85/85 x86_machine_dependent_reorg [2450]
0.00 0.00 85/85 convert_to_eh_region_ranges [2414]
0.00 0.00 85/85 output_after_function_constants [2439]
0.00 0.00 85/85 output_function_exception_table [2440]
0.00 0.00 85/85 bitmap_release_memory [2407]
0.00 0.00 85/85 regset_release_memory [2444]
0.00 0.00 85/85 allocate_initial_values [2406]
0.00 0.00 85/85 initialize_uninitialized_subregs [2430]
0.00 0.00 85/85 expected_value_to_br_prob [2421]
0.00 0.00 85/415 remove_fake_edges [2191]
0.00 0.00 75/3056 clear_aux_for_blocks [1876]
0.00 0.00 75/245 free_aux_for_blocks [2250]
0.00 0.00 33/151 debug_nothing_tree [2326]
-----------------------------------------------
0.00 3.55 118/118 yyparse [6]
[9] 68.9 0.00 3.55 118 finish_function [9]
0.00 3.55 118/151 c_expand_body [7]
0.00 0.00 118/1473 poplevel [966]
0.00 0.00 118/119 finish_fname_decls [2358]
0.00 0.00 118/118 finish_stmt_tree [2370]
0.00 0.00 118/238 free_after_parsing [2259]
0.00 0.00 118/205 free_after_compilation [2280]
0.00 0.00 118/130368 timevar_pop [1545]
-----------------------------------------------
0.00 2.05 330/330 rest_of_compilation [8]
[10] 39.7 0.00 2.05 330 cse_main [10]
0.04 1.94 5519/5519 cse_basic_block [11]
0.01 0.04 330/1008 init_alias_analysis [46]
0.01 0.00 330/330 ggc_pop_context [384]
0.00 0.00 5580/5593 cse_end_of_basic_block [627]
0.00 0.00 660/2829 get_max_uid [1889]
0.00 0.00 330/756 init_recog [2087]
0.00 0.00 330/330 ggc_push_context [2215]
0.00 0.00 330/1008 end_alias_analysis [2050]
0.00 0.00 168/2771 ggc_collect [1893]
-----------------------------------------------
0.04 1.94 5519/5519 cse_main [10]
[11] 38.5 0.04 1.94 5519 cse_basic_block [11]
0.12 1.60 224919/224919 cse_insn [12]
0.04 0.07 190357/1104383 for_each_rtx <cycle 14> [17]
0.00 0.06 4527/4527 invalidate_skipped_block [99]
0.00 0.02 2581/8332 record_jump_equiv [87]
0.01 0.01 290242/291270 any_uncondjump_p [258]
0.00 0.00 77828/1966491 find_reg_note [109]
0.00 0.00 38925/38925 cse_process_notes [655]
0.00 0.00 60/60 cse_around_loop [791]
0.00 0.00 13/5593 cse_end_of_basic_block [627]
0.00 0.00 5532/25812 prev_nonnote_insn [1608]
0.00 0.00 5519/5519 new_basic_block [1780]
-----------------------------------------------
0.12 1.60 224919/224919 cse_basic_block [11]
[12] 33.5 0.12 1.60 224919 cse_insn [12]
0.10 0.39 319559/351586 fold_rtx <cycle 8> [27]
0.04 0.22 292785/298804 insert [30]
0.06 0.16 229622/267386 invalidate [31]
0.06 0.07 27502/34860 invalidate_for_call [45]
0.09 0.00 516695/521578 canon_reg [68]
0.00 0.09 146540/565900 approx_reg_cost [24]
0.00 0.05 5751/8332 record_jump_equiv [87]
0.04 0.00 335633/820005 canon_hash [69]
0.02 0.01 201582/408209 mention_regs <cycle 7> [162]
0.02 0.01 198350/408209 insert_regs <cycle 7> [165]
0.02 0.00 27480/61955 invalidate_memory [97]
0.01 0.02 224919/270171 invalidate_from_clobbers [182]
0.01 0.01 218781/643427 lookup [89]
0.01 0.01 122350/527281 notreg_cost [77]
0.01 0.01 450450/484458 apply_change_group [246]
0.01 0.00 60909/161391 copy_rtx [163]
0.01 0.00 406743/1548102 rtx_equal_p [145]
0.00 0.01 98798/106756 rehash_using_reg [309]
0.01 0.00 394511/422332 validate_change [316]
0.01 0.00 72307/511105 exp_equiv_p [104]
0.01 0.00 432945/648451 preferrable [391]
0.00 0.00 163523/1966491 find_reg_note [109]
0.00 0.00 1409/1564 remove_invalid_refs [472]
0.00 0.00 102653/2314167 get_cse_reg_info [92]
0.00 0.00 2904/14103 recog_memoized_1 [417]
0.00 0.00 4832/4832 use_related_value [659]
0.00 0.00 7225/7939 set_unique_reg_note [755]
0.00 0.00 2301/70338 plus_constant_wide [456]
0.00 0.00 180/385762 gen_lowpart_if_possible <cycle 12> [1720]
0.00 0.00 76/107522 gen_rtx_fmt_ee [216]
0.00 0.00 18/88028 gen_rtx_fmt_ue [244]
0.00 0.00 7/132753 reg_mentioned_p [335]
0.00 0.00 1/1005 gen_jump [827]
0.00 0.00 8/6915 delete_insn [917]
0.00 0.00 1/2066 emit_barrier_after [869]
0.00 0.00 1/488 emit_jump_insn_after [1083]
0.00 0.00 6/106743 single_set_2 [770]
0.00 0.00 44/87 replace_rtx [2404]
0.00 0.00 7/339 remove_note [2212]
0.00 0.00 1/628 never_reached_warning [2122]
0.00 0.00 1/1 condjump_p [2697]
-----------------------------------------------
0.00 0.99 33/33 expand_deferred_fns [15]
[13] 19.3 0.00 0.99 33 c_expand_deferred_function [13]
0.00 0.99 33/151 c_expand_body [7]
0.00 0.00 33/130368 timevar_pop [1545]
-----------------------------------------------
0.00 0.99 1/1 yyparse [6]
[14] 19.3 0.00 0.99 1 c_objc_common_finish_file [14]
0.00 0.99 1/1 expand_deferred_fns [15]
0.00 0.00 1/1 dump_begin [2709]
-----------------------------------------------
0.00 0.99 1/1 c_objc_common_finish_file [14]
[15] 19.3 0.00 0.99 1 expand_deferred_fns [15]
0.00 0.99 33/33 c_expand_deferred_function [13]
-----------------------------------------------
[16] 13.4 0.26 0.43 1104383+23679 <cycle 14 as a whole> [16]
0.26 0.43 1109427+2958195 for_each_rtx <cycle 14> [17]
0.00 0.00 4522 nonlocal_referenced_p_1 <cycle 14> [1807]
0.00 0.00 4173 nonlocal_mentioned_p <cycle 14> [1820]
0.00 0.00 1947 nonlocal_set_p <cycle 14> [1948]
-----------------------------------------------
2958195 for_each_rtx <cycle 14> [17]
1880 nonlocal_set_p <cycle 14> [1948]
4173 nonlocal_mentioned_p <cycle 14> [1820]
0.00 0.00 28/1104383 prescan_loop [747]
0.00 0.00 30/1104383 dead_or_predicable [831]
0.00 0.00 539/1104383 thread_jump [278]
0.00 0.00 742/1104383 combine_stack_adjustments_for_block [758]
0.00 0.00 863/1104383 nonlocal_referenced_p [743]
0.00 0.00 935/1104383 global_reg_mentioned_p [734]
0.00 0.00 7032/1104383 returnjump_p [469]
0.00 0.01 13818/1104383 copyprop_hardreg_forward_1 [126]
0.00 0.01 17459/1104383 mark_used_regs [64]
0.01 0.01 27960/1104383 compute_insns_for_mem [256]
0.01 0.01 29111/1104383 mark_set_1 [37]
0.04 0.07 190357/1104383 cse_basic_block [11]
0.06 0.10 248600/1104383 invalidate [31]
0.13 0.22 565900/1104383 approx_reg_cost [24]
[17] 13.4 0.26 0.43 1109427+2958195 for_each_rtx <cycle 14> [17]
0.05 0.33 995543/995543 check_dependence [23]
0.02 0.00 253144/253144 insns_for_mem_walk [227]
0.02 0.00 1377376/1377376 approx_reg_cost_1 [229]
0.01 0.00 1022927/1022927 check_for_label_ref [338]
0.00 0.00 8246/8246 nonlocal_mentioned_p_1 [914]
0.00 0.00 2746/2746 record_stack_memrefs [1074]
0.00 0.00 268096/268096 invalidate_mems_from_autoinc [1242]
0.00 0.00 1085/1085 mentions_nonequal_regs [1274]
0.00 0.00 146/146 insert_loop_mem [1514]
0.00 0.00 79243/79243 kill_autoinc_value [1560]
0.00 0.00 41298/41298 returnjump_p_1 [1587]
0.00 0.00 5167/5167 global_reg_mentioned_p_1 [1790]
0.00 0.00 90/90 find_memory [2401]
7993 nonlocal_set_p_1 <cycle 14> [1729]
4522 nonlocal_referenced_p_1 <cycle 14> [1807]
2361 nonlocal_mentioned_p <cycle 14> [1820]
938 nonlocal_set_p <cycle 14> [1948]
2958195 for_each_rtx <cycle 14> [17]
-----------------------------------------------
[18] 10.4 0.11 0.42 351586+265120 <cycle 8 as a whole> [18]
0.09 0.21 425486+158557 fold_rtx <cycle 8> [27]
0.02 0.20 120569 find_best_addr <cycle 8> [34]
0.00 0.00 56244 equiv_constant <cycle 8> [931]
-----------------------------------------------
[19] 9.9 0.00 0.51 1744+155 <cycle 19 as a whole> [19]
0.00 0.05 1318 cleanup_cfg <cycle 19> [114]
0.00 0.00 157 update_life_info_in_dirty_blocks <cycle 19> [2323]
-----------------------------------------------
0.00 0.00 14/228755 dead_or_predicable [831]
0.00 0.03 14004/228755 peephole2_optimize [119]
0.04 0.42 214737/228755 propagate_block [21]
[20] 9.6 0.04 0.45 228755 propagate_one_insn [20]
0.11 0.07 1050732/1229455 mark_set_1 [37]
0.02 0.10 100385/100385 insn_dead_p [55]
0.05 0.05 169675/169675 mark_used_regs [64]
0.01 0.03 169814/169814 mark_set_regs [141]
0.01 0.00 169744/285414 bitmap_clear [351]
0.00 0.00 169884/1966491 find_reg_note [109]
0.00 0.00 75851/175383 mark_used_reg [404]
0.00 0.00 22820/49801 free_EXPR_LIST_list [610]
0.00 0.00 22842/897572 bitmap_set_bit [339]
0.00 0.00 70/70 propagate_block_delete_insn [1359]
0.00 0.00 5/108937 prologue_epilogue_contains [236]
0.00 0.00 22/439137 invalidate_mems_from_set [326]
0.00 0.00 5/5 sibcall_epilogue_contains [1508]
-----------------------------------------------
[[ ... rest omitted ... ]]