From: nickc Date: Fri, 1 Oct 2010 12:48:50 +0000 (+0000) Subject: * common.opt: Add -fcombine-stack-adjustments. X-Git-Tag: upstream/4.9.2~26196 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bbb0a662acf72110a1f3f46939d72f6d40bae76f;p=platform%2Fupstream%2Flinaro-gcc.git * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164883 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bb7a98b..d17bdd3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2010-10-01 Nick Clifton + + * 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 PR tree-optimization/45854 diff --git a/gcc/combine-stack-adj.c b/gcc/combine-stack-adj.c index 96bfb3a..0a7b53e 100644 --- a/gcc/combine-stack-adj.c +++ b/gcc/combine-stack-adj.c @@ -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 diff --git a/gcc/common.opt b/gcc/common.opt index 938b76e..44a3de8 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -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 diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index df39e16..057ae7d 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -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 diff --git a/gcc/opts.c b/gcc/opts.c index 2b2071e..88321b5 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -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);