This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 10/05/11 17:13, Richard Guenther wrote: > On Wed, Oct 5, 2011 at 12:29 AM, Richard Henderson <rth@redhat.com> wrote: >> On 10/04/2011 03:10 PM, Bernd Schmidt wrote: >>> * 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. >> >> Ok. >> >> As a followup, I think this option needs to be disabled for profiling >> and profile_after_prologue. Should be a mere matter of frobbing the >> options at startup. > > This breaks bootstrap on x86_64-linux. > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50621 Caused by the x86_64 expand_epilogue not generating REG_CFA_RESTORE notes, and in another case by queuing but not emitting them. Bootstrapping the following now. Ok? (Alternatively, could keep the redzone logic, but make it depend on !flag_shrink_wrap). Bernd
Attachment:
redzone.diff
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |