public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Richard Henderson <rth@redhat.com>
To: Corey Minyard <minyard@acm.org>
Cc: gcc@gcc.gnu.org
Subject: Re: Loop optimization bug with Ada front end on PPC (and probably Alpha)
Date: Mon, 19 Nov 2001 13:53:00 -0000	[thread overview]
Message-ID: <20011127153020.A30273@redhat.com> (raw)
In-Reply-To: <3C041C3F.3030508@acm.org>; from minyard@acm.org on Tue, Nov 27, 2001 at 05:05:35PM -0600

On Tue, Nov 27, 2001 at 05:05:35PM -0600, Corey Minyard wrote:
> You will need to set the bl variable a little differently, in case its a 
> GIV.  I've attached a patch.  That was the cause of my segv earlier. 

Ug.  I should have done a complete bootstrap with ia64 as well --
Seems that some cases the BIV initializer is constructed by loop,
or something.  In any case, INSN_LUID aborts.

>  Bootstrapping again....

Me too.  Current patch appended.


r~



Index: doloop.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doloop.c,v
retrieving revision 1.13
diff -c -p -d -r1.13 doloop.c
*** doloop.c	2001/11/27 22:09:10	1.13
--- doloop.c	2001/11/27 23:29:17
*************** doloop_modify_runtime (loop, iterations_
*** 622,631 ****
    if (loop->scan_start)
      {
        struct loop_ivs *ivs = LOOP_IVS (loop);
!       struct iv_class *bl
! 	= REG_IV_CLASS (ivs, REGNO (loop_info->iteration_var));
  
!       if (INSN_LUID (bl->biv->insn) < INSN_LUID (loop->scan_start))
  	{
  	  if (loop_dump_stream)
  	    fprintf (loop_dump_stream,
--- 622,642 ----
    if (loop->scan_start)
      {
        struct loop_ivs *ivs = LOOP_IVS (loop);
!       struct iv_class *bl;
  
!       if (REG_IV_TYPE (ivs, REGNO (iteration_var)) == BASIC_INDUCT)
! 	bl = REG_IV_CLASS (ivs, REGNO (iteration_var));
!       else if (REG_IV_TYPE (ivs, REGNO (iteration_var)) == GENERAL_INDUCT)
! 	{
! 	  struct induction *v = REG_IV_INFO (ivs, REGNO (iteration_var));
! 	  bl = REG_IV_CLASS (ivs, REGNO (v->src_reg));
! 	}
!       else
! 	/* Iteration var must be an induction variable to get here.  */
! 	abort();
! 
!       if (INSN_UID (bl->biv->insn) < max_uid_for_loop
! 	  && INSN_LUID (bl->biv->insn) < INSN_LUID (loop->scan_start))
  	{
  	  if (loop_dump_stream)
  	    fprintf (loop_dump_stream,

WARNING: multiple messages have this Message-ID
From: Richard Henderson <rth@redhat.com>
To: Corey Minyard <minyard@acm.org>
Cc: gcc@gcc.gnu.org
Subject: Re: Loop optimization bug with Ada front end on PPC (and probably Alpha)
Date: Tue, 27 Nov 2001 15:31:00 -0000	[thread overview]
Message-ID: <20011127153020.A30273@redhat.com> (raw)
Message-ID: <20011127153100.J2d5wDKGtgvi0kbNVBR8T4LSLApa6fByckoUZtFZ9zs@z> (raw)
In-Reply-To: <3C041C3F.3030508@acm.org>

On Tue, Nov 27, 2001 at 05:05:35PM -0600, Corey Minyard wrote:
> You will need to set the bl variable a little differently, in case its a 
> GIV.  I've attached a patch.  That was the cause of my segv earlier. 

Ug.  I should have done a complete bootstrap with ia64 as well --
Seems that some cases the BIV initializer is constructed by loop,
or something.  In any case, INSN_LUID aborts.

>  Bootstrapping again....

Me too.  Current patch appended.


r~



Index: doloop.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doloop.c,v
retrieving revision 1.13
diff -c -p -d -r1.13 doloop.c
*** doloop.c	2001/11/27 22:09:10	1.13
--- doloop.c	2001/11/27 23:29:17
*************** doloop_modify_runtime (loop, iterations_
*** 622,631 ****
    if (loop->scan_start)
      {
        struct loop_ivs *ivs = LOOP_IVS (loop);
!       struct iv_class *bl
! 	= REG_IV_CLASS (ivs, REGNO (loop_info->iteration_var));
  
!       if (INSN_LUID (bl->biv->insn) < INSN_LUID (loop->scan_start))
  	{
  	  if (loop_dump_stream)
  	    fprintf (loop_dump_stream,
--- 622,642 ----
    if (loop->scan_start)
      {
        struct loop_ivs *ivs = LOOP_IVS (loop);
!       struct iv_class *bl;
  
!       if (REG_IV_TYPE (ivs, REGNO (iteration_var)) == BASIC_INDUCT)
! 	bl = REG_IV_CLASS (ivs, REGNO (iteration_var));
!       else if (REG_IV_TYPE (ivs, REGNO (iteration_var)) == GENERAL_INDUCT)
! 	{
! 	  struct induction *v = REG_IV_INFO (ivs, REGNO (iteration_var));
! 	  bl = REG_IV_CLASS (ivs, REGNO (v->src_reg));
! 	}
!       else
! 	/* Iteration var must be an induction variable to get here.  */
! 	abort();
! 
!       if (INSN_UID (bl->biv->insn) < max_uid_for_loop
! 	  && INSN_LUID (bl->biv->insn) < INSN_LUID (loop->scan_start))
  	{
  	  if (loop_dump_stream)
  	    fprintf (loop_dump_stream,

  reply	other threads:[~2001-11-27 23:31 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-11-13  5:20 Corey Minyard
2001-11-13  6:05 ` David Edelsohn
2001-11-14  8:05   ` Corey Minyard
2001-11-13  8:02 ` guerby
2001-11-13  9:48   ` Corey Minyard
2001-11-16 22:19     ` David Edelsohn
2001-11-26  7:39       ` David Edelsohn
2001-11-15  0:48 ` Richard Henderson
2001-11-15 14:19   ` Andreas Schwab
2001-11-15 16:20     ` Richard Henderson
2001-11-25 12:23       ` Richard Henderson
2001-11-18  9:18     ` Richard Henderson
2001-11-27  0:02       ` Richard Henderson
2001-11-25  8:57     ` Andreas Schwab
2001-11-15 18:02   ` Corey Minyard
2001-11-15 19:37     ` Richard Henderson
2001-11-25 15:52       ` Richard Henderson
2001-11-16  3:13     ` Richard Henderson
2001-11-16  3:42       ` Corey Minyard
2001-11-16  8:54         ` Bryce McKinlay
2001-11-26  0:47           ` Bryce McKinlay
2001-11-25 20:27         ` Corey Minyard
2001-11-17  1:33       ` Corey Minyard
2001-11-17  6:09         ` Corey Minyard
2001-11-26 10:22           ` Corey Minyard
2001-11-17 11:51         ` Richard Henderson
2001-11-17 15:20           ` Corey Minyard
2001-11-26 14:45             ` Corey Minyard
2001-11-18  5:15           ` Corey Minyard
2001-11-18  8:59             ` Richard Henderson
2001-11-19  2:58               ` Corey Minyard
2001-11-19  3:11                 ` Richard Henderson
2001-11-19  5:36                   ` Corey Minyard
2001-11-19  7:48                     ` Richard Henderson
2001-11-19  7:58                       ` Corey Minyard
2001-11-19  9:43                         ` Richard Henderson
2001-11-19 12:44                           ` Corey Minyard
2001-11-19 13:53                             ` Richard Henderson [this message]
2001-11-20 11:20                               ` Corey Minyard
2001-11-27 19:57                                 ` Corey Minyard
2001-11-27 15:31                               ` Richard Henderson
2001-11-27 15:04                             ` Corey Minyard
2001-11-27 14:27                           ` Richard Henderson
2001-11-27 13:25                         ` Corey Minyard
2001-11-27 12:58                       ` Richard Henderson
2001-11-27 11:51                     ` Corey Minyard
2001-11-27 10:29                   ` Richard Henderson
2001-11-27 10:08                 ` Corey Minyard
2001-11-26 23:18               ` Richard Henderson
2001-11-26 17:15             ` Corey Minyard
2001-11-26 13:49           ` Richard Henderson
2001-11-26  8:58         ` Corey Minyard
2001-11-25 17:58       ` Richard Henderson
2001-11-25 15:06     ` Corey Minyard
2001-11-15 18:47 Richard Kenner
2001-11-25 15:13 ` Richard Kenner
2001-11-15 19:05 dewar
2001-11-25 15:20 ` dewar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20011127153020.A30273@redhat.com \
    --to=rth@redhat.com \
    --cc=gcc@gcc.gnu.org \
    --cc=minyard@acm.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).