invoke.texi (profile-use): update documentation.
authorJan Hubicka <jh@suse.cz>
Sun, 4 Nov 2012 15:51:18 +0000 (16:51 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sun, 4 Nov 2012 15:51:18 +0000 (15:51 +0000)
* invoke.texi (profile-use): update documentation.
* opts.c (common_handle_option): Enable tree-vectorize
and tree-loop-distribute-patterns.
* tree-loop-distribution.c (tree_loop_distribution): Skip loops
optimized for size.
* config/i386/i386.c (ix86_option_override_internal): Enabe
prefetch_lop_arrays for profile-use.

From-SVN: r193135

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/doc/invoke.texi
gcc/opts.c
gcc/tree-loop-distribution.c

index b2b4394f20bddb7fcd244b996e36f6498c3c5aa0..6367ac578de0559dcaeb2844c79fcde805e30f46 100644 (file)
@@ -1,3 +1,13 @@
+2012-11-03  Jan Hubicka  <jh@suse.cz>
+
+       * invoke.texi (profile-use): update documentation.
+       * opts.c (common_handle_option): Enable tree-vectorize
+       and tree-loop-distribute-patterns.
+       * tree-loop-distribution.c (tree_loop_distribution): Skip loops
+       optimized for size.
+       * config/i386/i386.c (ix86_option_override_internal): Enabe
+       prefetch_lop_arrays for profile-use.
+
 2012-11-03  Robert Mason  <rbmj@verizon.net>
 
        * gcov-io.c (gcov_open): Add file mode to open call (need for VxWorks)
index fae300e4ce1871c30282ea90d5c2732d09da6b0c..833ef5ca57da24871077076fd59826e411db47e8 100644 (file)
@@ -3950,7 +3950,7 @@ ix86_option_override_internal (bool main_args_p)
   /* Enable sw prefetching at -O3 for CPUS that prefetching is helpful.  */
   if (flag_prefetch_loop_arrays < 0
       && HAVE_prefetch
-      && optimize >= 3
+      && (optimize >= 3 || flag_profile_use)
       && TARGET_SOFTWARE_PREFETCHING_BENEFICIAL)
     flag_prefetch_loop_arrays = 1;
 
index ff0c87dc6c4f0a9cd9c167cc3f20f1a3a1d58559..1338e6e461cf4ba38ea01719f38d8794cf953da4 100644 (file)
@@ -8409,7 +8409,8 @@ Enable profile feedback directed optimizations, and optimizations
 generally profitable only with profile feedback available.
 
 The following options are enabled: @code{-fbranch-probabilities}, @code{-fvpt},
-@code{-funroll-loops}, @code{-fpeel-loops}, @code{-ftracer}
+@code{-funroll-loops}, @code{-fpeel-loops}, @code{-ftracer}, @code{-ftree-vectorize},
+@code{ftree-loop-distribute-patterns}
 
 By default, GCC emits an error message if the feedback profiles do not
 match the source code.  This error can be turned into a warning by using
index a1cf2d5bae6068fdabc8a3f339568b661f13d19f..3160b8cc521ed6e89c42b79f6160535b108f1f96 100644 (file)
@@ -1587,6 +1587,12 @@ common_handle_option (struct gcc_options *opts,
        opts->x_flag_unswitch_loops = value;
       if (!opts_set->x_flag_gcse_after_reload)
        opts->x_flag_gcse_after_reload = value;
+      if (!opts_set->x_flag_tree_vectorize)
+       opts->x_flag_tree_vectorize = value;
+      if (!opts_set->x_flag_vect_cost_model)
+       opts->x_flag_vect_cost_model = value;
+      if (!opts_set->x_flag_tree_loop_distribute_patterns)
+       opts->x_flag_tree_loop_distribute_patterns = value;
       break;
 
     case OPT_fprofile_generate_:
index 10bd29e3d5f738851d6d8dccc615bec4a28edf49..0ade107bd59482726a247de3ebb3463a793a073d 100644 (file)
@@ -1511,6 +1511,10 @@ tree_loop_distribution (void)
       if (!single_exit (loop))
        continue;
 
+      /* Only optimize hot loops.  */
+      if (!optimize_loop_for_speed_p (loop))
+       continue;
+
       /* Only distribute loops with a header and latch for now.  */
       if (loop->num_nodes > 2)
        continue;