This is the mail archive of the gcc@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: All ARM compiler builds failing


> 
> 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 at suse dot 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 at suse dot 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)


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