On 07/15/2014 09:50 AM, Andrew Pinski wrote:
On Tue, Jul 15, 2014 at 12:45 AM, Martin Liška <mli...@suse.cz> wrote:
  Hello,
    following table compares optimization levels as -O0, -Os, -O1-3 and
-Ofast. Columns in the table include all ELF sections bigger than 5% for a
binary. Apart from that I took -O2 as a base option and I tried to disable
every option in this level. Similarly I measured impact of the rest of
optimizations enabled in O3 or Ofast. That gives us about 100 configurations
that can be compared for speed. I would like to ask Honza to mark
configurations that make sense to be run for speed comparison.


Can you remove debug_str and debug_info from this list as they only
change the file size and not the mapped in size?

Thanks,
Andrew
Sure, I added new column SIZE_WITHOUT_DEBUG, where I compare sum of all 
sections that do not start with '.debug.*'.

Martin

Thanks,
Martin

+--------------------------------------------+---------+---------+-------------+------------+-----------+-------------------+---------+---------+---------+---------+---------+--------------------+
|                                            |    .bss |   .data | .debug_info 
| .debug_str | .eh_frame | .gcc_except_table | .rodata | .strtab | .symtab |   
.text |    SIZE | SIZE_WITHOUT_DEBUG |
+--------------------------------------------+---------+---------+-------------+------------+-----------+-------------------+---------+---------+---------+---------+---------+--------------------+
| Os                                         |  97.85% |  98.93% |     125.83% 
|    109.82% |    94.50% |            77.38% |  93.90% | 100.75% |  99.97% |  
79.24% |  86.23% |             85.60% |
| O1                                         | 100.01% | 100.00% |     100.00% 
|    100.00% |    93.15% |            87.20% | 100.26% |  99.21% |  99.52% |  
93.46% |  95.49% |             95.36% |
| O2_fbranch_probabilities                   | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.65% |            97.87% | 100.00% |  99.46% |  99.72% |  
98.25% |  98.71% |             98.68% |
| O2_fwrapv                                  | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.71% |           100.02% | 100.00% | 100.00% |  99.99% |  
98.61% |  98.90% |             98.86% |
| O2_fno_align_jumps                         | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.99% |            99.97% | 100.00% | 100.00% | 100.00% |  
98.19% |  98.94% |             98.92% |
| O2_fno_align_functions                     | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.99% |           100.02% | 100.00% | 100.00% | 100.00% |  
98.65% |  99.27% |             99.25% |
| O2_fno_tree_pre                            | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.66% |           100.46% |  99.83% |  99.88% |  99.58% |  
98.94% |  99.29% |             99.25% |
| O2_fno_align_loops                         | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.96% |            99.98% | 100.00% | 100.00% | 100.00% |  
99.05% |  99.42% |             99.40% |
| O2_fipa_pta                                | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.39% |            98.64% | 100.00% |  99.99% |  99.96% |  
99.32% |  99.47% |             99.45% |
| O2_fno_caller_saves                        | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.10% |           100.08% | 100.00% | 100.00% | 100.01% |  
99.29% |  99.54% |             99.53% |
| O2_fno_inline_small_functions              | 100.01% | 100.00% |     100.00% 
|    100.00% |   100.31% |            99.41% | 100.01% | 100.13% | 100.13% |  
99.23% |  99.66% |             99.65% |
| O2_fno_devirtualize_speculatively          | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.87% |            98.24% | 100.00% |  99.98% |  99.98% |  
99.50% |  99.73% |             99.73% |
| O2_fno_devirtualize                        | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.87% |            98.26% | 100.00% |  99.98% |  99.98% |  
99.50% |  99.73% |             99.73% |
| O2_ftree_slp_vectorize                     | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.07% |           100.00% | 100.82% |  99.88% |  99.87% |  
99.89% |  99.92% |             99.92% |
| O2_fira_loop_pressure                      | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.97% |           100.02% | 100.00% | 100.00% |  99.98% |  
99.90% |  99.97% |             99.97% |
| O2_fsignaling_nans                         | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.04% |           100.02% |  99.56% | 100.03% |  99.81% | 
100.00% |  99.98% |             99.97% |
| O2_fno_optimize_sibling_calls              | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.14% |            99.99% | 100.00% | 100.01% | 100.02% |  
99.99% |  99.98% |             99.98% |
| O2_fgcse_after_reload                      | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.04% | 100.00% | 100.00% | 100.00% |  
99.98% |  99.98% |             99.98% |
| O2_fno_ipa_sra                             | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.97% |            99.90% | 100.01% |  99.81% |  99.98% |  
99.98% |  99.98% |             99.98% |
| O2_fno_reorder_blocks_and_partition        | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |            99.68% | 100.00% |  99.79% | 100.00% |  
99.99% |  99.99% |             99.99% |
| O2_fsched2_use_superblocks                 | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.01% |           100.00% | 100.00% | 100.00% | 100.00% |  
99.99% |  99.99% |             99.99% |
| O2_fdata_sections                          |  99.63% |  99.73% |     100.00% 
|    100.00% |   100.00% |           100.00% |  99.88% | 100.00% | 100.00% | 
100.00% |  99.99% |             99.99% |
| O2_fno_reorder_functions                   | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% |  
99.98% |  99.99% |             99.99% |
| O2_fno_schedule_insns2                     | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% |  
99.98% | 100.00% |            100.00% |
| O2_fgcse_sm                                | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.01% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fmodulo_sched                           | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.99% |           100.02% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fisolate_erroneous_paths_attribute      | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fgcse_las                               | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fshort_wchar                            | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fno_tree_builtin_call_dce               | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fdelayed_branch                         | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2                                         | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fsched_spec_load_dangerous              | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_ftree_lrs                               | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fno_reorder_blocks                      | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fselective_scheduling                   | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_freg_struct_return                      | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fsection_anchors                        | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fno_strict_aliasing                     | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fbranch_target_load_optimize2           | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fbtr_bb_exclusive                       | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_funsafe_math_optimizations              | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fpeel_loops                             | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fomit_frame_pointer                     | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fnothrow_opt                            | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_freschedule_modulo_scheduled_loops      | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fvar_tracking_assignments_toggle        | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fvpt                                    | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fsel_sched_pipelining_outer_loops       | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fvariable_expansion_in_unroller         | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_ffinite_math_only                       | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fopt_info                               | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fstrict_enums                           | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fcx_limited_range                       | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_funwind_tables                          | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fsel_sched_reschedule_pipelined         | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fsched_spec_load                        | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fno_align_labels                        | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fvar_tracking_uninit                    | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fsched_pressure                         | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fsel_sched_pipelining                   | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fbranch_target_load_optimize            | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fsched_stalled_insns                    | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fno_hoist_adjacent_loads                | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_fno_thread_jumps                        | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.00% | 100.00% |            100.00% |
| O2_flive_range_shrinkage                   | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |            99.99% | 100.00% | 100.00% |  99.99% |  
99.98% | 100.00% |            100.00% |
| O2_fno_optimize_strlen                     | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.99% |           100.00% | 100.00% |  99.99% |  99.98% | 
100.02% | 100.00% |            100.00% |
| O2_fno_ipa_cp                              | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.02% |           100.03% | 100.00% |  99.88% | 100.00% | 
100.01% | 100.00% |            100.00% |
| O2_fno_isolate_erroneous_paths_dereference | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.01% |           100.04% | 100.00% | 100.00% | 100.00% | 
100.01% | 100.01% |            100.01% |
| O2_ftree_loop_if_convert_stores            | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.05% |           100.00% | 100.00% | 100.00% | 100.01% |  
99.99% | 100.01% |            100.01% |
| O2_fcx_fortran_rules                       | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.01% | 100.02% | 
100.01% | 100.01% |            100.01% |
| O2_fexceptions                             | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.10% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.01% | 100.01% |            100.01% |
| O2_fmerge_all_constants                    | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.94% |           100.00% | 100.85% | 100.15% | 100.10% |  
99.89% | 100.01% |            100.01% |
| O2_ftree_coalesce_inlined_vars             | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.02% |           100.00% |  99.99% | 100.00% | 100.00% | 
100.02% | 100.01% |            100.01% |
| O2_funsafe_loop_optimizations              | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |            99.99% | 100.00% | 100.00% | 100.00% | 
100.03% | 100.02% |            100.02% |
| O2_fno_tree_switch_conversion              | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.01% |           100.01% | 100.31% |  99.97% |  99.97% | 
100.01% | 100.05% |            100.05% |
| O2_fconserve_stack                         | 100.00% | 100.00% |     100.00% 
|    100.00% |   101.03% |            99.16% | 100.00% | 100.47% | 100.28% |  
99.93% | 100.05% |            100.05% |
| O2_fno_tree_tail_merge                     | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.95% |           100.49% | 100.00% | 100.00% |  99.99% | 
100.11% | 100.06% |            100.06% |
| O2_fno_rerun_cse_after_loop                | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.04% |           100.03% | 100.00% | 100.01% | 100.06% | 
100.09% | 100.07% |            100.07% |
| O2_ftree_partial_pre                       | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.01% |            99.98% | 100.00% | 100.00% | 100.01% | 
100.09% | 100.11% |            100.11% |
| O2_ftree_loop_distribution                 | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.00% | 100.00% | 100.00% | 100.01% | 
100.17% | 100.14% |            100.14% |
| O2_ftree_loop_distribute_patterns          | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.08% |           100.00% | 100.00% | 100.09% | 100.13% | 
100.16% | 100.18% |            100.18% |
| O2_fno_cse_follow_jumps                    | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.00% |           100.03% | 100.00% | 100.00% | 100.01% | 
100.22% | 100.18% |            100.19% |
| O2_frounding_math                          | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.06% |           100.00% | 100.08% | 100.18% | 100.35% | 
100.20% | 100.19% |            100.20% |
| O2_fno_gcse                                | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.68% |           100.03% | 100.00% | 100.01% | 100.21% | 
100.31% | 100.22% |            100.22% |
| O2_fno_expensive_optimizations             | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.35% |            99.92% |  99.68% |  99.80% |  99.43% | 
100.50% | 100.30% |            100.31% |
| O2_fno_tree_vrp                            | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.05% |            99.58% | 100.23% | 100.03% | 100.01% | 
100.35% | 100.36% |            100.36% |
| O2_fselective_scheduling2                  | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.96% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.65% | 100.43% |            100.45% |
| O2_fnon_call_exceptions                    | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.44% |           243.68% | 100.20% | 100.13% | 100.14% | 
100.32% | 100.48% |            100.48% |
| O2_funswitch_loops                         | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.10% |           100.02% | 100.02% | 100.00% | 100.00% | 
100.90% | 100.54% |            100.56% |
| O2_fpredictive_commoning                   | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.02% |           100.00% | 100.00% | 100.00% | 100.00% | 
100.86% | 100.75% |            100.76% |
| O2_fno_peephole2                           | 100.00% | 100.00% |     100.00% 
|    100.00% |    99.63% |           100.18% | 100.00% | 100.00% | 100.00% | 
101.30% | 100.81% |            100.83% |
| O2_fschedule_insns                         | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.15% |           100.04% | 100.00% | 100.00% | 100.00% | 
101.30% | 100.85% |            100.89% |
| O2_fipa_cp_clone                           | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.95% |           100.99% | 100.11% | 101.04% | 100.43% | 
101.20% | 100.92% |            100.93% |
| O2_fno_crossjumping                        | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.70% |           102.10% | 100.00% | 100.00% | 100.00% | 
102.27% | 101.54% |            101.57% |
| O2_finline_functions                       | 100.00% | 100.00% |     100.00% 
|    100.00% |   101.26% |           110.39% | 101.45% |  98.99% |  99.23% | 
112.37% | 107.48% |            107.66% |
| O2_ftree_vectorize                         | 100.00% | 100.00% |     100.00% 
|    100.00% |    95.46% |            99.88% | 109.78% | 100.66% | 103.50% | 
113.02% | 110.14% |            110.35% |
| O2_ftree_loop_vectorize                    | 100.00% | 100.00% |     100.00% 
|    100.00% |    95.44% |            99.88% | 109.03% | 100.79% | 103.65% | 
113.10% | 110.32% |            110.54% |
| O2_ftrapv                                  | 100.00% | 100.00% |     273.28% 
|    135.45% |   109.41% |            99.89% |  99.98% | 101.18% | 101.87% | 
115.00% | 114.61% |            111.24% |
| O2_ffloat_store                            | 100.00% | 100.00% |     100.00% 
|    100.00% |   100.59% |            99.96% |  99.94% | 100.01% | 100.03% | 
132.75% | 121.99% |            122.90% |
| Ofast                                      | 100.00% | 100.00% |     100.00% 
|    100.00% |    97.93% |           110.91% | 110.36% | 100.18% | 102.49% | 
136.69% | 126.34% |            126.93% |
| O3                                         | 100.00% | 100.00% |     100.00% 
|    100.00% |    98.42% |           110.91% | 110.51% | 100.21% | 102.53% | 
136.98% | 126.50% |            127.10% |
| O2_funroll_loops                           | 100.00% | 100.00% |     100.00% 
|    100.00% |   101.22% |           103.10% | 100.00% | 100.01% | 100.04% | 
148.33% | 132.25% |            133.23% |
| O2_funroll_all_loops                       | 100.00% | 100.00% |     100.00% 
|    100.00% |   101.38% |           103.20% | 100.00% | 100.01% | 100.04% | 
154.15% | 135.72% |            136.81% |

Reply via email to