All ARM compiler builds failing
Jan Hubicka
jh@suse.cz
Tue Feb 25 11:45:00 GMT 2003
>
> Both native and cross building of all ARM configurations has been broken
> since this patch was installed:
>
> Thu Feb 20 21:41:19 CET 2003 Jan Hubicka <jh@suse.cz>
>
> * toplev.c (flag_sched2_use_superblocks, flag_sched2_use_traces):
> New
> global variables.
> (lang_independent_options): Add -fsched2-use-superblocks
> -fsced2-use-traces.
> (rest_of_compilation): Deal with it.
> * invoke.texi (-fsched2-use-traces, fsched2-use-superblocks):
> Declare.
> * flags.h (flag_sched2_use_superblocks, flag_sched2_use_traces):
> Declare.
> * rtl.h (reg_to_stack): Update prototype.
> * reg-stack.c (reg_to_stack): Return when something has changed;
> update liveness when executing after superblock scheduling.
>
> * combine.c (simplify_shift_const): Simplify few special cases
> into constants.
>
> See http://gcc.gnu.org/ml/gcc/2003-02/msg01521.html for some analysis.
>
> Is there any prospect of a fix soon, or should we consider reverting this?
Sorry, somehow I assumed that this is already fixed by the
unit-at-a-once patch. Yesterday I noticed that it is indepdnent issue
I've been trying to look into this last night. I think Richard is most
familiar with the conditional execution. To me it looks like we need to
recompute liveness entirely in case we want to have it exact for
scheduling then. It would be possible to re-arrange things so the
dulpication happends before flow2 pass at small cost of code quiality.
We can do that only for the condition executaion targets, or we can do
that for all of them. What is the preferred sollution?
Assumming that the conditional bits are only done by ifcvt and nothing
else, the attached patch will likely help. It fixed the testcase I
have. Can you please try to bootstrap it?
I apologize for the delay.
Tue Feb 25 12:29:28 CET 2003 Jan Hubicka <jh@suse.cz>
* toplev.c (rest_of_compilation): Do reordering before if conversion.
Index: toplev.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/toplev.c,v
retrieving revision 1.719
diff -c -3 -p -r1.719 toplev.c
*** toplev.c 22 Feb 2003 19:25:19 -0000 1.719
--- toplev.c 25 Feb 2003 11:28:58 -0000
*************** rest_of_compilation (decl)
*** 3493,3513 ****
timevar_pop (TV_RENAME_REGISTERS);
}
- if (flag_if_conversion2)
- {
- timevar_push (TV_IFCVT2);
- open_dump_file (DFI_ce3, decl);
-
- if_convert (1);
-
- close_dump_file (DFI_ce3, print_rtl_with_bb, insns);
- timevar_pop (TV_IFCVT2);
- }
- #ifdef STACK_REGS
- if (optimize)
- split_all_insns (1);
- #endif
-
if (optimize > 0)
{
timevar_push (TV_REORDER_BLOCKS);
--- 3493,3498 ----
*************** rest_of_compilation (decl)
*** 3529,3534 ****
--- 3514,3534 ----
close_dump_file (DFI_bbro, print_rtl_with_bb, insns);
timevar_pop (TV_REORDER_BLOCKS);
}
+
+ if (flag_if_conversion2)
+ {
+ timevar_push (TV_IFCVT2);
+ open_dump_file (DFI_ce3, decl);
+
+ if_convert (1);
+
+ close_dump_file (DFI_ce3, print_rtl_with_bb, insns);
+ timevar_pop (TV_IFCVT2);
+ }
+ #ifdef STACK_REGS
+ if (optimize)
+ split_all_insns (1);
+ #endif
#ifdef INSN_SCHEDULING
if (optimize > 0 && flag_schedule_insns_after_reload)
More information about the Gcc
mailing list