diff options
author | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-10-05 12:59:23 +0000 |
---|---|---|
committer | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-10-05 12:59:23 +0000 |
commit | 1f021f971fee1972354d61608fae5ab0f9175538 (patch) | |
tree | 092a063b47d0bf2e253befae6fbbc597612758ed /gcc/common.opt | |
parent | 3eebeec678ca0cfd97cb2b84e2a30378c9b548f7 (diff) | |
download | gcc-1f021f971fee1972354d61608fae5ab0f9175538.tar.gz |
* doc/invoke.texi (-fshrink-wrap): Document.
* opts.c (default_options_table): Add it.
* common.opt (fshrink-wrap): Add.
* function.c (emit_return_into_block): Remove useless declaration.
(record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx,
requires_stack_frame_p, gen_return_pattern): New static functions.
(emit_return_into_block): New arg simple_p. All callers changed.
Use gen_return_pattern.
(thread_prologue_and_epilogue_insns): Implement shrink-wrapping.
* config/i386/i386.md (return): Expand into a simple_return.
(simple_return): New expander):
(simple_return_internal, simple_return_internal_long,
simple_return_pop_internal_long, simple_return_indirect_internal):
Renamed from return_internal, return_internal_long,
return_pop_internal_long and return_indirect_internal; changed to use
simple_return.
* config/i386/i386.c (ix86_expand_epilogue): Adjust to expand
simple returns.
(ix86_pad_returns): Likewise.
* function.h (struct rtl_data): Add member shrink_wrapped.
* cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that
are not jumps or sibcalls can't be compared.
* gcc.target/i386/sw-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179553 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/common.opt')
-rw-r--r-- | gcc/common.opt | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/common.opt b/gcc/common.opt index c7c523c960b..b6b28cc89b6 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -1772,6 +1772,11 @@ fshow-column Common Report Var(flag_show_column) Init(1) Show column numbers in diagnostics, when available. Default on +fshrink-wrap +Common Report Var(flag_shrink_wrap) Optimization +Emit function prologues only before parts of the function that need it, +rather than at the top of the function. + fsignaling-nans Common Report Var(flag_signaling_nans) Optimization SetByCombined Disable optimizations observable by IEEE signaling NaNs |