public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* All ARM compiler builds failing
@ 2003-02-25 10:50 Richard Earnshaw
  2003-02-25 11:45 ` Jan Hubicka
  0 siblings, 1 reply; 6+ messages in thread
From: Richard Earnshaw @ 2003-02-25 10:50 UTC (permalink / raw)
  To: gcc, Jan Hubicka; +Cc: Richard.Earnshaw


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?

R.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: All ARM compiler builds failing
  2003-02-25 10:50 All ARM compiler builds failing Richard Earnshaw
@ 2003-02-25 11:45 ` Jan Hubicka
  2003-02-25 12:44   ` Richard Earnshaw
  2003-02-26 14:50   ` Richard Earnshaw
  0 siblings, 2 replies; 6+ messages in thread
From: Jan Hubicka @ 2003-02-25 11:45 UTC (permalink / raw)
  To: Richard.Earnshaw; +Cc: gcc, Jan Hubicka

> 
> 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)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: All ARM compiler builds failing
  2003-02-25 11:45 ` Jan Hubicka
@ 2003-02-25 12:44   ` Richard Earnshaw
  2003-02-25 22:05     ` Graham Stott
  2003-02-26 14:50   ` Richard Earnshaw
  1 sibling, 1 reply; 6+ messages in thread
From: Richard Earnshaw @ 2003-02-25 12:44 UTC (permalink / raw)
  To: Jan Hubicka; +Cc: Richard.Earnshaw, gcc

[-- Attachment #1: Type: text/plain, Size: 2930 bytes --]

> > 
> > 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.

I'm now getting an error from this change when building the Thumb 
libraries :

2003-02-23  Kazu Hirata  <kazu@cs.umass.edu>

        * gcse.c (cprop_jump): Use the REG_EQUAL note if available.

Since the insn is

(insn 44 43 45 2 0x402db39c (set (reg:SI 64)
        (reg:SI 0 r0)) 205 {*thumb_movsi_insn} (nil)
    (insn_list:REG_RETVAL 41 (expr_list:REG_EQUAL (expr_list 
(symbol_ref:SI ("__eqdf2"))
                (expr_list (reg:DF 59)
                    (expr_list (reg/v:DF 50 [ invalue ])
                        (nil))))
            (nil))))

Note, I'm not immediately convinced that the above is valid, but this is 
where it blows up, since we end up looking for side-effects on an 
expr_list and running off the end (side_effects_p doesn't know how to walk 
a null-terminated expr_list)>

R.

cc1 -fpreprocessed ecvtbuf.i -quiet -dumpbase ecvtbuf.c -mthumb -mthumb 
-auxbase ecvtbuf -g -g -O2 -O2 -O2 -O2 -O2 -version -fno-builtin -o 
ecvtbuf.s



[-- Attachment #2: ecvtbuf.i.gz --]
[-- Type: application/x-gzip , Size: 6047 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: All ARM compiler builds failing
  2003-02-25 12:44   ` Richard Earnshaw
@ 2003-02-25 22:05     ` Graham Stott
  0 siblings, 0 replies; 6+ messages in thread
From: Graham Stott @ 2003-02-25 22:05 UTC (permalink / raw)
  To: Richard.Earnshaw; +Cc: Jan Hubicka, gcc

Richard Earnshaw wrote:

> 
> I'm now getting an error from this change when building the Thumb 
> libraries :
> 
> 2003-02-23  Kazu Hirata  <kazu@cs.umass.edu>
> 
>         * gcse.c (cprop_jump): Use the REG_EQUAL note if available.
> 
> Since the insn is
> 
> (insn 44 43 45 2 0x402db39c (set (reg:SI 64)
>         (reg:SI 0 r0)) 205 {*thumb_movsi_insn} (nil)
>     (insn_list:REG_RETVAL 41 (expr_list:REG_EQUAL (expr_list 
> (symbol_ref:SI ("__eqdf2"))
>                 (expr_list (reg:DF 59)
>                     (expr_list (reg/v:DF 50 [ invalue ])
>                         (nil))))
>             (nil))))
> 
> Note, I'm not immediately convinced that the above is valid, but this is 
> where it blows up, since we end up looking for side-effects on an 
> expr_list and running off the end (side_effects_p doesn't know how to walk 
> a null-terminated expr_list)>
> 
> R.
> 
> cc1 -fpreprocessed ecvtbuf.i -quiet -dumpbase ecvtbuf.c -mthumb -mthumb 
> -auxbase ecvtbuf -g -g -O2 -O2 -O2 -O2 -O2 -version -fno-builtin -o 
> ecvtbuf.s
> 
> 

Interestingly the mips port is failing in the same way (running of the end of
an expr-list) see post by Fred Fish

"Re: c/9835: ICE - segfault using -msoft-float with latest mips-elf toolchain"


Graham

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: All ARM compiler builds failing
  2003-02-25 11:45 ` Jan Hubicka
  2003-02-25 12:44   ` Richard Earnshaw
@ 2003-02-26 14:50   ` Richard Earnshaw
  2003-02-26 19:01     ` Jan Hubicka
  1 sibling, 1 reply; 6+ messages in thread
From: Richard Earnshaw @ 2003-02-26 14:50 UTC (permalink / raw)
  To: Jan Hubicka; +Cc: Richard.Earnshaw, gcc


jh@suse.cz said:
> Tue Feb 25 12:29:28 CET 2003  Jan Hubicka  <jh@suse.cz>
> 	* toplev.c (rest_of_compilation): Do reordering before if conversion.
> 

This fixes the arm-netbsdelf bootstrap problem.

R.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: All ARM compiler builds failing
  2003-02-26 14:50   ` Richard Earnshaw
@ 2003-02-26 19:01     ` Jan Hubicka
  0 siblings, 0 replies; 6+ messages in thread
From: Jan Hubicka @ 2003-02-26 19:01 UTC (permalink / raw)
  To: Richard.Earnshaw; +Cc: Jan Hubicka, gcc

> 
> jh@suse.cz said:
> > Tue Feb 25 12:29:28 CET 2003  Jan Hubicka  <jh@suse.cz>
> > 	* toplev.c (rest_of_compilation): Do reordering before if conversion.
> > 
> 
> This fixes the arm-netbsdelf bootstrap problem.
OK, i will install the patch as obvious then.  Thanks, and sorry for the
breakage.

Honza
> 
> R.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2003-02-26 18:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-02-25 10:50 All ARM compiler builds failing Richard Earnshaw
2003-02-25 11:45 ` Jan Hubicka
2003-02-25 12:44   ` Richard Earnshaw
2003-02-25 22:05     ` Graham Stott
2003-02-26 14:50   ` Richard Earnshaw
2003-02-26 19:01     ` Jan Hubicka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).