* 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.
From-SVN: r164883
+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
static bool
gate_handle_stack_adjustments (void)
{
- return (optimize > 0);
+ return flag_combine_stack_adjustments;
}
static unsigned int
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
-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
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
flag_tree_copy_prop = opt1;
flag_tree_sink = opt1;
flag_tree_ch = opt1;
+ flag_combine_stack_adjustments = opt1;
/* -O2 optimizations. */
opt2 = (optimize >= 2);