]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
2012-11-01 Sharad Singhai <singhai@google.com>
authorsinghai <singhai@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 1 Nov 2012 07:34:44 +0000 (07:34 +0000)
committersinghai <singhai@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 1 Nov 2012 07:34:44 +0000 (07:34 +0000)
    * doc/invoke.texi: Update -fopt-info documentation.
    * dumpfile.c: Move dump_flags here from passes.c.
    Rename opt_info_options to optinfo_verbosity_options.
    Add optgroup_options.
    (dump_files): Add field for optinfo_flags in the static initializer.
    (dump_register): Handle additional parameter for optgroup_flags.
    (opt_info_enable_passes): Renamed opt_info_enable_all. Handle
    optgroup_flags. Fix documentation.
    (opt_info_switch_p_1): Handle optgroup options.
    (opt_info_switch_p): Handle optgroup_flags. Warn on multiple files.
    * dumpfile.h (dump_register): Additional argument for optgroup_flags.
    All callers updated.
    (struct dump_file_info): Add field for optgroup_flags.
    Define OPTGROUP_* flags.
    * tree-pass.h (struct opt_pass): Add addtional field for optinfo_flags.
    All opt_pass static initializers updated.
    * opts-global.c (dump_remap_tree_vectorizer_verbose): Use 'all'
    instead of 'optall'.
    (handle_common_deferred_options): Fix typo in error message.
    * passes.c (register_one_dump_file): Add argument for optgroup_flags.
    Turn on OPTGROUP_IPA for IPA passes.
    Move dump_flags from here to dumpfile.c.
    * statistics.c (statistics_early_init): Use OPTGROUP_NONE in call to
    dump_register.

testsuite/ChangeLog

    * testsuite/gcc.dg/plugin/selfassign.c: Add opgtroup_flags initializer.
    * testsuite/gcc.dg/plugin/one_time_plugin.c: Likewise.
    * testsuite/g++.dg/plugin/selfassign.c: Likewise.
    * testsuite/g++.dg/plugin/dumb_plugin.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193061 138bc75d-0d04-0410-961f-82ee72b054a4

119 files changed:
gcc/ChangeLog
gcc/auto-inc-dec.c
gcc/bb-reorder.c
gcc/bt-load.c
gcc/cfgcleanup.c
gcc/cfgexpand.c
gcc/cfgrtl.c
gcc/cgraphbuild.c
gcc/combine-stack-adj.c
gcc/combine.c
gcc/compare-elim.c
gcc/config/epiphany/mode-switch-use.c
gcc/config/epiphany/resolve-sw-modes.c
gcc/config/rl78/rl78.c
gcc/cprop.c
gcc/cse.c
gcc/dce.c
gcc/df-core.c
gcc/doc/invoke.texi
gcc/dse.c
gcc/dumpfile.c
gcc/dumpfile.h
gcc/dwarf2cfi.c
gcc/except.c
gcc/final.c
gcc/function.c
gcc/fwprop.c
gcc/gcse.c
gcc/gimple-low.c
gcc/gimple-ssa-strength-reduction.c
gcc/ifcvt.c
gcc/init-regs.c
gcc/ipa-cp.c
gcc/ipa-inline-analysis.c
gcc/ipa-inline.c
gcc/ipa-pure-const.c
gcc/ipa-reference.c
gcc/ipa-split.c
gcc/ipa.c
gcc/ira.c
gcc/jump.c
gcc/loop-init.c
gcc/lower-subreg.c
gcc/lto-streamer-out.c
gcc/mode-switching.c
gcc/modulo-sched.c
gcc/omp-low.c
gcc/opts-global.c
gcc/passes.c
gcc/postreload-gcse.c
gcc/postreload.c
gcc/predict.c
gcc/recog.c
gcc/ree.c
gcc/reg-stack.c
gcc/regcprop.c
gcc/reginfo.c
gcc/regmove.c
gcc/regrename.c
gcc/reorg.c
gcc/sched-rgn.c
gcc/stack-ptr-mod.c
gcc/statistics.c
gcc/store-motion.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/plugin/dumb_plugin.c
gcc/testsuite/g++.dg/plugin/selfassign.c
gcc/testsuite/gcc.dg/plugin/one_time_plugin.c
gcc/testsuite/gcc.dg/plugin/selfassign.c
gcc/tracer.c
gcc/trans-mem.c
gcc/tree-call-cdce.c
gcc/tree-cfg.c
gcc/tree-cfgcleanup.c
gcc/tree-complex.c
gcc/tree-eh.c
gcc/tree-emutls.c
gcc/tree-if-conv.c
gcc/tree-into-ssa.c
gcc/tree-loop-distribution.c
gcc/tree-mudflap.c
gcc/tree-nomudflap.c
gcc/tree-nrv.c
gcc/tree-object-size.c
gcc/tree-optimize.c
gcc/tree-pass.h
gcc/tree-profile.c
gcc/tree-sra.c
gcc/tree-ssa-ccp.c
gcc/tree-ssa-copy.c
gcc/tree-ssa-copyrename.c
gcc/tree-ssa-dce.c
gcc/tree-ssa-dom.c
gcc/tree-ssa-dse.c
gcc/tree-ssa-forwprop.c
gcc/tree-ssa-ifcombine.c
gcc/tree-ssa-loop-ch.c
gcc/tree-ssa-loop.c
gcc/tree-ssa-math-opts.c
gcc/tree-ssa-phiopt.c
gcc/tree-ssa-phiprop.c
gcc/tree-ssa-pre.c
gcc/tree-ssa-reassoc.c
gcc/tree-ssa-sink.c
gcc/tree-ssa-strlen.c
gcc/tree-ssa-structalias.c
gcc/tree-ssa-uncprop.c
gcc/tree-ssa-uninit.c
gcc/tree-ssa.c
gcc/tree-ssanames.c
gcc/tree-stdarg.c
gcc/tree-switch-conversion.c
gcc/tree-tailcall.c
gcc/tree-vect-generic.c
gcc/tree-vectorizer.c
gcc/tree-vrp.c
gcc/tree.c
gcc/var-tracking.c
gcc/web.c

index e9b86cc54461459102e06949ab4a7e938bb6a1a0..64b2cbe36534873486212ffb08f6632d04fc31ff 100644 (file)
@@ -1,3 +1,30 @@
+2012-11-01  Sharad Singhai  <singhai@google.com>
+
+       * doc/invoke.texi: Update -fopt-info documentation.
+       * dumpfile.c: Move dump_flags here from passes.c.
+       Rename opt_info_options to optinfo_verbosity_options.
+       Add optgroup_options.
+       (dump_files): Add field for optinfo_flags in the static initializer.
+       (dump_register): Handle additional parameter for optgroup_flags.
+       (opt_info_enable_passes): Renamed opt_info_enable_all. Handle
+       optgroup_flags. Fix documentation.
+       (opt_info_switch_p_1): Handle optgroup options.
+       (opt_info_switch_p): Handle optgroup_flags. Warn on multiple files.
+       * dumpfile.h (dump_register): Additional argument for optgroup_flags.
+       All callers updated.
+       (struct dump_file_info): Add field for optgroup_flags.
+       Define OPTGROUP_* flags.
+       * tree-pass.h (struct opt_pass): Add addtional field for optinfo_flags.
+       All opt_pass static initializers updated.
+       * opts-global.c (dump_remap_tree_vectorizer_verbose): Use 'all'
+       instead of 'optall'.
+       (handle_common_deferred_options): Fix typo in error message.
+       * passes.c (register_one_dump_file): Add argument for optgroup_flags.
+       Turn on OPTGROUP_IPA for IPA passes.
+       Move dump_flags from here to dumpfile.c.
+       * statistics.c (statistics_early_init): Use OPTGROUP_NONE in call to
+       dump_register.
+
 2012-11-01  Joern Rennecke  <joern.rennecke@embecosm.com>
 
        PR target/55160
