* common.opt: Add -fcombine-stack-adjustments.
authornickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Oct 2010 12:48:50 +0000 (12:48 +0000)
committernickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Oct 2010 12:48:50 +0000 (12:48 +0000)
        * opts.c (decode_options): Enable -fcombine-stack-adjustments at
        -O1.
        * combine-stack-adj.c (gate_handle_stack_adjustments): Check
        flag_combine_stack_adjustments.
        * doc/invoke.texi: Document the new option.

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

gcc/ChangeLog
gcc/combine-stack-adj.c
gcc/common.opt
gcc/doc/invoke.texi
gcc/opts.c

index bb7a98b..d17bdd3 100644 (file)
@@ -1,3 +1,12 @@
+2010-10-01  Nick Clifton  <nickc@redhat.com>
+
+       * common.opt: Add -fcombine-stack-adjustments.
+       * opts.c (decode_options): Enable -fcombine-stack-adjustments at
+       -O1.
+       * combine-stack-adj.c (gate_handle_stack_adjustments): Check
+       flag_combine_stack_adjustments.
+       * doc/invoke.texi: Document the new option.
+
 2010-10-01  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/45854
index 96bfb3a..0a7b53e 100644 (file)
@@ -546,7 +546,7 @@ combine_stack_adjustments_for_block (basic_block bb)
 static bool
 gate_handle_stack_adjustments (void)
 {
-  return (optimize > 0);
+  return flag_combine_stack_adjustments;
 }
 
 static unsigned int
index 938b76e..44a3de8 100644 (file)
@@ -640,6 +640,10 @@ fcheck-data-deps
 Common Report Var(flag_check_data_deps)
 Compare the results of several data dependence analyzers.
 
+fcombine-stack-adjustments
+Common Report Var(flag_combine_stack_adjustments) Optimization
+Looks for opportunities to reduce stack adjustments and stack references.
+
 fcommon
 Common Report Var(flag_no_common,0) Optimization
 Do not put uninitialized globals in the common section
index df39e16..057ae7d 100644 (file)
@@ -334,7 +334,8 @@ Objective-C and Objective-C++ Dialects}.
 -falign-labels[=@var{n}] -falign-loops[=@var{n}] -fassociative-math @gol
 -fauto-inc-dec -fbranch-probabilities -fbranch-target-load-optimize @gol
 -fbranch-target-load-optimize2 -fbtr-bb-exclusive -fcaller-saves @gol
--fcheck-data-deps -fconserve-stack -fcprop-registers -fcrossjumping @gol
+-fcheck-data-deps -fcombine-stack-adjustments -fconserve-stack @gol
+-fcprop-registers -fcrossjumping @gol
 -fcse-follow-jumps -fcse-skip-blocks -fcx-fortran-rules @gol
 -fcx-limited-range @gol
 -fdata-sections -fdce -fdce @gol
@@ -6618,6 +6619,13 @@ those which have no call-preserved registers to use instead.
 
 Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
 
+@item -fcombine-stack-adjustments
+@opindex fcombine-stack-adjustments
+Tracks stack adjustments (pushes and pops) and stack memory references
+and then tries to find ways to combine them.
+
+Enabled by default at @option{-O1} and higher.
+
 @item -fconserve-stack
 @opindex fconserve-stack
 Attempt to minimize stack usage.  The compiler will attempt to use less
index 2b2071e..88321b5 100644 (file)
@@ -801,6 +801,7 @@ decode_options (unsigned int argc, const char **argv,
   flag_tree_copy_prop = opt1;
   flag_tree_sink = opt1;
   flag_tree_ch = opt1;
+  flag_combine_stack_adjustments = opt1;
 
   /* -O2 optimizations.  */
   opt2 = (optimize >= 2);