[PATCH] unconditionally compile most of the delay slot code

Steve Ellcey sellcey@imgtec.com
Thu Oct 22 17:38:00 GMT 2015


On Wed, 2015-10-21 at 11:13 -0400, tbsaunde+gcc@tbsaunde.org wrote:
> From: Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
> 
> Hi,
> 
> $subject
> 
> bootstrapped+ regtested x86_64-linux-gnu, I wouldn't mind a second pair of eyes
> on this one given its not totally trivial.
> 
> Trev
> 
> gcc/ChangeLog:
> 
> 2015-10-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
> 
> 	* cfgrtl.c (pass_free_cfg::execute): Adjust.
> 	* final.c (dbr_sequence_length): Always define.
> 	(shorten_branches): Adjust.
> 	* genattr-common.c (main): Always define DELAY_SLOTS.
> 	* genattr.c (main): Unconditionally declare functions and define
> 	macros related to delay slots.
> 	* genattrtab.c (write_eligible_delay): Adjust.
> 	(main): Always write out delay slot functions.
> 	* opts.c (default_options_table): Adjust.
> 	* reorg.c (redirect_with_delay_slots_safe_p): Likewise.
> 	(redirect_with_delay_list_safe_p): Likewise.
> 	(fill_simple_delay_slots): Likewise.
> 	(fill_slots_from_thread): Likewise.
> 	(make_return_insns): Likewise.
> 	(dbr_schedule): Likewise.
> 	(rest_of_handle_delay_slots): Likewise.
> 	(pass_delay_slots::gate): Likewise.
> 	* toplev.c (process_options): Likewise.

Trevor,

I am not sure if anyone else is having issues with this patch but it has
broken my MIPS build.  When building a cross compiler on x86 linux I
get:

build/genattrtab /scratch/sellcey/repos/build-bug/src/gcc/gcc/common.md /scratch/sellcey/repos/build-bug/src/gcc/gcc/config/mips/mips.md insn-conditions.md \
                -Atmp-attrtab.c -Dtmp-dfatab.c -Ltmp-latencytab.c
genattrtab: Internal error: abort in write_eligible_delay, at
genattrtab.c:4524
make[1]: *** [s-attrtab] Error 1
make[1]: Leaving directory
`/scratch/sellcey/repos/build-bug/obj-mips-mti-linux-gnu/initial_gcc/gcc'
make: *** [all-gcc] Error 2
Error: Make command failed, stopping build.

Any thoughts on what I should look at?

Steve Ellcey
sellcey@imgtec.com



More information about the Gcc-patches mailing list