index b1074f943b20e212154ee84d4d5d64c440982708..810e9f2955f8f63ce851a698d24f62f745c33189 100644 (file)
@@ -1511,6 +1511,7 @@ struct rtl_opt_pass pass_inc_dec =
  {
   RTL_PASS,
   "auto_inc_dec",                       /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_auto_inc_dec,                    /* gate */
   rest_of_handle_auto_inc_dec,          /* execute */
   NULL,                                 /* sub */
index 6c6b456ab7cef38f21be463f554a10793c05c014..fd353f675c8ed9d536aa0e07a287a31f6592c4d4 100644 (file)
@@ -2234,6 +2234,7 @@ struct rtl_opt_pass pass_reorder_blocks =
  {
   RTL_PASS,
   "bbro",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_reorder_blocks,           /* gate */
   rest_of_handle_reorder_blocks,        /* execute */
   NULL,                                 /* sub */
@@ -2376,6 +2377,7 @@ struct rtl_opt_pass pass_duplicate_computed_gotos =
  {
   RTL_PASS,
   "compgotos",                          /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_duplicate_computed_gotos,        /* gate */
   duplicate_computed_gotos,             /* execute */
   NULL,                                 /* sub */
@@ -2579,6 +2581,7 @@ struct rtl_opt_pass pass_partition_blocks =
  {
   RTL_PASS,
   "bbpart",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_partition_blocks,         /* gate */
   partition_hot_cold_basic_blocks,      /* execute */
   NULL,                                 /* sub */
index 2aeb1c0f023d5b123e0ba899d1206dff0f991269..35236fdaeef01f0b6f5d341f846acbd518324225 100644 (file)
@@ -1,3 +1,4 @@
+
 /* Perform branch target register load optimizations.
    Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
@@ -1509,6 +1510,7 @@ struct rtl_opt_pass pass_branch_target_load_optimize1 =
  {
   RTL_PASS,
   "btl1",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_branch_target_load_optimize1,      /* gate */
   rest_of_handle_branch_target_load_optimize1,   /* execute */
   NULL,                                 /* sub */
@@ -1558,6 +1560,7 @@ struct rtl_opt_pass pass_branch_target_load_optimize2 =
  {
   RTL_PASS,
   "btl2",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_branch_target_load_optimize2,      /* gate */
   rest_of_handle_branch_target_load_optimize2,   /* execute */
   NULL,                                 /* sub */
index 74ea30273897c03fca60ac06f3a8b83cf2c8c7b1..ab882d269f04936b7382031184b087a30835acbd 100644 (file)
@@ -3008,6 +3008,7 @@ struct rtl_opt_pass pass_jump =
  {
   RTL_PASS,
   "jump",                              /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   execute_jump,                                /* execute */
   NULL,                                        /* sub */
@@ -3034,6 +3035,7 @@ struct rtl_opt_pass pass_jump2 =
  {
   RTL_PASS,
   "jump2",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   execute_jump2,                       /* execute */
   NULL,                                        /* sub */
index 5c06c1f2eff0062a2e85bb97c82409249d1d4ec0..e501b4b1c1fbb3592ca2ba86525711fc76a78b6f 100644 (file)
@@ -4677,6 +4677,7 @@ struct rtl_opt_pass pass_expand =
  {
   RTL_PASS,
   "expand",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   gimple_expand_cfg,                   /* execute */
   NULL,                                 /* sub */
index 5eec5e05f4be4f04c12a953dc9b674a4d36dbad4..9c8eea753e46476d9bfb1dbec6b68a173d0c36ea 100644 (file)
@@ -456,6 +456,7 @@ struct rtl_opt_pass pass_free_cfg =
  {
   RTL_PASS,
   "*free_cfg",                          /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   rest_of_pass_free_cfg,                /* execute */
   NULL,                                 /* sub */
@@ -2998,6 +2999,7 @@ struct rtl_opt_pass pass_into_cfg_layout_mode =
  {
   RTL_PASS,
   "into_cfglayout",                     /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   into_cfg_layout_mode,                 /* execute */
   NULL,                                 /* sub */
@@ -3017,6 +3019,7 @@ struct rtl_opt_pass pass_outof_cfg_layout_mode =
  {
   RTL_PASS,
   "outof_cfglayout",                    /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   outof_cfg_layout_mode,                /* execute */
   NULL,                                 /* sub */
index 57167fd001d761cc0722f43588bee457aabca1e3..024424d0671b1057384077bc1e8da775094433ea 100644 (file)
@@ -370,6 +370,7 @@ struct gimple_opt_pass pass_build_cgraph_edges =
  {
   GIMPLE_PASS,
   "*build_cgraph_edges",                       /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   build_cgraph_edges,                  /* execute */
   NULL,                                        /* sub */
@@ -487,6 +488,7 @@ struct gimple_opt_pass pass_rebuild_cgraph_edges =
  {
   GIMPLE_PASS,
   "*rebuild_cgraph_edges",             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   rebuild_cgraph_edges,                        /* execute */
   NULL,                                        /* sub */
@@ -514,6 +516,7 @@ struct gimple_opt_pass pass_remove_cgraph_callee_edges =
  {
   GIMPLE_PASS,
   "*remove_cgraph_callee_edges",               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   remove_cgraph_callee_edges,          /* execute */
   NULL,                                        /* sub */
index ff660967566c113ed689a14a696fc6ba28efd935..ca94515e842ed9547f84acf9fb55ff4649cb0bc0 100644 (file)
@@ -650,6 +650,7 @@ struct rtl_opt_pass pass_stack_adjustments =
  {
   RTL_PASS,
   "csa",                                /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_stack_adjustments,        /* gate */
   rest_of_handle_stack_adjustments,     /* execute */
   NULL,                                 /* sub */
index 5bbf0bde93764951930ed739ccf2d1af63f94fbd..214a466bd46601768043cdff12069b531d95d5d3 100644 (file)
@@ -13817,6 +13817,7 @@ struct rtl_opt_pass pass_combine =
  {
   RTL_PASS,
   "combine",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_combine,                  /* gate */
   rest_of_handle_combine,               /* execute */
   NULL,                                 /* sub */
index b021e8daf88ea69fbcee79099a381e0cfeedb20a..1761d0d2afffa3a9d117436647c784760c0c04da 100644 (file)
@@ -660,6 +660,7 @@ struct rtl_opt_pass pass_compare_elim_after_reload =
  {
   RTL_PASS,
   "cmpelim",                           /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_compare_elim_after_reload,      /* gate */
   execute_compare_elim_after_reload,   /* execute */
   NULL,                                        /* sub */
index a7020f4393b610c8f35ab59f0223031a81828204..ef89004e39b25fa4819c5cc322f0ea23a450227a 100644 (file)
@@ -76,6 +76,7 @@ struct rtl_opt_pass pass_mode_switch_use =
  {
   RTL_PASS,
   "mode_switch_use",                   /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   insert_uses,                         /* execute */
   NULL,                                        /* sub */
index 14c64d44cbe23cc1c37e9614867276dd5a2b8f1a..86cc5b1ebd979394c29815202a623b29be0b66d3 100644 (file)
@@ -166,6 +166,7 @@ struct rtl_opt_pass pass_resolve_sw_modes =
  {
   RTL_PASS,
   "resolve_sw_modes",                  /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_resolve_sw_modes,               /* gate */
   resolve_sw_modes,                    /* execute */
   NULL,                                        /* sub */
index 5e5050bca132445234bc75fdb2536ac0a99f53ca..42a2839db6d7edc68110ecfe353e3abfe563b45d 100644 (file)
@@ -133,6 +133,7 @@ static struct opt_pass rl78_devirt_pass =
 {
   RTL_PASS,
   "devirt",
+  OPTGROUP_NONE,                        /* optinfo_flags */
   devirt_gate,
   devirt_pass,
   NULL,
index e90a13ca8781f313417d9796975aab37f8407fbd..7945342ee367a87eae206220fbde1d1c87c0fff0 100644 (file)
@@ -1923,6 +1923,7 @@ struct rtl_opt_pass pass_rtl_cprop =
  {
   RTL_PASS,
   "cprop",                              /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_rtl_cprop,                       /* gate */
   execute_rtl_cprop,                   /* execute */
   NULL,                                 /* sub */
index b41d47a36a2a2f2954fe8e5523999cad7627c46f..20bda3122e77257103503f71212c6125f3df3506 100644 (file)
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -7456,6 +7456,7 @@ struct rtl_opt_pass pass_cse =
  {
   RTL_PASS,
   "cse1",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_cse,                      /* gate */
   rest_of_handle_cse,                  /* execute */
   NULL,                                 /* sub */
@@ -7518,6 +7519,7 @@ struct rtl_opt_pass pass_cse2 =
  {
   RTL_PASS,
   "cse2",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_cse2,                     /* gate */
   rest_of_handle_cse2,                 /* execute */
   NULL,                                 /* sub */
@@ -7578,6 +7580,7 @@ struct rtl_opt_pass pass_cse_after_global_opts =
  {
   RTL_PASS,
   "cse_local",                          /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_cse_after_global_opts,    /* gate */
   rest_of_handle_cse_after_global_opts, /* execute */
   NULL,                                 /* sub */
index efc26222e7e9423024b309e2ee3d97ee3f0fdcd3..a1e8087ebc67aa483acaa9413da740b8f84ba386 100644 (file)
--- a/gcc/dce.c
+++ b/gcc/dce.c
@@ -786,6 +786,7 @@ struct rtl_opt_pass pass_ud_rtl_dce =
  {
   RTL_PASS,
   "ud_dce",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_ud_dce,                          /* gate */
   rest_of_handle_ud_dce,                /* execute */
   NULL,                                 /* sub */
@@ -1201,6 +1202,7 @@ struct rtl_opt_pass pass_fast_rtl_dce =
  {
   RTL_PASS,
   "rtl_dce",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_fast_dce,                        /* gate */
   rest_of_handle_fast_dce,              /* execute */
   NULL,                                 /* sub */
index 2ac11e42e5855e7d296f7acaaeaab917166a83f9..dd1060e2b2e405494f8764816e35ae957e053992 100644 (file)
@@ -754,6 +754,7 @@ struct rtl_opt_pass pass_df_initialize_opt =
  {
   RTL_PASS,
   "dfinit",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_opt,                             /* gate */
   rest_of_handle_df_initialize,         /* execute */
   NULL,                                 /* sub */
@@ -781,6 +782,7 @@ struct rtl_opt_pass pass_df_initialize_no_opt =
  {
   RTL_PASS,
   "no-opt dfinit",                      /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_no_opt,                          /* gate */
   rest_of_handle_df_initialize,         /* execute */
   NULL,                                 /* sub */
@@ -828,6 +830,7 @@ struct rtl_opt_pass pass_df_finish =
  {
   RTL_PASS,
   "dfinish",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   rest_of_handle_df_finish,             /* execute */
   NULL,                                 /* sub */
index 720d42de101cf852a0e55fdf776112a775122b09..ff0c87dc6c4f0a9cd9c167cc3f20f1a3a1d58559 100644 (file)
@@ -6021,58 +6021,108 @@ Enable all the available tree dumps with the flags provided in this option.
 @itemx -fopt-info-@var{options}
 @itemx -fopt-info-@var{options}=@var{filename}
 @opindex fopt-info
-Controls optimization dumps from all the passes. If the
+Controls optimization dumps from various optimization passes. If the
 @samp{-@var{options}} form is used, @var{options} is a list of
-@samp{-} separated options to control the dump details.  If
-@var{options} is not specified, it defaults to @option{optall}. If the
-@var{filename} is not specified, it defaults to @file{stderr}. Note
-that the output @var{filename} will be overwritten in case of multiple
-translation units. If a combined output from multiple translation
-units is desired, @file{stderr} should be used instead.
-
-The following options are available
+@samp{-} separated options to select the dump details and
+optimizations.  If @var{options} is not specified, it defaults to
+@option{all} for details and @option{optall} for optimization
+groups. If the @var{filename} is not specified, it defaults to
+@file{stderr}. Note that the output @var{filename} will be overwritten
+in case of multiple translation units. If a combined output from
+multiple translation units is desired, @file{stderr} should be used
+instead.
+
+The options can be divided into two groups, 1) options describing the
+verbosity of the dump, and 2) options describing which optimizations
+should be included. The options from both the groups can be freely
+mixed as they are non-overlapping. However, in case of any conflicts,
+the latter options override the earlier options on the command
+line. Though multiple -fopt-info options are accepted, only one of
+them can have @option{=filename}. If other filenames are provided then
+all but the first one are ignored.
+
+The dump verbosity has the following options
 
 @table @samp
 @item optimized
 Print information when an optimization is successfully applied. It is
 up to a pass to decide which information is relevant. For example, the
-vectorizer pass prints the location of loop which got vectorized.
+vectorizer passes print the source location of loops which got
+successfully vectorized.
 @item missed
 Print information about missed optimizations. Individual passes
-control which information to include in the output. For example,
+control which informations to include in the output. For example,
 
 @smallexample
-gcc -O2 -ftree-vectorize -fopt-info-missed
+gcc -O2 -ftree-vectorize -fopt-info-vec-missed
 @end smallexample
 
-will print information about missed optimization opportunities on
-stderr.
+will print information about missed optimization opportunities from
+vectorization passes on stderr.
 @item note
 Print verbose information about optimizations, such as certain
 transformations, more detailed messages about decisions etc.
-@item optall
+@item all
 Print detailed optimization information. This includes
-@var{optimized}, @var{missed}, and @var{note}. For example,
+@var{optimized}, @var{missed}, and @var{note}.
+@end table
+
+The second set of options describes a group of optimizations and may
+include one or more of the following.
+
+@table @samp
+@item ipa
+Enable dumps from all interprocedural optimizations.
+@item loop
+Enable dumps from all loop optimizations.
+@item inline
+Enable dumps from all inlining optimizations.
+@item vec
+Enable dumps from all vectorization optimizations.
+@end table
+
+For example,
+@smallexample
+gcc -O3 -fopt-info-missed=missed.all
+@end smallexample
 
+outputs missed optimization report from all the passes into
+@file{missed.all}.
+
+As another example,
 @smallexample
-gcc -O2 -ftree-vectorize -fopt-info-optall=opt.all
+gcc -O3 -fopt-info-inline-optimized-missed=inline.txt
 @end smallexample
 
-outputs detailed optimization report from all the passes into
-@file{opt.all}.
-@end table
+will output information about missed optimizations as well as
+optimized locations from all the inlining passes into
+@file{inline.txt}.
+
+If the @var{filename} is provided, then the dumps from all the
+applicable optimizations are concatenated into the @file{filename}.
+Otherwise the dump is output onto @file{stderr}. If @var{options} is
+omitted, it defaults to @option{all-optall}, which means dump all
+available optimization info from all the passes. In the following
+example, all optimization info is output on to @file{stderr}.
+
+@smallexample
+gcc -O3 -fopt-info
+@end smallexample
+
+Note that @option{-fopt-info-vec-missed} behaves the same as
+@option{-fopt-info-missed-vec}.
 
-It applies the dump options to all the passes. If the @var{filename}
-is provided, the dump from all the passes is concatenated, otherwise
-the dump is output onto @file{stderr}. If @var{options} is omitted, it
-defaults to @option{optall}.
+As another example, consider
 
 @smallexample
-gcc -O3 -fopt-info-optimized-missed=optdump.txt
+gcc -fopt-info-vec-missed=vec.miss -fopt-info-loop-optimized=loop.opt
 @end smallexample
 
-This will output information about missed optimizations as well as
-optimized locations from all the passes into @file{optdump.txt}.
+Here the two output filenames @file{vec.miss} and @file{loop.opt} are
+in conflict since only one output file is allowed. In this case, only
+the first option takes effect and the subsequent options are
+ignored. Thus only the @file{vec.miss} is produced which cotaints
+dumps from the vectorizer about missed opportunities.
 
 @item -ftree-vectorizer-verbose=@var{n}
 @opindex ftree-vectorizer-verbose
index a987f3cc38fb7cbff81a3242cc20d9e38993a977..4da325acf7dc312bc331701a1aaad70229d5b1ab 100644 (file)
--- a/gcc/dse.c
+++ b/gcc/dse.c
@@ -3934,6 +3934,7 @@ struct rtl_opt_pass pass_rtl_dse1 =
  {
   RTL_PASS,
   "dse1",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_dse1,                            /* gate */
   rest_of_handle_dse,                   /* execute */
   NULL,                                 /* sub */
@@ -3954,6 +3955,7 @@ struct rtl_opt_pass pass_rtl_dse2 =
  {
   RTL_PASS,
   "dse2",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_dse2,                            /* gate */
   rest_of_handle_dse,                   /* execute */
   NULL,                                 /* sub */
index 0f36afae42a3aa69fcc84878a1664ca0330fd114..55543cc158ab95306aa0bdeb21665c7af80fefeb 100644 (file)
@@ -43,34 +43,35 @@ static FILE *dump_open_alternate_stream (struct dump_file_info *);
 FILE *dump_file = NULL;
 FILE *alt_dump_file = NULL;
 const char *dump_file_name;
+int dump_flags;
 
 /* Table of tree dump switches. This must be consistent with the
    TREE_DUMP_INDEX enumeration in dumpfile.h.  */
 static struct dump_file_info dump_files[TDI_end] =
 {
-  {NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0},
+  {NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, 0},
   {".cgraph", "ipa-cgraph", NULL, NULL, NULL, NULL, NULL, TDF_IPA,
-   0, 0, 0, 0},
+   0, 0, 0, 0, 0},
   {".tu", "translation-unit", NULL, NULL, NULL, NULL, NULL, TDF_TREE,
-   0, 0, 0, 1},
+   0, 0, 0, 0, 1},
   {".class", "class-hierarchy", NULL, NULL, NULL, NULL, NULL, TDF_TREE,
-   0, 0, 0, 2},
+   0, 0, 0, 0, 2},
   {".original", "tree-original", NULL, NULL, NULL, NULL, NULL, TDF_TREE,
-   0, 0, 0, 3},
+   0, 0, 0, 0, 3},
   {".gimple", "tree-gimple", NULL, NULL, NULL, NULL, NULL, TDF_TREE,
-   0, 0, 0, 4},
+   0, 0, 0, 0, 4},
   {".nested", "tree-nested", NULL, NULL, NULL, NULL, NULL, TDF_TREE,
-   0, 0, 0, 5},
+   0, 0, 0, 0, 5},
   {".vcg", "tree-vcg", NULL, NULL, NULL, NULL, NULL, TDF_TREE,
-   0, 0, 0, 6},
+   0, 0, 0, 0, 6},
 #define FIRST_AUTO_NUMBERED_DUMP 7
 
   {NULL, "tree-all", NULL, NULL, NULL, NULL, NULL, TDF_TREE,
-   0, 0, 0, 0},
+   0, 0, 0, 0, 0},
   {NULL, "rtl-all", NULL, NULL, NULL, NULL, NULL, TDF_RTL,
-   0, 0, 0, 0},
+   0, 0, 0, 0, 0},
   {NULL, "ipa-all", NULL, NULL, NULL, NULL, NULL, TDF_IPA,
-   0, 0, 0, 0},
+   0, 0, 0, 0, 0},
 };
 
 /* Dynamically registered tree dump files and switches.  */
@@ -117,24 +118,32 @@ static const struct dump_option_value_info dump_options[] =
   {NULL, 0}
 };
 
-/* A subset of the dump_options table which is used for opt-info
-   options. This must be consistent with the MSG_* flags in
-   dump_options.
+/* A subset of the dump_options table which is used for -fopt-info
+   types. This must be consistent with the MSG_* flags in dumpfile.h.
  */
-static const struct dump_option_value_info opt_info_options[] =
+static const struct dump_option_value_info optinfo_verbosity_options[] =
 {
   {"optimized", MSG_OPTIMIZED_LOCATIONS},
   {"missed", MSG_MISSED_OPTIMIZATION},
   {"note", MSG_NOTE},
-  {"optall", (MSG_OPTIMIZED_LOCATIONS
-           | MSG_MISSED_OPTIMIZATION
-           | MSG_NOTE)},
+  {"all", MSG_ALL},
+  {NULL, 0}
+};
+
+/* Flags used for -fopt-info groups.  */
+static const struct dump_option_value_info optgroup_options[] =
+{
+  {"ipa", OPTGROUP_IPA},
+  {"loop", OPTGROUP_LOOP},
+  {"inline", OPTGROUP_INLINE},
+  {"vec", OPTGROUP_VEC},
+  {"optall", OPTGROUP_ALL},
   {NULL, 0}
 };
 
 unsigned int
 dump_register (const char *suffix, const char *swtch, const char *glob,
-              int flags)
+              int flags, int optgroup_flags)
 {
   static int next_dump = FIRST_AUTO_NUMBERED_DUMP;
   int num = next_dump++;
@@ -157,6 +166,7 @@ dump_register (const char *suffix, const char *swtch, const char *glob,
   extra_dump_files[count].swtch = swtch;
   extra_dump_files[count].glob = glob;
   extra_dump_files[count].pflags = flags;
+  extra_dump_files[count].optgroup_flags = optgroup_flags;
   extra_dump_files[count].num = num;
 
   return count + TDI_end;
@@ -376,8 +386,8 @@ dump_printf_loc (int dump_kind, source_location loc, const char *format, ...)
 /* Start a dump for PHASE. Store user-supplied dump flags in
    *FLAG_PTR.  Return the number of streams opened.  Set globals
    DUMP_FILE, and ALT_DUMP_FILE to point to the opened streams, and
-   set dump_flags appropriately for both pass dump stream and opt-info
-   stream. */
+   set dump_flags appropriately for both pass dump stream and
+   -fopt-info stream. */
 
 int
 dump_start (int phase, int *flag_ptr)
@@ -418,7 +428,7 @@ dump_start (int phase, int *flag_ptr)
       dfi->alt_stream = stream;
       count++;
       alt_dump_file = dfi->alt_stream;
-      /* Initialize current opt-info flags. */
+      /* Initialize current -fopt-info flags. */
       alt_flags = dfi->alt_flags;
     }
 
@@ -603,18 +613,19 @@ dump_enable_all (int flags, const char *filename)
   return n;
 }
 
-/* Enable opt-info dumps on all IR_DUMP_TYPE passes with FLAGS on
-   FILENAME.  Return the number of enabled dumps.  */
+/* Enable -fopt-info dumps on all dump files matching OPTGROUP_FLAGS.
+   Enable dumps with FLAGS on FILENAME.  Return the number of enabled
+   dumps.  */
 
 static int
-opt_info_enable_all (int ir_dump_type, int flags, const char *filename)
+opt_info_enable_passes (int optgroup_flags, int flags, const char *filename)
 {
   int n = 0;
   size_t i;
 
   for (i = TDI_none + 1; i < (size_t) TDI_end; i++)
     {
-      if ((dump_files[i].pflags & ir_dump_type))
+      if ((dump_files[i].optgroup_flags & optgroup_flags))
         {
           const char *old_filename = dump_files[i].alt_filename;
           /* Since this file is shared among different passes, it
@@ -632,7 +643,7 @@ opt_info_enable_all (int ir_dump_type, int flags, const char *filename)
 
   for (i = 0; i < extra_dump_files_in_use; i++)
     {
-      if ((extra_dump_files[i].pflags & ir_dump_type))
+      if ((extra_dump_files[i].optgroup_flags & optgroup_flags))
         {
           const char *old_filename = extra_dump_files[i].alt_filename;
           /* Since this file is shared among different passes, it
@@ -753,11 +764,12 @@ dump_switch_p (const char *arg)
   return any;
 }
 
-/* Parse ARG as a -fopt-info switch and store flags and filename.
-   Return non-zero if it is a recognized switch.  */
+/* Parse ARG as a -fopt-info switch and store flags, optgroup_flags
+   and filename.  Return non-zero if it is a recognized switch.  */
 
 static int
-opt_info_switch_p_1 (const char *arg, int *flags, char **filename)
+opt_info_switch_p_1 (const char *arg, int *flags, int *optgroup_flags,
+                     char **filename)
 {
   const char *option_value;
   const char *ptr;
@@ -767,9 +779,10 @@ opt_info_switch_p_1 (const char *arg, int *flags, char **filename)
 
   *filename = NULL;
   *flags = 0;
+  *optgroup_flags = 0;
 
   if (!ptr)
-    return 1;
+    return 1;       /* Handle '-fopt-info' without any additional options.  */
 
   while (*ptr)
     {
@@ -790,7 +803,8 @@ opt_info_switch_p_1 (const char *arg, int *flags, char **filename)
        end_ptr = ptr + strlen (ptr);
       length = end_ptr - ptr;
 
-      for (option_ptr = opt_info_options; option_ptr->name; option_ptr++)
+      for (option_ptr = optinfo_verbosity_options; option_ptr->name;
+           option_ptr++)
        if (strlen (option_ptr->name) == length
            && !memcmp (option_ptr->name, ptr, length))
           {
@@ -798,6 +812,14 @@ opt_info_switch_p_1 (const char *arg, int *flags, char **filename)
            goto found;
           }
 
+      for (option_ptr = optgroup_options; option_ptr->name; option_ptr++)
+       if (strlen (option_ptr->name) == length
+           && !memcmp (option_ptr->name, ptr, length))
+          {
+            *optgroup_flags |= option_ptr->value;
+           goto found;
+          }
+
       if (*ptr == '=')
         {
           /* Interpret rest of the argument as a dump filename.  This
@@ -806,8 +828,11 @@ opt_info_switch_p_1 (const char *arg, int *flags, char **filename)
           break;
         }
       else
-        warning (0, "ignoring unknown option %q.*s in %<-fopt-info=%s%>",
-                 length, ptr, arg);
+        {
+          warning (0, "unknown option %q.*s in %<-fopt-info-%s%>",
+                   length, ptr, arg);
+          return 0;
+        }
     found:;
       ptr = end_ptr;
     }
@@ -822,16 +847,31 @@ int
 opt_info_switch_p (const char *arg)
 {
   int flags;
+  int optgroup_flags;
   char *filename;
+  static char *file_seen = NULL;
 
-  opt_info_switch_p_1 (arg, &flags, &filename);
+  if (!opt_info_switch_p_1 (arg, &flags, &optgroup_flags, &filename))
+    return 0;
 
   if (!filename)
     filename = xstrdup ("stderr");
+
+  /* Bail out if a different filename has been specified.  */
+  if (file_seen && strcmp (file_seen, filename))
+    {
+      warning (0, "ignoring possibly conflicting option %<-fopt-info-%s%>",
+               arg);
+      return 1;
+    }
+
+  file_seen = xstrdup (filename);
   if (!flags)
     flags = MSG_ALL;
+  if (!optgroup_flags)
+    optgroup_flags = OPTGROUP_ALL;
 
-  return opt_info_enable_all ((TDF_TREE | TDF_RTL | TDF_IPA), flags, filename);
+  return opt_info_enable_passes (optgroup_flags, flags, filename);
 }
 
 /* Print basic block on the dump streams.  */
index b2efc804c096838f6368bac8a0776854f6fbd602..bcef9c6e337e51ef67e4ccf9f709721bfaf83bee 100644 (file)
@@ -25,7 +25,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "line-map.h"
 
 /* Different tree dump places.  When you add new tree dump places,
-   extend the DUMP_FILES array in tree-dump.c.  */
+   extend the DUMP_FILES array in dumpfile.c.  */
 enum tree_dump_index
 {
   TDI_none,                    /* No dump */
@@ -46,9 +46,9 @@ enum tree_dump_index
 
 /* Bit masks to control dumping. Not all values are applicable to all
    dumps. Add new ones at the end. When you define new values, extend
-   the DUMP_OPTIONS array in tree-dump.c. The TDF_* flags coexist with
-   MSG_* flags (for -fopt-info) and the bit values must be chosen
-   to allow that.  */
+   the DUMP_OPTIONS array in dumpfile.c. The TDF_* flags coexist with
+   MSG_* flags (for -fopt-info) and the bit values must be chosen to
+   allow that.  */
 #define TDF_ADDRESS    (1 << 0)        /* dump node addresses */
 #define TDF_SLIM       (1 << 1)        /* don't go wild following links */
 #define TDF_RAW        (1 << 2)        /* don't unparse the function */
@@ -91,6 +91,18 @@ enum tree_dump_index
 #define MSG_ALL         (MSG_OPTIMIZED_LOCATIONS | MSG_MISSED_OPTIMIZATION \
                          | MSG_NOTE)
 
+
+/* Flags to control high-level -fopt-info dumps.  Usually these flags
+   define a group of passes.  An optimization pass can be part of
+   multiple groups.  */
+#define OPTGROUP_NONE        (0)
+#define OPTGROUP_IPA         (1 << 1)   /* IPA optimization passes */
+#define OPTGROUP_LOOP        (1 << 2)   /* Loop optimization passes */
+#define OPTGROUP_INLINE      (1 << 3)   /* Inlining passes */
+#define OPTGROUP_VEC         (1 << 4)   /* Vectorization passes */
+#define OPTGROUP_ALL        (OPTGROUP_IPA | OPTGROUP_LOOP | OPTGROUP_INLINE \
+                              | OPTGROUP_VEC)
+
 /* Define a tree dump switch.  */
 struct dump_file_info
 {
@@ -98,13 +110,14 @@ struct dump_file_info
   const char *swtch;            /* command line dump switch */
   const char *glob;             /* command line glob  */
   const char *pfilename;        /* filename for the pass-specific stream  */
-  const char *alt_filename;     /* filename for the opt-info stream  */
+  const char *alt_filename;     /* filename for the -fopt-info stream  */
   FILE *pstream;                /* pass-specific dump stream  */
-  FILE *alt_stream;             /* opt-info stream */
+  FILE *alt_stream;             /* -fopt-info stream */
+  int optgroup_flags;           /* optgroup flags for -fopt-info */
   int pflags;                   /* dump flags */
   int alt_flags;                /* flags for opt-info */
   int pstate;                   /* state of pass-specific stream */
-  int alt_state;                /* state of the opt-info stream */
+  int alt_state;                /* state of the -fopt-info stream */
   int num;                      /* dump file number */
 };
 
@@ -129,7 +142,7 @@ extern void dump_gimple_stmt_loc (int, source_location, int, gimple, int);
 extern void dump_gimple_stmt (int, int, gimple, int);
 extern void print_combine_total_stats (void);
 extern unsigned int dump_register (const char *, const char *, const char *,
-                                   int);
+                                   int, int);
 extern bool enable_rtl_dump_file (void);
 
 /* In combine.c  */
@@ -146,8 +159,7 @@ extern const char *dump_file_name;
 /* Return the dump_file_info for the given phase.  */
 extern struct dump_file_info *get_dump_file_info (int);
 
-/* Return true if any of the dumps are enabled, false otherwise. */
-
+/* Return true if any of the dumps is enabled, false otherwise. */
 static inline bool
 dump_enabled_p (void)
 {
index 355c74698aa39f76a23f43482c109365655209aa..7c5316035579aac5007a3b59f276ca9677d7f37a 100644 (file)
@@ -3388,6 +3388,7 @@ struct rtl_opt_pass pass_dwarf2_frame =
  {
   RTL_PASS,
   "dwarf2",                    /* name */
+  OPTGROUP_NONE,                /* optinfo_flags */
   gate_dwarf2_frame,           /* gate */
   execute_dwarf2_frame,                /* execute */
   NULL,                                /* sub */
index 7e18c19ec14558e1869709067185a8fa32b25cc3..9cd3391517b193689a17c909044e95b7af4da67f 100644 (file)
@@ -1920,6 +1920,7 @@ struct rtl_opt_pass pass_set_nothrow_function_flags =
  {
   RTL_PASS,
   "nothrow",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   set_nothrow_function_flags,           /* execute */
   NULL,                                 /* sub */
@@ -2569,6 +2570,7 @@ struct rtl_opt_pass pass_convert_to_eh_region_ranges =
  {
   RTL_PASS,
   "eh_ranges",                          /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_convert_to_eh_region_ranges,    /* gate */
   convert_to_eh_region_ranges,          /* execute */
   NULL,                                 /* sub */
index ceb688e5e312e256269bcc82bc890ab640081ef2..f414dd0c7e323a10edb30c348058618cfdc4c636 100644 (file)
@@ -822,6 +822,7 @@ struct rtl_opt_pass pass_compute_alignments =
  {
   RTL_PASS,
   "alignments",                         /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   compute_alignments,                   /* execute */
   NULL,                                 /* sub */
@@ -4373,6 +4374,7 @@ struct rtl_opt_pass pass_final =
  {
   RTL_PASS,
   "final",                              /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   rest_of_handle_final,                 /* execute */
   NULL,                                 /* sub */
@@ -4401,6 +4403,7 @@ struct rtl_opt_pass pass_shorten_branches =
  {
   RTL_PASS,
   "shorten",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   rest_of_handle_shorten_branches,      /* execute */
   NULL,                                 /* sub */
@@ -4547,6 +4550,7 @@ struct rtl_opt_pass pass_clean_state =
  {
   RTL_PASS,
   "*clean_state",                       /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   rest_of_clean_state,                  /* execute */
   NULL,                                 /* sub */
index 8a3904b7aae3b0ed16b358ab7363cd2b03881d49..127e4280a369c5a6ac7ed2be7db92b0383acd273 100644 (file)
@@ -1949,6 +1949,7 @@ struct rtl_opt_pass pass_instantiate_virtual_regs =
  {
   RTL_PASS,
   "vregs",                              /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   instantiate_virtual_regs,             /* execute */
   NULL,                                 /* sub */
@@ -6925,6 +6926,7 @@ struct rtl_opt_pass pass_leaf_regs =
  {
   RTL_PASS,
   "*leaf_regs",                         /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   rest_of_handle_check_leaf_regs,       /* execute */
   NULL,                                 /* sub */
@@ -6963,6 +6965,7 @@ struct rtl_opt_pass pass_thread_prologue_and_epilogue =
  {
   RTL_PASS,
   "pro_and_epilogue",                   /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   rest_of_handle_thread_prologue_and_epilogue, /* execute */
   NULL,                                 /* sub */
@@ -7164,6 +7167,7 @@ struct rtl_opt_pass pass_match_asm_constraints =
  {
   RTL_PASS,
   "asmcons",                           /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   rest_of_match_asm_constraints,       /* execute */
   NULL,                                 /* sub */
index cb571cd6d97397807780e2fe03a8f9bc9dbd49ae..545bd1532a57b8acb2f852beca26548a27045266 100644 (file)
@@ -1486,6 +1486,7 @@ struct rtl_opt_pass pass_rtl_fwprop =
  {
   RTL_PASS,
   "fwprop1",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_fwprop,                         /* gate */
   fwprop,                              /* execute */
   NULL,                                 /* sub */
@@ -1535,6 +1536,7 @@ struct rtl_opt_pass pass_rtl_fwprop_addr =
  {
   RTL_PASS,
   "fwprop2",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_fwprop,                         /* gate */
   fwprop_addr,                         /* execute */
   NULL,                                 /* sub */
index 6d0a47ef3132033a40a169c83eb8c7392a9050c6..4ebe6d67bdb7b67747dd50579097d73beacd489f 100644 (file)
@@ -4027,6 +4027,7 @@ struct rtl_opt_pass pass_rtl_pre =
  {
   RTL_PASS,
   "rtl pre",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_rtl_pre,                         /* gate */
   execute_rtl_pre,                     /* execute */
   NULL,                                 /* sub */
@@ -4047,6 +4048,7 @@ struct rtl_opt_pass pass_rtl_hoist =
  {
   RTL_PASS,
   "hoist",                              /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_rtl_hoist,                       /* gate */
   execute_rtl_hoist,                   /* execute */
   NULL,                                 /* sub */
index 677e41f2673a8529fa1ee447a7811ed49bf5be9a..8557c83c3c5e4396520f1df4fa407dce4708ce24 100644 (file)
@@ -194,6 +194,7 @@ struct gimple_opt_pass pass_lower_cf =
  {
   GIMPLE_PASS,
   "lower",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   lower_function_body,                 /* execute */
   NULL,                                        /* sub */
index 0523854027fb1b78720441350626b03c2e7c59cc..ad02589faee01ab14e8c49d15dd74d3e96302c8f 100644 (file)
@@ -2682,6 +2682,7 @@ struct gimple_opt_pass pass_strength_reduction =
  {
   GIMPLE_PASS,
   "slsr",                              /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_strength_reduction,             /* gate */
   execute_strength_reduction,          /* execute */
   NULL,                                        /* sub */
index 5654c667547dca4ef0aebc11227e6316eeeaa782..2365e74a41a03b068b4b2a36d6e0e537253e17eb 100644 (file)
@@ -4462,6 +4462,7 @@ struct rtl_opt_pass pass_rtl_ifcvt =
  {
   RTL_PASS,
   "ce1",                                /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_if_conversion,            /* gate */
   rest_of_handle_if_conversion,         /* execute */
   NULL,                                 /* sub */
@@ -4499,6 +4500,7 @@ struct rtl_opt_pass pass_if_after_combine =
  {
   RTL_PASS,
   "ce2",                                /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_if_after_combine,         /* gate */
   rest_of_handle_if_after_combine,      /* execute */
   NULL,                                 /* sub */
@@ -4535,6 +4537,7 @@ struct rtl_opt_pass pass_if_after_reload =
  {
   RTL_PASS,
   "ce3",                                /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_if_after_reload,          /* gate */
   rest_of_handle_if_after_reload,       /* execute */
   NULL,                                 /* sub */
index 594b6e6388b90ef67ef6c491173245fb79379dcb..003f8e011a05aa0457f93f13652485bc7d692b89 100644 (file)
@@ -143,6 +143,7 @@ struct rtl_opt_pass pass_initialize_regs =
  {
   RTL_PASS,
   "init-regs",                          /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_initialize_regs,                 /* gate */
   rest_of_handle_initialize_regs,       /* execute */
   NULL,                                 /* sub */
index 8f8053fa480453fdda0a504ae09b601e89ca82d6..456a0074a5fb5e83775957a3cdae777020964cd5 100644 (file)
@@ -2543,6 +2543,7 @@ struct ipa_opt_pass_d pass_ipa_cp =
  {
   IPA_PASS,
   "cp",                                /* name */
+  OPTGROUP_NONE,                /* optinfo_flags */
   cgraph_gate_cp,              /* gate */
   ipcp_driver,                 /* execute */
   NULL,                                /* sub */
index 3de1439ab523138a2d0273e49ee8144c30a00096..9db7f1c0958e782ec54995b3606de7d477d6de9f 100644 (file)
@@ -2655,6 +2655,7 @@ struct gimple_opt_pass pass_inline_parameters =
  {
   GIMPLE_PASS,
   "inline_param",                      /* name */
+  OPTGROUP_INLINE,                      /* optinfo_flags */
   NULL,                                        /* gate */
   compute_inline_parameters_for_current,/* execute */
   NULL,                                        /* sub */
index cd58d332c9dd77fdc591c027cd857e3436c8e60b..5154273e371d4d9a25620b80ee507c6132de740f 100644 (file)
@@ -2019,6 +2019,7 @@ struct gimple_opt_pass pass_early_inline =
  {
   GIMPLE_PASS,
   "einline",                           /* name */
+  OPTGROUP_INLINE,                      /* optinfo_flags */
   NULL,                                        /* gate */
   early_inliner,                       /* execute */
   NULL,                                        /* sub */
@@ -2051,6 +2052,7 @@ struct ipa_opt_pass_d pass_ipa_inline =
  {
   IPA_PASS,
   "inline",                            /* name */
+  OPTGROUP_INLINE,                      /* optinfo_flags */
   gate_ipa_inline,                     /* gate */
   ipa_inline,                          /* execute */
   NULL,                                        /* sub */
index c4f23d9e1c394eb2955adcf00d9df89f9ee49c41..58f9e5a11da1895c969325e1f4398072f1a614de 100644 (file)
@@ -1497,6 +1497,7 @@ struct ipa_opt_pass_d pass_ipa_pure_const =
  {
   IPA_PASS,
   "pure-const",                                /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_pure_const,                     /* gate */
   propagate,                           /* execute */
   NULL,                                        /* sub */
@@ -1662,6 +1663,7 @@ struct gimple_opt_pass pass_local_pure_const =
  {
   GIMPLE_PASS,
   "local-pure-const",                  /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_pure_const,                     /* gate */
   local_pure_const,                    /* execute */
   NULL,                                        /* sub */
index a17d75b890a989d24a574845279565fb6bddeee4..06dc18b230260f1c8da828f2ba941bb9c979127a 100644 (file)
@@ -1181,6 +1181,7 @@ struct ipa_opt_pass_d pass_ipa_reference =
  {
   IPA_PASS,
   "static-var",                                /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_reference,                      /* gate */
   propagate,                           /* execute */
   NULL,                                        /* sub */
index 6750c11381a7bbe7743162ad58d62bcb45bd0bf2..440b3f920558cff89a47ea4c16032bdf1eae927b 100644 (file)
@@ -1601,6 +1601,7 @@ struct gimple_opt_pass pass_split_functions =
  {
   GIMPLE_PASS,
   "fnsplit",                           /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_split_functions,                        /* gate */
   execute_split_functions,             /* execute */
   NULL,                                        /* sub */
@@ -1642,6 +1643,7 @@ struct gimple_opt_pass pass_feedback_split_functions =
  {
   GIMPLE_PASS,
   "feedback_fnsplit",                  /* name */
+  OPTGROUP_NONE,                      /* optinfo_flags */
   gate_feedback_split_functions,       /* gate */
   execute_feedback_split_functions,    /* execute */
   NULL,                                        /* sub */
index e5737f4d027237344838658c6e326e389d96a79c..641c54d389b9411038623049adfd5ebfd62a8036 100644 (file)
--- a/gcc/ipa.c
+++ b/gcc/ipa.c
@@ -948,6 +948,7 @@ struct simple_ipa_opt_pass pass_ipa_function_and_variable_visibility =
  {
   SIMPLE_IPA_PASS,
   "visibility",                                /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   local_function_and_variable_visibility,/* execute */
   NULL,                                        /* sub */
@@ -977,6 +978,7 @@ struct simple_ipa_opt_pass pass_ipa_free_inline_summary =
  {
   SIMPLE_IPA_PASS,
   "*free_inline_summary",              /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   free_inline_summary,                 /* execute */
   NULL,                                        /* sub */
@@ -1015,6 +1017,7 @@ struct ipa_opt_pass_d pass_ipa_whole_program_visibility =
  {
   IPA_PASS,
   "whole-program",                     /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_whole_program_function_and_variable_visibility,/* gate */
   whole_program_function_and_variable_visibility,/* execute */
   NULL,                                        /* sub */
@@ -1098,6 +1101,7 @@ struct ipa_opt_pass_d pass_ipa_profile =
  {
   IPA_PASS,
   "profile_estimate",                  /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_ipa_profile,                    /* gate */
   ipa_profile,                         /* execute */
   NULL,                                        /* sub */
@@ -1408,6 +1412,7 @@ struct ipa_opt_pass_d pass_ipa_cdtor_merge =
  {
   IPA_PASS,
   "cdtor",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_ipa_cdtor_merge,                        /* gate */
   ipa_cdtor_merge,                     /* execute */
   NULL,                                        /* sub */
index aeef5c4b9244ad3b551114a00d10e85e80c245f9..6cd3f5465fd2939287ef7d88fa5b0502830a1dcb 100644 (file)
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -4716,6 +4716,7 @@ struct rtl_opt_pass pass_ira =
  {
   RTL_PASS,
   "ira",                                /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   rest_of_handle_ira,                  /* execute */
   NULL,                                 /* sub */
@@ -4742,6 +4743,7 @@ struct rtl_opt_pass pass_reload =
  {
   RTL_PASS,
   "reload",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   rest_of_handle_reload,               /* execute */
   NULL,                                 /* sub */
index acc96341d651ba030facec37ca249d15106585b0..70da7c8c2846f11877a9240c023201d9e5ebab1e 100644 (file)
@@ -146,6 +146,7 @@ struct rtl_opt_pass pass_cleanup_barriers =
  {
   RTL_PASS,
   "barriers",                           /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   cleanup_barriers,                     /* execute */
   NULL,                                 /* sub */
index 438c66e0400b95e12f79666dd3b633b68cac97b6..f140686ba1168534b3ee8137a0cf3e2cdb4cb8e2 100644 (file)
@@ -189,6 +189,7 @@ struct rtl_opt_pass pass_loop2 =
  {
   RTL_PASS,
   "loop2",                              /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_handle_loop2,                   /* gate */
   NULL,                                 /* execute */
   NULL,                                 /* sub */
@@ -225,6 +226,7 @@ struct rtl_opt_pass pass_rtl_loop_init =
  {
   RTL_PASS,
   "loop2_init",                           /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   NULL,                                 /* gate */
   rtl_loop_init,                        /* execute */
   NULL,                                 /* sub */
@@ -265,6 +267,7 @@ struct rtl_opt_pass pass_rtl_loop_done =
  {
   RTL_PASS,
   "loop2_done",                          /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   NULL,                                 /* gate */
   rtl_loop_done,                        /* execute */
   NULL,                                 /* sub */
@@ -301,6 +304,7 @@ struct rtl_opt_pass pass_rtl_move_loop_invariants =
  {
   RTL_PASS,
   "loop2_invariant",                    /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_rtl_move_loop_invariants,        /* gate */
   rtl_move_loop_invariants,             /* execute */
   NULL,                                 /* sub */
@@ -337,6 +341,7 @@ struct rtl_opt_pass pass_rtl_unswitch =
  {
   RTL_PASS,
   "loop2_unswitch",                      /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_rtl_unswitch,                    /* gate */
   rtl_unswitch,                         /* execute */
   NULL,                                 /* sub */
@@ -385,6 +390,7 @@ struct rtl_opt_pass pass_rtl_unroll_and_peel_loops =
  {
   RTL_PASS,
   "loop2_unroll",                        /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_rtl_unroll_and_peel_loops,       /* gate */
   rtl_unroll_and_peel_loops,            /* execute */
   NULL,                                 /* sub */
@@ -426,6 +432,7 @@ struct rtl_opt_pass pass_rtl_doloop =
  {
   RTL_PASS,
   "loop2_doloop",                        /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_rtl_doloop,                      /* gate */
   rtl_doloop,                           /* execute */
   NULL,                                 /* sub */
index 06c0b577a0297301ea77f7fa7ccf8f94e909fb46..4d1830c8239e23d1d236c046468e200e2f611f8e 100644 (file)
@@ -1665,6 +1665,7 @@ struct rtl_opt_pass pass_lower_subreg =
  {
   RTL_PASS,
   "subreg1",                           /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_lower_subreg,             /* gate */
   rest_of_handle_lower_subreg,          /* execute */
   NULL,                                 /* sub */
@@ -1685,6 +1686,7 @@ struct rtl_opt_pass pass_lower_subreg2 =
  {
   RTL_PASS,
   "subreg2",                           /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_lower_subreg,             /* gate */
   rest_of_handle_lower_subreg2,          /* execute */
   NULL,                                 /* sub */
index 4467eb49e5aba28679ed73ba64a3a771f4c79104..6b689ee5ba170468691167bd7efeef7f4cd03528 100644 (file)
@@ -1009,6 +1009,7 @@ struct ipa_opt_pass_d pass_ipa_lto_gimple_out =
  {
   IPA_PASS,
   "lto_gimple_out",                    /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_lto_out,                                /* gate */
   NULL,                                        /* execute */
   NULL,                                        /* sub */
@@ -1424,6 +1425,7 @@ struct ipa_opt_pass_d pass_ipa_lto_finish_out =
  {
   IPA_PASS,
   "lto_decls_out",                     /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_lto_out,                                /* gate */
   NULL,                                        /* execute */
   NULL,                                        /* sub */
index 61afdc8783543b9c9e0b67680602830c5924b91b..d8f8ba5d2ae4b6e5fecc986a39cc067c3194b586 100644 (file)
@@ -763,6 +763,7 @@ struct rtl_opt_pass pass_mode_switching =
  {
   RTL_PASS,
   "mode_sw",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_mode_switching,                  /* gate */
   rest_of_handle_mode_switching,        /* execute */
   NULL,                                 /* sub */
index 88ac28d5907c175558d042ad2d5b985203d9a0a3..1979f440c34d568b09a8709ed5ec1977cc023af6 100644 (file)
@@ -3364,6 +3364,7 @@ struct rtl_opt_pass pass_sms =
  {
   RTL_PASS,
   "sms",                                /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_sms,                      /* gate */
   rest_of_handle_sms,                   /* execute */
   NULL,                                 /* sub */
index 4d32fb6d35d73f2a4b73e43f1245f1d76154cb48..a59841384ca762889fc53053e4cb1b94e82df4a8 100644 (file)
@@ -5753,6 +5753,7 @@ struct gimple_opt_pass pass_expand_omp =
  {
   GIMPLE_PASS,
   "ompexp",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_expand_omp,                     /* gate */
   execute_expand_omp,                  /* execute */
   NULL,                                        /* sub */
@@ -6927,6 +6928,7 @@ struct gimple_opt_pass pass_lower_omp =
  {
   GIMPLE_PASS,
   "omplower",                          /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   execute_lower_omp,                   /* execute */
   NULL,                                        /* sub */
@@ -7190,6 +7192,7 @@ struct gimple_opt_pass pass_diagnose_omp_blocks =
   {
     GIMPLE_PASS,
     "*diagnose_omp_blocks",            /* name */
+    OPTGROUP_NONE,                      /* optinfo_flags */
     gate_diagnose_omp_blocks,          /* gate */
     diagnose_omp_structured_block_errors,      /* execute */
     NULL,                              /* sub */
index ccbfeef247fe8889f223da00d4315b8284680d69..5ebc6309e6ba2d808a19b4acd53aa20cc3e6b685 100644 (file)
@@ -240,7 +240,7 @@ read_cmdline_options (struct gcc_options *opts, struct gcc_options *opts_set,
    REPORT_VECTORIZED_LOCATIONS ==> "-optimized"
    REPORT_UNVECTORIZED_LOCATIONS ==> "-missed"
 
-   Any higher verbosity levels get mapped to "-optall" flags.  */
+   Any higher verbosity levels get mapped to "-all" flags.  */
 
 static void
 dump_remap_tree_vectorizer_verbose (const char *arg)
@@ -259,7 +259,7 @@ dump_remap_tree_vectorizer_verbose (const char *arg)
       remapped_opt_info = "missed";
       break;
     default:
-      remapped_opt_info = "optall";
+      remapped_opt_info = "all";
       break;
     }
 
@@ -390,7 +390,7 @@ handle_common_deferred_options (void)
 
         case OPT_fopt_info_:
          if (!opt_info_switch_p (opt->arg))
-           error ("unrecognized command line option %<-fopt-info%s%>",
+           error ("unrecognized command line option %<-fopt-info-%s%>",
                    opt->arg);
           break;
 
index 7ab58aa381bacede67dd0c020827f76270b9d8c5..67aae52391c9698ea91ff7f0b8b7115e6a3dfa30 100644 (file)
@@ -103,7 +103,6 @@ debug_pass (void)
 
 
 /* Global variables used to communicate with passes.  */
-int dump_flags;
 bool in_gimple_form;
 bool first_pass_instance;
 
@@ -285,6 +284,7 @@ struct simple_ipa_opt_pass pass_early_local_passes =
  {
   SIMPLE_IPA_PASS,
   "early_local_cleanups",              /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_all_early_local_passes,         /* gate */
   execute_all_early_local_passes,      /* execute */
   NULL,                                        /* sub */
@@ -314,6 +314,7 @@ static struct gimple_opt_pass pass_all_early_optimizations =
  {
   GIMPLE_PASS,
   "early_optimizations",               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_all_early_optimizations,                /* gate */
   NULL,                                        /* execute */
   NULL,                                        /* sub */
@@ -341,6 +342,7 @@ static struct gimple_opt_pass pass_all_optimizations =
  {
   GIMPLE_PASS,
   "*all_optimizations",                        /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_all_optimizations,              /* gate */
   NULL,                                        /* execute */
   NULL,                                        /* sub */
@@ -368,6 +370,7 @@ static struct gimple_opt_pass pass_all_optimizations_g =
  {
   GIMPLE_PASS,
   "*all_optimizations_g",              /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_all_optimizations_g,            /* gate */
   NULL,                                        /* execute */
   NULL,                                        /* sub */
@@ -395,6 +398,7 @@ static struct rtl_opt_pass pass_rest_of_compilation =
  {
   RTL_PASS,
   "*rest_of_compilation",               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_rest_of_compilation,             /* gate */
   NULL,                                 /* execute */
   NULL,                                 /* sub */
@@ -420,6 +424,7 @@ static struct rtl_opt_pass pass_postreload =
  {
   RTL_PASS,
   "*all-postreload",                        /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_postreload,                      /* gate */
   NULL,                                 /* execute */
   NULL,                                 /* sub */
@@ -487,6 +492,7 @@ register_one_dump_file (struct opt_pass *pass)
   const char *name, *full_name, *prefix;
   char num[10];
   int flags, id;
+  int optgroup_flags = OPTGROUP_NONE;
 
   /* See below in next_pass_1.  */
   num[0] = '\0';
@@ -503,15 +509,26 @@ register_one_dump_file (struct opt_pass *pass)
   name = name ? name + 1 : pass->name;
   dot_name = concat (".", name, num, NULL);
   if (pass->type == SIMPLE_IPA_PASS || pass->type == IPA_PASS)
-    prefix = "ipa-", flags = TDF_IPA;
+    {
+      prefix = "ipa-";
+      flags = TDF_IPA;
+      optgroup_flags |= OPTGROUP_IPA;
+    }
   else if (pass->type == GIMPLE_PASS)
-    prefix = "tree-", flags = TDF_TREE;
+    {
+      prefix = "tree-";
+      flags = TDF_TREE;
+    }
   else
-    prefix = "rtl-", flags = TDF_RTL;
+    {
+      prefix = "rtl-";
+      flags = TDF_RTL;
+    }
 
   flag_name = concat (prefix, name, num, NULL);
   glob_name = concat (prefix, name, NULL);
-  id = dump_register (dot_name, flag_name, glob_name, flags);
+  optgroup_flags |= pass->optinfo_flags;
+  id = dump_register (dot_name, flag_name, glob_name, flags, optgroup_flags);
   set_pass_for_id (id, pass);
   full_name = concat (prefix, pass->name, num, NULL);
   register_pass_name (pass, full_name);
index ab4f851b75677bea91c30e085ed2de305b202f70..6a5ea7d37f4476886f822b7ffa9f829583a16e3e 100644 (file)
@@ -1328,6 +1328,7 @@ struct rtl_opt_pass pass_gcse2 =
  {
   RTL_PASS,
   "gcse2",                              /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_gcse2,                    /* gate */
   rest_of_handle_gcse2,                 /* execute */
   NULL,                                 /* sub */
index 38be0ab45a5d9438acb8808a0e22ce16a197349f..d268218523685980cf2e581061c22422b0c47bda 100644 (file)
@@ -2289,6 +2289,7 @@ struct rtl_opt_pass pass_postreload_cse =
  {
   RTL_PASS,
   "postreload",                         /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_postreload,               /* gate */
   rest_of_handle_postreload,            /* execute */
   NULL,                                 /* sub */
index 49173998c87efe9a1da722d1238af66132651067..9fc3e71e7b28932489ebebb1a196fe139c716f2e 100644 (file)
@@ -2823,6 +2823,7 @@ struct gimple_opt_pass pass_profile =
  {
   GIMPLE_PASS,
   "profile_estimate",                  /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_estimate_probability,           /* gate */
   tree_estimate_probability_driver,    /* execute */
   NULL,                                        /* sub */
@@ -2842,6 +2843,7 @@ struct gimple_opt_pass pass_strip_predict_hints =
  {
   GIMPLE_PASS,
   "*strip_predict_hints",              /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   strip_predict_hints,                 /* execute */
   NULL,                                        /* sub */
index 4186183ee54227ce8e5cc2b646d50c308d6ef6db..2cc45c9fc1d482c7806e1b82b65642ef14d6390e 100644 (file)
@@ -3742,6 +3742,7 @@ struct rtl_opt_pass pass_peephole2 =
  {
   RTL_PASS,
   "peephole2",                          /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_peephole2,                /* gate */
   rest_of_handle_peephole2,             /* execute */
   NULL,                                 /* sub */
@@ -3769,6 +3770,7 @@ struct rtl_opt_pass pass_split_all_insns =
  {
   RTL_PASS,
   "split1",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   rest_of_handle_split_all_insns,       /* execute */
   NULL,                                 /* sub */
@@ -3799,6 +3801,7 @@ struct rtl_opt_pass pass_split_after_reload =
  {
   RTL_PASS,
   "split2",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   rest_of_handle_split_after_reload,    /* execute */
   NULL,                                 /* sub */
@@ -3843,6 +3846,7 @@ struct rtl_opt_pass pass_split_before_regstack =
  {
   RTL_PASS,
   "split3",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_split_before_regstack,    /* gate */
   rest_of_handle_split_before_regstack, /* execute */
   NULL,                                 /* sub */
@@ -3881,6 +3885,7 @@ struct rtl_opt_pass pass_split_before_sched2 =
  {
   RTL_PASS,
   "split4",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_split_before_sched2,      /* gate */
   rest_of_handle_split_before_sched2,   /* execute */
   NULL,                                 /* sub */
@@ -3912,6 +3917,7 @@ struct rtl_opt_pass pass_split_for_shorten_branches =
  {
   RTL_PASS,
   "split5",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_do_final_split,                  /* gate */
   split_all_insns_noflow,               /* execute */
   NULL,                                 /* sub */
index a2ede97b72e36a777fcf944a4724892a2d490e80..1566752400050bb803d1d665d0f393fe5485748a 100644 (file)
--- a/gcc/ree.c
+++ b/gcc/ree.c
@@ -949,6 +949,7 @@ struct rtl_opt_pass pass_ree =
  {
   RTL_PASS,
   "ree",                                /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_ree,                      /* gate */
   rest_of_handle_ree,                   /* execute */
   NULL,                                 /* sub */
index 797586567cddb89f9931f8166a7883ebb2f3e80f..c23c770af9308aa6c8989402f82203b2d97f80cd 100644 (file)
@@ -3305,6 +3305,7 @@ struct rtl_opt_pass pass_stack_regs =
  {
   RTL_PASS,
   "*stack_regs",                        /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_stack_regs,               /* gate */
   NULL,                                        /* execute */
   NULL,                                 /* sub */
@@ -3336,6 +3337,7 @@ struct rtl_opt_pass pass_stack_regs_run =
  {
   RTL_PASS,
   "stack",                              /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   rest_of_handle_stack_regs,            /* execute */
   NULL,                                 /* sub */
index c2fc79dbfdb4966085e160fff85906aaf88edcff..b91f5467a281ddd46c90ff8c610b302094dba094 100644 (file)
@@ -1235,6 +1235,7 @@ struct rtl_opt_pass pass_cprop_hardreg =
  {
   RTL_PASS,
   "cprop_hardreg",                      /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_cprop,                    /* gate */
   copyprop_hardreg_forward,             /* execute */
   NULL,                                 /* sub */
index 076036c5c5744da8b60f6d91ec3dec39ec00f639..9fba9c3237b2f3c9a68a7e48acb748c96acf36ac 100644 (file)
@@ -972,6 +972,7 @@ struct rtl_opt_pass pass_reginfo_init =
  {
   RTL_PASS,
   "reginfo",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   reginfo_init,                         /* execute */
   NULL,                                 /* sub */
index 408366d9d2b4e13f8e694c5063be43c194d9c926..29f6e6546b69710814df99e152a00d11aa0824e8 100644 (file)
@@ -1369,6 +1369,7 @@ struct rtl_opt_pass pass_regmove =
  {
   RTL_PASS,
   "regmove",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_regmove,                  /* gate */
   regmove_optimize,                    /* execute */
   NULL,                                 /* sub */
index 9a6545abd65f303790962925a5600900018e5992..10787a23db1c346becd6ccc582851413e0b119be 100644 (file)
@@ -1842,6 +1842,7 @@ struct rtl_opt_pass pass_regrename =
  {
   RTL_PASS,
   "rnreg",                              /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_regrename,                /* gate */
   regrename_optimize,                   /* execute */
   NULL,                                 /* sub */
index e07b8341ed4fbf7ffd91b030308831ac1d14035d..aa6ad781f37fd14862b2b8b97740999fb7eb0ace 100644 (file)
@@ -4122,6 +4122,7 @@ struct rtl_opt_pass pass_delay_slots =
  {
   RTL_PASS,
   "dbr",                                /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_delay_slots,              /* gate */
   rest_of_handle_delay_slots,           /* execute */
   NULL,                                 /* sub */
@@ -4156,6 +4157,7 @@ struct rtl_opt_pass pass_machine_reorg =
  {
   RTL_PASS,
   "mach",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_machine_reorg,            /* gate */
   rest_of_handle_machine_reorg,         /* execute */
   NULL,                                 /* sub */
index a0e62b6cc4b56b223ddb58864696f3f6446045d9..3fb370cd18aa506de0bd1f8bb9e1c624373f2395 100644 (file)
@@ -3575,6 +3575,7 @@ struct rtl_opt_pass pass_sched =
  {
   RTL_PASS,
   "sched1",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_sched,                    /* gate */
   rest_of_handle_sched,                 /* execute */
   NULL,                                 /* sub */
@@ -3596,6 +3597,7 @@ struct rtl_opt_pass pass_sched2 =
  {
   RTL_PASS,
   "sched2",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_sched2,                   /* gate */
   rest_of_handle_sched2,                /* execute */
   NULL,                                 /* sub */
index 1b339cd45fab6e71f8fd63bded85861120c6de11..3f126c35b1c4ef117d37ca54b096568b06c61ee9 100644 (file)
@@ -96,6 +96,7 @@ struct rtl_opt_pass pass_stack_ptr_mod =
  {
   RTL_PASS,
   "*stack_ptr_mod",                     /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                 /* gate */
   rest_of_handle_stack_ptr_mod,         /* execute */
   NULL,                                 /* sub */
index 1b3eefbd263a8327cb22a3432d31c17bc12a1c9d..f0687c78e4c080230a07e1a3190266d13828173d 100644 (file)
@@ -246,7 +246,7 @@ void
 statistics_early_init (void)
 {
   statistics_dump_nr = dump_register (".statistics", "statistics",
-                                     "statistics", TDF_TREE);
+                                     "statistics", TDF_TREE, OPTGROUP_NONE);
 }
 
 /* Init the statistics.  */
index f6712f49bc35668c04a102b7dd1e00da230b47d7..20bc24e208ca14a53fc3b5a6139a401e0a532875 100644 (file)
@@ -1238,6 +1238,7 @@ struct rtl_opt_pass pass_rtl_store_motion =
  {
   RTL_PASS,
   "store_motion",                       /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_rtl_store_motion,                /* gate */
   execute_rtl_store_motion,            /* execute */
   NULL,                                 /* sub */
index 926b1796c44e91257b7ad7591b25351ea3082af8..04a768c6ebf0f003ff7d5eb9c5a8daa1da8de8e9 100644 (file)
@@ -1,3 +1,10 @@
+2012-11-01  Sharad Singhai  <singhai@google.com>
+
+       * testsuite/gcc.dg/plugin/selfassign.c: Add opgtroup_flags initializer.
+       * testsuite/gcc.dg/plugin/one_time_plugin.c: Likewise.
+       * testsuite/g++.dg/plugin/selfassign.c: Likewise.
+       * testsuite/g++.dg/plugin/dumb_plugin.c: Likewise.
+
 2012-10-31  Dehao Chen  <dehao@google.com>
 
        * g++.dg/debug/dwarf2/block.C: New testcase.
index 8913e8694e3475cceb1c8cbe8b3234691bfb18f0..0f15140068c6e245c90b3596b2fd4dc2bfc18084 100644 (file)
@@ -62,6 +62,7 @@ static struct gimple_opt_pass pass_dumb_plugin_example =
   {
     GIMPLE_PASS,
     "dumb_plugin_example",                /* name */
+    OPTGROUP_NONE,                        /* optinfo_flags */
     gate_dumb_plugin_example,             /* gate */
     execute_dumb_plugin_example,          /* execute */
     NULL,                                 /* sub */
index 2c417744f9e6b5d013420387b8bc6cc77f417d04..37a0a979cb7cfc45ac4c7ad9d1f82f8476d6413b 100644 (file)
@@ -268,6 +268,7 @@ static struct gimple_opt_pass pass_warn_self_assign =
   {
     GIMPLE_PASS,
     "warn_self_assign",                   /* name */
+    OPTGROUP_NONE,                        /* optinfo_flags */
     gate_warn_self_assign,                /* gate */
     execute_warn_self_assign,             /* execute */
     NULL,                                 /* sub */
index 4bd99f128305352523c8f5b6193484f73e72ae47..45e6257c070ba808e71c25950a9d948c5926c582 100644 (file)
@@ -32,6 +32,7 @@ struct gimple_opt_pass one_pass =
   {
   GIMPLE_PASS,
   "cfg",                           /* name */
+  OPTGROUP_NONE,                         /* optinfo_flags */
   one_pass_gate,                         /* gate */
   one_pass_exec,       /* execute */
   NULL,                                 /* sub */
index 2c417744f9e6b5d013420387b8bc6cc77f417d04..37a0a979cb7cfc45ac4c7ad9d1f82f8476d6413b 100644 (file)
@@ -268,6 +268,7 @@ static struct gimple_opt_pass pass_warn_self_assign =
   {
     GIMPLE_PASS,
     "warn_self_assign",                   /* name */
+    OPTGROUP_NONE,                        /* optinfo_flags */
     gate_warn_self_assign,                /* gate */
     execute_warn_self_assign,             /* execute */
     NULL,                                 /* sub */
index cbd5aacf55a65b3101f114ee6713802e4369e1f5..55cff112aebbf45c6f23c2ad1bad323e4ee4a99d 100644 (file)
@@ -403,6 +403,7 @@ struct gimple_opt_pass pass_tracer =
  {
   GIMPLE_PASS,
   "tracer",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_tracer,                          /* gate */
   tracer,                               /* execute */
   NULL,                                 /* sub */
index 211c45e48fb70d2c4a216c6ae77b8854c4b810c5..b9774d4afe8ebf92609326078bec3b440e35b44f 100644 (file)
@@ -798,6 +798,7 @@ struct gimple_opt_pass pass_diagnose_tm_blocks =
   {
     GIMPLE_PASS,
     "*diagnose_tm_blocks",             /* name */
+    OPTGROUP_NONE,                      /* optinfo_flags */
     gate_tm,                           /* gate */
     diagnose_tm_blocks,                        /* execute */
     NULL,                              /* sub */
@@ -1738,6 +1739,7 @@ struct gimple_opt_pass pass_lower_tm =
  {
   GIMPLE_PASS,
   "tmlower",                           /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_tm,                             /* gate */
   execute_lower_tm,                    /* execute */
   NULL,                                        /* sub */
@@ -1985,6 +1987,7 @@ struct gimple_opt_pass pass_tm_init =
  {
   GIMPLE_PASS,
   "*tminit",                           /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_tm_init,                                /* gate */
   NULL,                                        /* execute */
   NULL,                                        /* sub */
@@ -2571,6 +2574,7 @@ struct gimple_opt_pass pass_tm_mark =
  {
   GIMPLE_PASS,
   "tmmark",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   execute_tm_mark,                     /* execute */
   NULL,                                        /* sub */
@@ -2848,6 +2852,7 @@ struct gimple_opt_pass pass_tm_edges =
  {
   GIMPLE_PASS,
   "tmedge",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   execute_tm_edges,                    /* execute */
   NULL,                                        /* sub */
@@ -3513,6 +3518,7 @@ struct gimple_opt_pass pass_tm_memopt =
  {
   GIMPLE_PASS,
   "tmmemopt",                          /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_tm_memopt,                      /* gate */
   execute_tm_memopt,                   /* execute */
   NULL,                                        /* sub */
@@ -5067,6 +5073,7 @@ struct simple_ipa_opt_pass pass_ipa_tm =
  {
   SIMPLE_IPA_PASS,
   "tmipa",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_tm,                             /* gate */
   ipa_tm_execute,                      /* execute */
   NULL,                                        /* sub */
index 2a3fd873b59ef2978a1eda1cb77ca12c77c2578e..12357eb15034557ea322b3dfc6dc5851002e93e2 100644 (file)
@@ -920,6 +920,7 @@ struct gimple_opt_pass pass_call_cdce =
  {
   GIMPLE_PASS,
   "cdce",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_call_cdce,                       /* gate */
   tree_call_cdce,                       /* execute */
   NULL,                                 /* sub */
index 7fc5a534dc7cdf67726d3cbb73a2558d6214e508..28cdca3df0d68623cfa0f6ad477b1f8e9942567f 100644 (file)
@@ -247,6 +247,7 @@ struct gimple_opt_pass pass_build_cfg =
  {
   GIMPLE_PASS,
   "cfg",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   execute_build_cfg,                   /* execute */
   NULL,                                        /* sub */
@@ -7705,6 +7706,7 @@ struct gimple_opt_pass pass_split_crit_edges =
  {
   GIMPLE_PASS,
   "crited",                          /* name */
+  OPTGROUP_NONE,                 /* optinfo_flags */
   NULL,                          /* gate */
   split_critical_edges,          /* execute */
   NULL,                          /* sub */
@@ -7858,6 +7860,7 @@ struct gimple_opt_pass pass_warn_function_return =
  {
   GIMPLE_PASS,
   "*warn_function_return",             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   execute_warn_function_return,                /* execute */
   NULL,                                        /* sub */
@@ -7894,6 +7897,7 @@ struct gimple_opt_pass pass_warn_function_noreturn =
  {
   GIMPLE_PASS,
   "*warn_function_noreturn",           /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_warn_function_noreturn,         /* gate */
   execute_warn_function_noreturn,      /* execute */
   NULL,                                        /* sub */
@@ -7992,6 +7996,7 @@ struct gimple_opt_pass pass_warn_unused_result =
   {
     GIMPLE_PASS,
     "*warn_unused_result",             /* name */
+    OPTGROUP_NONE,                        /* optinfo_flags */
     gate_warn_unused_result,           /* gate */
     run_warn_unused_result,            /* execute */
     NULL,                              /* sub */
index 9c5228614011bf4496957ad304c0d24946159494..412033d17a2a47bd4862a22d171d73a9837b8df5 100644 (file)
@@ -977,6 +977,7 @@ struct gimple_opt_pass pass_merge_phi =
  {
   GIMPLE_PASS,
   "mergephi",                  /* name */
+  OPTGROUP_NONE,                /* optinfo_flags */
   gate_merge_phi,              /* gate */
   merge_phi_nodes,             /* execute */
   NULL,                                /* sub */
index c6c5227e287ac03925a6a226a313bf8e6642ad5a..26bb25a19d93e3e9e951f05f130a975ee70d5b94 100644 (file)
@@ -1608,6 +1608,7 @@ struct gimple_opt_pass pass_lower_complex =
  {
   GIMPLE_PASS,
   "cplxlower",                         /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   0,                                   /* gate */
   tree_lower_complex,                  /* execute */
   NULL,                                        /* sub */
@@ -1638,6 +1639,7 @@ struct gimple_opt_pass pass_lower_complex_O0 =
  {
   GIMPLE_PASS,
   "cplxlower0",                                /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_no_optimization,                        /* gate */
   tree_lower_complex,                  /* execute */
   NULL,                                        /* sub */
index 960a966014e7c6ead0e5c6ddd640a9b9d721e6bd..a778be5f22c643b2c4fce7899193f20c57f58e4d 100644 (file)
@@ -2140,6 +2140,7 @@ struct gimple_opt_pass pass_lower_eh =
  {
   GIMPLE_PASS,
   "eh",                                        /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   lower_eh_constructs,                 /* execute */
   NULL,                                        /* sub */
@@ -2999,6 +3000,7 @@ struct gimple_opt_pass pass_refactor_eh =
  {
   GIMPLE_PASS,
   "ehopt",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_refactor_eh,                    /* gate */
   refactor_eh,                         /* execute */
   NULL,                                        /* sub */
@@ -3207,6 +3209,7 @@ struct gimple_opt_pass pass_lower_resx =
  {
   GIMPLE_PASS,
   "resx",                              /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_lower_resx,                     /* gate */
   execute_lower_resx,                  /* execute */
   NULL,                                        /* sub */
@@ -3503,6 +3506,7 @@ struct gimple_opt_pass pass_lower_eh_dispatch =
  {
   GIMPLE_PASS,
   "ehdisp",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_lower_eh_dispatch,              /* gate */
   execute_lower_eh_dispatch,           /* execute */
   NULL,                                        /* sub */
@@ -4326,6 +4330,7 @@ struct gimple_opt_pass pass_cleanup_eh = {
   {
    GIMPLE_PASS,
    "ehcleanup",                        /* name */
+   OPTGROUP_NONE,               /* optinfo_flags */
    gate_cleanup_eh,            /* gate */
    execute_cleanup_eh,         /* execute */
    NULL,                       /* sub */
index d2cd4ea79465741b434c1d1c279248271c6aac21..7b058b11771b1998c8bbc3050a91039cec80be56 100644 (file)
@@ -815,6 +815,7 @@ struct simple_ipa_opt_pass pass_ipa_lower_emutls =
  {
   SIMPLE_IPA_PASS,
   "emutls",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_emutls,                         /* gate */
   ipa_lower_emutls,                    /* execute */
   NULL,                                 /* sub */
index e9f65adddbd53d8f8aa3a01318e7141c3bab68f4..0afbcde91c28f5ce83e8f6e0a116b46b0a2851c8 100644 (file)
@@ -1859,6 +1859,7 @@ struct gimple_opt_pass pass_if_conversion =
  {
   GIMPLE_PASS,
   "ifcvt",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_tree_if_conversion,             /* gate */
   main_tree_if_conversion,             /* execute */
   NULL,                                        /* sub */
index b3e887b258f8394708d5f784135ad1e602c0a1c7..16c021473e13e8fb5138d03a8ad85ae8d09eee20 100644 (file)
@@ -2404,6 +2404,7 @@ struct gimple_opt_pass pass_build_ssa =
  {
   GIMPLE_PASS,
   "ssa",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   rewrite_into_ssa,                    /* execute */
   NULL,                                        /* sub */
index 1ffc434f4a4ad201a975f09d3bf23531671aea10..10bd29e3d5f738851d6d8dccc615bec4a28edf49 100644 (file)
@@ -1578,6 +1578,7 @@ struct gimple_opt_pass pass_loop_distribution =
  {
   GIMPLE_PASS,
   "ldist",                     /* name */
+  OPTGROUP_LOOP,                /* optinfo_flags */
   gate_tree_loop_distribution,  /* gate */
   tree_loop_distribution,       /* execute */
   NULL,                                /* sub */
index 775f8b9aa3decfff741f6a22a8bb4990614546f1..53fba71df390d4003165e9390addbc08e51ccf57 100644 (file)
@@ -1368,6 +1368,7 @@ struct gimple_opt_pass pass_mudflap_1 =
  {
   GIMPLE_PASS,
   "mudflap1",                           /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_mudflap,                         /* gate */
   execute_mudflap_function_decls,       /* execute */
   NULL,                                 /* sub */
@@ -1387,6 +1388,7 @@ struct gimple_opt_pass pass_mudflap_2 =
  {
   GIMPLE_PASS,
   "mudflap2",                           /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_mudflap,                         /* gate */
   execute_mudflap_function_ops,         /* execute */
   NULL,                                 /* sub */
index b7a41e1a8572c07699823e5dbf5fc82032b579a9..07cf00ff372a75a71fae843df21000de6581255e 100644 (file)
@@ -91,6 +91,7 @@ struct gimple_opt_pass pass_mudflap_1 =
  {
   GIMPLE_PASS,
   "mudflap1",                          /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_mudflap,                         /* gate */
   NULL,                                        /* execute */
   NULL,                                        /* sub */
@@ -110,6 +111,7 @@ struct gimple_opt_pass pass_mudflap_2 =
  {
   GIMPLE_PASS,
   "mudflap2",                          /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_mudflap,                         /* gate */
   NULL,                                        /* execute */
   NULL,                                        /* sub */
index f1c52d1a82711161610044bccd7b3e7cc8850797..c471a72ae2e775fd2181bd8d836103dcd24454ad 100644 (file)
@@ -275,6 +275,7 @@ struct gimple_opt_pass pass_nrv =
  {
   GIMPLE_PASS,
   "nrv",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_pass_return_slot,               /* gate */
   tree_nrv,                            /* execute */
   NULL,                                        /* sub */
@@ -360,6 +361,7 @@ struct gimple_opt_pass pass_return_slot =
  {
   GIMPLE_PASS,
   "retslot",                           /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   execute_return_slot_opt,             /* execute */
   NULL,                                        /* sub */
index 9a537f1c5fcddbc53290583cbe7adcf0a4367b56..ffc3fdd13597e68ebb459abc3bcee1c211863b3a 100644 (file)
@@ -1268,6 +1268,7 @@ struct gimple_opt_pass pass_object_sizes =
  {
   GIMPLE_PASS,
   "objsz",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   compute_object_sizes,                        /* execute */
   NULL,                                        /* sub */
index 3e7ca89e94da42976bb352fe9802a21dc861ba37..a918101a4db14b90c4602fc48ff132e793f95523 100644 (file)
@@ -95,6 +95,7 @@ struct gimple_opt_pass pass_cleanup_cfg_post_optimizing =
  {
   GIMPLE_PASS,
   "optimized",                         /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   execute_cleanup_cfg_post_optimizing, /* execute */
   NULL,                                        /* sub */
@@ -222,6 +223,7 @@ struct gimple_opt_pass pass_fixup_cfg =
  {
   GIMPLE_PASS,
   "*free_cfg_annotations",             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   execute_fixup_cfg,                   /* execute */
   NULL,                                        /* sub */
index 1627a844c90d9dc6d0dcaefac139a76c412b51d5..8ed2d986ada70904b9110dac67350e02dc37871a 100644 (file)
@@ -46,6 +46,9 @@ struct opt_pass
      name.  If the name starts with a star, no dump happens. */
   const char *name;
 
+  /* The -fopt-info optimization group flags as defined in dumpfile.h. */
+  unsigned int optinfo_flags;
+
   /* If non-null, this pass and all sub-passes are executed only if
      the function returns true.  */
   bool (*gate) (void);
index fa8173ecbaa5a2bb45a0ddafa8fe7be998b1b4ef..d004fac94db360c49fd28e9156f7509a539f7696 100644 (file)
@@ -568,6 +568,7 @@ struct simple_ipa_opt_pass pass_ipa_tree_profile =
  {
   SIMPLE_IPA_PASS,
   "profile",                          /* name */
+  OPTGROUP_NONE,                       /* optinfo_flags */
   gate_tree_profile_ipa,               /* gate */
   tree_profiling,                      /* execute */
   NULL,                                /* sub */
index bf1a0f209f6b568a916cc2f1fbee4f78e3663357..8dd5cb497c2498daf061f592fe33dcc44b6c1cfd 100644 (file)
@@ -3443,6 +3443,7 @@ struct gimple_opt_pass pass_sra_early =
  {
   GIMPLE_PASS,
   "esra",                              /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_intra_sra,                      /* gate */
   early_intra_sra,                     /* execute */
   NULL,                                        /* sub */
@@ -3464,6 +3465,7 @@ struct gimple_opt_pass pass_sra =
  {
   GIMPLE_PASS,
   "sra",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_intra_sra,                      /* gate */
   late_intra_sra,                      /* execute */
   NULL,                                        /* sub */
@@ -5006,6 +5008,7 @@ struct gimple_opt_pass pass_early_ipa_sra =
  {
   GIMPLE_PASS,
   "eipa_sra",                          /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   ipa_early_sra_gate,                  /* gate */
   ipa_early_sra,                       /* execute */
   NULL,                                        /* sub */
index 49a4c6fbe28318f715bc4117c61f87c1f6ab7f7f..cb6b62b7b97e3a830e585afd26673f7555e7bf32 100644 (file)
@@ -2123,6 +2123,7 @@ struct gimple_opt_pass pass_ccp =
  {
   GIMPLE_PASS,
   "ccp",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_ccp,                            /* gate */
   do_ssa_ccp,                          /* execute */
   NULL,                                        /* sub */
@@ -2507,6 +2508,7 @@ struct gimple_opt_pass pass_fold_builtins =
  {
   GIMPLE_PASS,
   "fab",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   execute_fold_all_builtins,           /* execute */
   NULL,                                        /* sub */
index 04a376ed970b04164c2be32b730388f37d090074..3dcbf7987c429a6e9cfd4df166d07cabc7c622cf 100644 (file)
@@ -828,6 +828,7 @@ struct gimple_opt_pass pass_copy_prop =
  {
   GIMPLE_PASS,
   "copyprop",                          /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_copy_prop,                      /* gate */
   execute_copy_prop,                   /* execute */
   NULL,                                        /* sub */
index 387e67bce6e98df0118b5bc12346b574dce38094..47bb9b87a9876f6c8fd8d3d05bd1284f262bd232 100644 (file)
@@ -443,6 +443,7 @@ struct gimple_opt_pass pass_rename_ssa_copies =
  {
   GIMPLE_PASS,
   "copyrename",                                /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_copyrename,                     /* gate */
   rename_ssa_copies,                   /* execute */
   NULL,                                        /* sub */
index 0a98d52edc92d14378b2fdc6659303c0efcc0d3f..35d67035a454126ec36261764261649a6fbeaf7d 100644 (file)
@@ -1651,6 +1651,7 @@ struct gimple_opt_pass pass_dce =
  {
   GIMPLE_PASS,
   "dce",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_dce,                            /* gate */
   tree_ssa_dce,                                /* execute */
   NULL,                                        /* sub */
@@ -1670,6 +1671,7 @@ struct gimple_opt_pass pass_dce_loop =
  {
   GIMPLE_PASS,
   "dceloop",                           /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_dce,                            /* gate */
   tree_ssa_dce_loop,                   /* execute */
   NULL,                                        /* sub */
@@ -1689,6 +1691,7 @@ struct gimple_opt_pass pass_cd_dce =
  {
   GIMPLE_PASS,
   "cddce",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_dce,                            /* gate */
   tree_ssa_cd_dce,                     /* execute */
   NULL,                                        /* sub */
index 19eca425775fd00af9c94dda05b14e70c1a09df3..7322b58aad1922c633c5541874587bea0c4151ef 100644 (file)
@@ -861,6 +861,7 @@ struct gimple_opt_pass pass_dominator =
  {
   GIMPLE_PASS,
   "dom",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_dominator,                      /* gate */
   tree_ssa_dominator_optimize,         /* execute */
   NULL,                                        /* sub */
@@ -3033,6 +3034,7 @@ struct gimple_opt_pass pass_phi_only_cprop =
  {
   GIMPLE_PASS,
   "phicprop",                           /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_dominator,                       /* gate */
   eliminate_degenerate_phis,            /* execute */
   NULL,                                 /* sub */
index f9a0b85fc12190760c7fe4410b842a78f374c235..55c37a094380f5f1858b34ea45e9e09d92e03ac4 100644 (file)
@@ -356,6 +356,7 @@ struct gimple_opt_pass pass_dse =
  {
   GIMPLE_PASS,
   "dse",                       /* name */
+  OPTGROUP_NONE,                /* optinfo_flags */
   gate_dse,                    /* gate */
   tree_ssa_dse,                        /* execute */
   NULL,                                /* sub */
index f193fa90208fed51c3ff4b25cc8892351814ff24..246fc842ebea1b376bd8edb2187a6e4fb7124852 100644 (file)
@@ -3122,6 +3122,7 @@ struct gimple_opt_pass pass_forwprop =
  {
   GIMPLE_PASS,
   "forwprop",                  /* name */
+  OPTGROUP_NONE,                /* optinfo_flags */
   gate_forwprop,               /* gate */
   ssa_forward_propagate_and_combine,   /* execute */
   NULL,                                /* sub */
index 5c61f7f3b01fca65ff034dbf8afde40a6230cbfc..19143b177c392815c00b67db522ca73d5aae89e2 100644 (file)
@@ -653,6 +653,7 @@ struct gimple_opt_pass pass_tree_ifcombine =
  {
   GIMPLE_PASS,
   "ifcombine",                 /* name */
+  OPTGROUP_NONE,                /* optinfo_flags */
   gate_ifcombine,              /* gate */
   tree_ssa_ifcombine,          /* execute */
   NULL,                                /* sub */
index c43819ab3d878b8c4da0f4178f1ff91ca8eae621..7afcc914171dd272140c67ce7e3fd28cf2ca7f8a 100644 (file)
@@ -260,6 +260,7 @@ struct gimple_opt_pass pass_ch =
  {
   GIMPLE_PASS,
   "ch",                                        /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_ch,                             /* gate */
   copy_loop_headers,                   /* execute */
   NULL,                                        /* sub */
index 6dc64b036c13603bee32445b11082523b4b86adb..99219b68ef1e2f969d46cc7b32b419be8fb46185 100644 (file)
@@ -47,6 +47,7 @@ struct gimple_opt_pass pass_tree_loop =
  {
   GIMPLE_PASS,
   "loop",                              /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_tree_loop,                      /* gate */
   NULL,                                        /* execute */
   NULL,                                        /* sub */
@@ -82,6 +83,7 @@ struct gimple_opt_pass pass_tree_loop_init =
  {
   GIMPLE_PASS,
   "loopinit",                          /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   NULL,                                        /* gate */
   tree_ssa_loop_init,                  /* execute */
   NULL,                                        /* sub */
@@ -118,6 +120,7 @@ struct gimple_opt_pass pass_lim =
  {
   GIMPLE_PASS,
   "lim",                               /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_tree_ssa_loop_im,               /* gate */
   tree_ssa_loop_im,                    /* execute */
   NULL,                                        /* sub */
@@ -154,6 +157,7 @@ struct gimple_opt_pass pass_tree_unswitch =
  {
   GIMPLE_PASS,
   "unswitch",                          /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_tree_ssa_loop_unswitch,         /* gate */
   tree_ssa_loop_unswitch,              /* execute */
   NULL,                                        /* sub */
@@ -190,6 +194,7 @@ struct gimple_opt_pass pass_predcom =
  {
   GIMPLE_PASS,
   "pcom",                              /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_tree_predictive_commoning,      /* gate */
   run_tree_predictive_commoning,       /* execute */
   NULL,                                        /* sub */
@@ -226,6 +231,8 @@ struct gimple_opt_pass pass_vectorize =
  {
   GIMPLE_PASS,
   "vect",                               /* name */
+  OPTGROUP_LOOP
+  | OPTGROUP_VEC,                       /* optinfo_flags */
   gate_tree_vectorize,                  /* gate */
   tree_vectorize,                       /* execute */
   NULL,                                 /* sub */
@@ -275,6 +282,7 @@ struct gimple_opt_pass pass_graphite =
  {
   GIMPLE_PASS,
   "graphite0",                         /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_graphite_transforms,            /* gate */
   NULL,                                        /* execute */
   NULL,                                        /* sub */
@@ -294,6 +302,7 @@ struct gimple_opt_pass pass_graphite_transforms =
  {
   GIMPLE_PASS,
   "graphite",                          /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_graphite_transforms,            /* gate */
   graphite_transforms,                 /* execute */
   NULL,                                        /* sub */
@@ -331,6 +340,7 @@ struct gimple_opt_pass pass_check_data_deps =
  {
   GIMPLE_PASS,
   "ckdd",                              /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_check_data_deps,                        /* gate */
   check_data_deps,                     /* execute */
   NULL,                                        /* sub */
@@ -367,6 +377,7 @@ struct gimple_opt_pass pass_iv_canon =
  {
   GIMPLE_PASS,
   "ivcanon",                           /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_tree_ssa_loop_ivcanon,          /* gate */
   tree_ssa_loop_ivcanon,               /* execute */
   NULL,                                        /* sub */
@@ -394,6 +405,7 @@ struct gimple_opt_pass pass_scev_cprop =
  {
   GIMPLE_PASS,
   "sccp",                              /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_scev_const_prop,                        /* gate */
   scev_const_prop,                     /* execute */
   NULL,                                        /* sub */
@@ -428,6 +440,7 @@ struct gimple_opt_pass pass_record_bounds =
  {
   GIMPLE_PASS,
   "*record_bounds",                    /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   tree_ssa_loop_bounds,                        /* execute */
   NULL,                                        /* sub */
@@ -466,6 +479,7 @@ struct gimple_opt_pass pass_complete_unroll =
  {
   GIMPLE_PASS,
   "cunroll",                           /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_tree_complete_unroll,           /* gate */
   tree_complete_unroll,                        /* execute */
   NULL,                                        /* sub */
@@ -512,6 +526,7 @@ struct gimple_opt_pass pass_complete_unrolli =
  {
   GIMPLE_PASS,
   "cunrolli",                          /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_tree_complete_unroll_inner,     /* gate */
   tree_complete_unroll_inner,          /* execute */
   NULL,                                        /* sub */
@@ -551,6 +566,7 @@ struct gimple_opt_pass pass_parallelize_loops =
  {
   GIMPLE_PASS,
   "parloops",                          /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_tree_parallelize_loops,         /* gate */
   tree_parallelize_loops,                      /* execute */
   NULL,                                        /* sub */
@@ -587,6 +603,7 @@ struct gimple_opt_pass pass_loop_prefetch =
  {
   GIMPLE_PASS,
   "aprefetch",                         /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_tree_ssa_loop_prefetch,         /* gate */
   tree_ssa_loop_prefetch,              /* execute */
   NULL,                                        /* sub */
@@ -624,6 +641,7 @@ struct gimple_opt_pass pass_iv_optimize =
  {
   GIMPLE_PASS,
   "ivopts",                            /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   gate_tree_ssa_loop_ivopts,           /* gate */
   tree_ssa_loop_ivopts,                        /* execute */
   NULL,                                        /* sub */
@@ -654,6 +672,7 @@ struct gimple_opt_pass pass_tree_loop_done =
  {
   GIMPLE_PASS,
   "loopdone",                          /* name */
+  OPTGROUP_LOOP,                        /* optinfo_flags */
   NULL,                                        /* gate */
   tree_ssa_loop_done,                  /* execute */
   NULL,                                        /* sub */
index d9f4e9ecaf097596663129d8d188025e555f6f26..01b1d176a06b7aafbc2814770bdd1a98a739e6de 100644 (file)
@@ -642,6 +642,7 @@ struct gimple_opt_pass pass_cse_reciprocals =
  {
   GIMPLE_PASS,
   "recip",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_cse_reciprocals,                        /* gate */
   execute_cse_reciprocals,             /* execute */
   NULL,                                        /* sub */
@@ -1505,6 +1506,7 @@ struct gimple_opt_pass pass_cse_sincos =
  {
   GIMPLE_PASS,
   "sincos",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_cse_sincos,                     /* gate */
   execute_cse_sincos,                  /* execute */
   NULL,                                        /* sub */
@@ -1977,6 +1979,7 @@ struct gimple_opt_pass pass_optimize_bswap =
  {
   GIMPLE_PASS,
   "bswap",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_optimize_bswap,                  /* gate */
   execute_optimize_bswap,              /* execute */
   NULL,                                        /* sub */
@@ -2741,6 +2744,7 @@ struct gimple_opt_pass pass_optimize_widening_mul =
  {
   GIMPLE_PASS,
   "widening_mul",                      /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_optimize_widening_mul,          /* gate */
   execute_optimize_widening_mul,       /* execute */
   NULL,                                        /* sub */
index 5864d68689ab538b634e35a7f993dd04aede4c7a..e084a229df86f5747e578c96d3fbff567473570a 100644 (file)
@@ -1951,6 +1951,7 @@ struct gimple_opt_pass pass_phiopt =
  {
   GIMPLE_PASS,
   "phiopt",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_phiopt,                         /* gate */
   tree_ssa_phiopt,                     /* execute */
   NULL,                                        /* sub */
@@ -1979,6 +1980,7 @@ struct gimple_opt_pass pass_cselim =
  {
   GIMPLE_PASS,
   "cselim",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_cselim,                         /* gate */
   tree_ssa_cs_elim,                    /* execute */
   NULL,                                        /* sub */
index 2f0b3bb9b83e2113c22c3913ffa55f3f5287a58e..38fcf5de39f8380c81bebc2b9cefd9bd6178675e 100644 (file)
@@ -409,6 +409,7 @@ struct gimple_opt_pass pass_phiprop =
  {
   GIMPLE_PASS,
   "phiprop",                   /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_phiprop,                        /* gate */
   tree_ssa_phiprop,            /* execute */
   NULL,                                /* sub */
index 13b3433bb046ec5fdc3c32b7441bbe25f6b2313f..c8f39c70537c5c695291ae83e1f94d023ab27e63 100644 (file)
@@ -4766,6 +4766,7 @@ struct gimple_opt_pass pass_pre =
  {
   GIMPLE_PASS,
   "pre",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_pre,                            /* gate */
   do_pre,                              /* execute */
   NULL,                                        /* sub */
@@ -4819,6 +4820,7 @@ struct gimple_opt_pass pass_fre =
  {
   GIMPLE_PASS,
   "fre",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_fre,                            /* gate */
   execute_fre,                         /* execute */
   NULL,                                        /* sub */
index 67c5c12e13cdef83cda182acec9d25db9e018305..1ff23ca2cffc87719e3c9ae18a205fe63f0f965d 100644 (file)
@@ -4300,6 +4300,7 @@ struct gimple_opt_pass pass_reassoc =
  {
   GIMPLE_PASS,
   "reassoc",                           /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_tree_ssa_reassoc,               /* gate */
   execute_reassoc,                     /* execute */
   NULL,                                        /* sub */
index 2d2c370201fdcbc608b2e98bfcb90d4660498534..1d965d839b3a68fc06b425816e863a2d15ccb0fe 100644 (file)
@@ -584,6 +584,7 @@ struct gimple_opt_pass pass_sink_code =
  {
   GIMPLE_PASS,
   "sink",                              /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_sink,                           /* gate */
   do_sink,                             /* execute */
   NULL,                                        /* sub */
index d2b6e25f138b57b7638afa4e2eb9736d5607b09a..9d288b3e31191080d8392b9516d1ea092d2d108f 100644 (file)
@@ -2016,6 +2016,7 @@ struct gimple_opt_pass pass_strlen =
  {
   GIMPLE_PASS,
   "strlen",                    /* name */
+  OPTGROUP_NONE,                /* optinfo_flags */
   gate_strlen,                 /* gate */
   tree_ssa_strlen,             /* execute */
   NULL,                                /* sub */
index 8bfceb6ce878c37fbeed6884e30a1e6a411e5acc..01a4045f74882e9479f3bc71b9cd2685715de2de 100644 (file)
@@ -6807,6 +6807,7 @@ struct gimple_opt_pass pass_build_alias =
  {
   GIMPLE_PASS,
   "alias",                 /* name */
+  OPTGROUP_NONE,            /* optinfo_flags */
   gate_tree_pta,           /* gate */
   NULL,                     /* execute */
   NULL,                     /* sub */
@@ -6829,6 +6830,7 @@ struct gimple_opt_pass pass_build_ealias =
  {
   GIMPLE_PASS,
   "ealias",                /* name */
+  OPTGROUP_NONE,            /* optinfo_flags */
   gate_tree_pta,           /* gate */
   NULL,                     /* execute */
   NULL,                     /* sub */
@@ -7203,6 +7205,7 @@ struct simple_ipa_opt_pass pass_ipa_pta =
  {
   SIMPLE_IPA_PASS,
   "pta",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_ipa_pta,                        /* gate */
   ipa_pta_execute,                     /* execute */
   NULL,                                        /* sub */
index b5e1edffeb4857316e7640019d641fc676fea9fd..aeeaa04fee69a1838012568b63de9af02e2e4e01 100644 (file)
@@ -585,6 +585,7 @@ struct gimple_opt_pass pass_uncprop =
  {
   GIMPLE_PASS,
   "uncprop",                           /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_uncprop,                                /* gate */
   tree_ssa_uncprop,                    /* execute */
   NULL,                                        /* sub */
index cc58870c7d841bc49c3887d64cdf1d92d5eebfba..407520b5f6e0559d8718698f7ffaf4e37242e01d 100644 (file)
@@ -2037,6 +2037,7 @@ struct gimple_opt_pass pass_late_warn_uninitialized =
  {
   GIMPLE_PASS,
   "uninit",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_warn_uninitialized,             /* gate */
   execute_late_warn_uninitialized,     /* execute */
   NULL,                                        /* sub */
index 7ba11e193d6f3d959dc3e98f3431032d5dce53a1..fab0a3ba5b9986d9d9c6d975bba9942db7f2c17d 100644 (file)
@@ -1135,6 +1135,7 @@ struct gimple_opt_pass pass_init_datastructures =
  {
   GIMPLE_PASS,
   "*init_datastructures",              /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   execute_init_datastructures,         /* execute */
   NULL,                                        /* sub */
@@ -1744,6 +1745,7 @@ struct gimple_opt_pass pass_early_warn_uninitialized =
  {
   GIMPLE_PASS,
   "*early_warn_uninitialized",         /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_warn_uninitialized,             /* gate */
   execute_early_warn_uninitialized,    /* execute */
   NULL,                                        /* sub */
@@ -2174,6 +2176,7 @@ struct gimple_opt_pass pass_update_address_taken =
  {
   GIMPLE_PASS,
   "addressables",                      /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   NULL,                                        /* execute */
   NULL,                                        /* sub */
index 57a1b482cea4c385963163e4520499ba5ef24ca1..6eb645130ae1c4781ffc707f493b6be62d068feb 100644 (file)
@@ -451,6 +451,7 @@ struct gimple_opt_pass pass_release_ssa_names =
  {
   GIMPLE_PASS,
   "release_ssa",                       /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   release_dead_ssa_names,              /* execute */
   NULL,                                        /* sub */
index fca2e8e368f4ceff80c2b67d57f36843cd5bcb46..1b0e6d35f9457244449ab3669bfc3e152e0736eb 100644 (file)
@@ -960,6 +960,7 @@ struct gimple_opt_pass pass_stdarg =
  {
   GIMPLE_PASS,
   "stdarg",                            /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_optimize_stdarg,                        /* gate */
   execute_optimize_stdarg,             /* execute */
   NULL,                                        /* sub */
index bbbd3caca021be86476c40f2b82b09a875ec4efc..a35df7c71963098f6b381412959ae7cddeb3f6c7 100644 (file)
@@ -1463,6 +1463,7 @@ struct gimple_opt_pass pass_convert_switch =
  {
   GIMPLE_PASS,
   "switchconv",                                /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   switchconv_gate,                     /* gate */
   do_switchconv,                       /* execute */
   NULL,                                        /* sub */
index 7ee00a2a319ba310267b0e4a30767d00458964a1..5b1fd2b9dcfca52951c0bf612b441d0fccd3fa67 100644 (file)
@@ -1048,6 +1048,7 @@ struct gimple_opt_pass pass_tail_recursion =
  {
   GIMPLE_PASS,
   "tailr",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_tail_calls,                     /* gate */
   execute_tail_recursion,              /* execute */
   NULL,                                        /* sub */
@@ -1067,6 +1068,7 @@ struct gimple_opt_pass pass_tail_calls =
  {
   GIMPLE_PASS,
   "tailc",                             /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_tail_calls,                     /* gate */
   execute_tail_calls,                  /* execute */
   NULL,                                        /* sub */
index d950d814870f05dd592ff54e17def7c4bd2c7403..9d54bdd99b54ce359396e3683dce64ac5aab855b 100644 (file)
@@ -1435,6 +1435,7 @@ struct gimple_opt_pass pass_lower_vector =
  {
   GIMPLE_PASS,
   "veclower",                          /* name */
+  OPTGROUP_VEC,                         /* optinfo_flags */
   gate_expand_vector_operations_ssa,    /* gate */
   expand_vector_operations,            /* execute */
   NULL,                                        /* sub */
@@ -1457,6 +1458,7 @@ struct gimple_opt_pass pass_lower_vector_ssa =
  {
   GIMPLE_PASS,
   "veclower2",                         /* name */
+  OPTGROUP_VEC,                         /* optinfo_flags */
   0,                                   /* gate */
   expand_vector_operations,            /* execute */
   NULL,                                        /* sub */
index a74ad9d3cd123a6f31eb4d51607e65e607dfa2cd..b9bc00144f55b95b98fd7521826d3749279f0379 100644 (file)
@@ -194,6 +194,8 @@ struct gimple_opt_pass pass_slp_vectorize =
  {
   GIMPLE_PASS,
   "slp",                                /* name */
+  OPTGROUP_LOOP
+  | OPTGROUP_VEC,                       /* optinfo_flags */
   gate_vect_slp,                        /* gate */
   execute_vect_slp,                     /* execute */
   NULL,                                 /* sub */
@@ -266,6 +268,8 @@ struct simple_ipa_opt_pass pass_ipa_increase_alignment =
  {
   SIMPLE_IPA_PASS,
   "increase_alignment",                 /* name */
+  OPTGROUP_LOOP
+  | OPTGROUP_VEC,                       /* optinfo_flags */
   gate_increase_alignment,              /* gate */
   increase_alignment,                   /* execute */
   NULL,                                 /* sub */
index 6547ed6235aa5e0c956d99e90777d7cdce40684d..852dd502de8645471183c12b5cdac6adea2acf92 100644 (file)
@@ -9234,6 +9234,7 @@ struct gimple_opt_pass pass_vrp =
  {
   GIMPLE_PASS,
   "vrp",                               /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_vrp,                            /* gate */
   execute_vrp,                         /* execute */
   NULL,                                        /* sub */
index a671aed236ea99e67048d5eca60a2c1d3a70a678..16dc5df03aa1d413c0b2ef655e3fad2cb3be0aff 100644 (file)
@@ -5292,6 +5292,7 @@ struct simple_ipa_opt_pass pass_ipa_free_lang_data =
  {
   SIMPLE_IPA_PASS,
   "*free_lang_data",                   /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   NULL,                                        /* gate */
   free_lang_data,                      /* execute */
   NULL,                                        /* sub */
index d5ab1d1e554d7238bdb3f78af4a835dedd358117..b64604bee42ce938a4418eed84189b19d4dcc623 100644 (file)
@@ -10099,6 +10099,7 @@ struct rtl_opt_pass pass_variable_tracking =
  {
   RTL_PASS,
   "vartrack",                           /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_var_tracking,             /* gate */
   variable_tracking_main,               /* execute */
   NULL,                                 /* sub */
index d56563430c2433a24f54e379e3552d829e6ddca3..b602615326b1a66a0f5f444e0070511eec78cf42 100644 (file)
--- a/gcc/web.c
+++ b/gcc/web.c
@@ -445,6 +445,7 @@ struct rtl_opt_pass pass_web =
  {
   RTL_PASS,
   "web",                                /* name */
+  OPTGROUP_NONE,                        /* optinfo_flags */
   gate_handle_web,                      /* gate */
   web_main,                            /* execute */
   NULL,                                 /* sub */