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]

Re: Fixed Regressions with "[committed] Use target-insns.def for prologue & epilogue insns"


Hans-Peter Nilsson <hans-peter.nilsson@axis.com> writes:
>> From: Richard Sandiford <rdsandiford@googlemail.com>
>> Date: Wed, 1 Jul 2015 23:26:59 +0200
>
>> Hans-Peter Nilsson <hans-peter.nilsson@axis.com> writes:
>> >> From: Richard Sandiford <richard.sandiford@arm.com>
>> >> Date: Tue, 30 Jun 2015 22:55:24 +0200
>> >
>> >> Bootstrapped & regression-tested on x86_64-linux-gnu and aarch64-linux-gnu.
>> >> Also tested via config-list.mk.  Committed as preapproved.
>> >> 
>> >> Thanks,
>> >> Richard
>> >> 
>> >> 
>> >> gcc/
>> >>         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
>> >>         * target-insns.def (epilogue, prologue, sibcall_prologue): New
>> >>         targetm instruction patterns.
>> >>         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
>> >>         interface.
>> >>         * calls.c (expand_call): Likewise.
>> >>         * cfgrtl.c (cfg_layout_finalize): Likewise.
>> >>         * df-scan.c (df_get_entry_block_def_set): Likewise.
>> >>         (df_get_exit_block_use_set): Likewise.
>> >>         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
>> >>         * final.c (final_start_function): Likewise.
>> >>         * function.c (thread_prologue_and_epilogue_insns): Likewise.
>> >>         (reposition_prologue_and_epilogue_notes): Likewise.
>> >>         * reorg.c (find_end_label): Likewise.
>> >>         * toplev.c (process_options): Likewise.
>> >
>> > I think this one -being the most fitting patch in the range
>> > (225190:225210]- caused this regression for cris-elf:
>> >
>> > Running
>> > /tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.target/cris/torture/cris-torture.exp
>> > ...
>> > FAIL: gcc.target/cris/torture/no-pro-epi-1.c -O3 -g (internal
>> > compiler error)
>> > FAIL: gcc.target/cris/torture/no-pro-epi-1.c -O3 -g (test for excess
>> > errors)
>> >
>> > This test checks that the -mno-prologue-epilogue option works,
>> > whose semantics is supposedly self-explanatory.
>> 
>> Well, yes and no :-)
>
> Hm...I take that as an affirmation on the regression but perhaps
> a "no" to some of the my statements...

Just the semantics being self-explanatory.  It wasn't obvious to me
what we were supposed to do with CFI.  "Whatever" works for me though...

>> which I guess means that the HAVE_prologue condition wasn't being
>> consistently tested.  Now that it is: is -mno-prologue-epilogue
>> just supposed to generate empty prologues and epilogues, as implied
>> by the cris.c code?  If so then removing the conditions on "prologue"
>> and "epilogue" should work.  If not, then which of the
>> targetm.have_prologue ()
>> etc. conditions do you need to be true for -mno-prologue-epilogue?
>> 
>> (You have the distinction of having the only port with conditional
>> prologue and epilogue patterns. :-))
>
> Not any longer.  Also removed a stale comment.
> This committed patch fixes the noted regressions, without
> causing further regressions, testing cris-elf in a simulator.
>
> gcc:
> 	* config/cris/cris.md ("epilogue"): Remove condition.
> 	("prologue"): Ditto.

Thanks.

Richard


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]