public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c/3917
@ 2001-09-17 22:36 Jim Wilson
  0 siblings, 0 replies; 2+ messages in thread
From: Jim Wilson @ 2001-09-17 22:36 UTC (permalink / raw)
  To: wilson; +Cc: gcc-prs

The following reply was made to PR c/3917; it has been noted by GNATS.

From: Jim Wilson <wilson@redhat.com>
To: gcc-gnats@gcc.gnu.org, gcc-prs@gcc.gnu.org, gbv@ctv.es,
   gcc-bugs@gcc.gnu.org, wilson@gcc.gnu.org
Cc:  
Subject: Re: c/3917
Date: Mon, 17 Sep 2001 22:28:53 -0700

 I included the patch as a file attachment, and it didn't get included in
 the mail
 message.  Maybe that wasn't smart, so I am including it again here.
 
 
 Index: ia64.c
 ===================================================================
 RCS file: /cvs/gcc/gcc/gcc/config/ia64/ia64.c,v
 retrieving revision 1.120
 diff -p -r1.120 ia64.c
 *** ia64.c	2001/08/23 19:27:54	1.120
 --- ia64.c	2001/09/14 02:08:41
 *************** itanium_split_issue (p, begin)
 *** 5153,5161 ****
         enum attr_type t = (t0 == TYPE_L ? TYPE_F
   			  : t0 == TYPE_X ? TYPE_I
   			  : t0);
 !       int max = (t == TYPE_B ? 3 : t == TYPE_F ? 1 : 2);
         if (type_count[t] == max)
   	return i;
         type_count[t]++;
       }
     return split;
 --- 5153,5165 ----
         enum attr_type t = (t0 == TYPE_L ? TYPE_F
   			  : t0 == TYPE_X ? TYPE_I
   			  : t0);
 ! 
 !       /* Itanium can execute up to 3 branches, 2 floating point, 2
 memory, and! 	 2 integer per cycle.  */
 !       int max = (t == TYPE_B ? 3 : 2);
         if (type_count[t] == max)
   	return i;
 + 
         type_count[t]++;
       }
     return split;
 *************** insn_matches_slot (p, itype, slot, insn)
 *** 5347,5353 ****
   	{
   	  int i;
   	  for (i = sched_data.first_slot; i < slot; i++)
 ! 	    if (p->t[i] == stype)
   	      return 0;
   	}
         if (GET_CODE (insn) == CALL_INSN)
 --- 5351,5359 ----
   	{
   	  int i;
   	  for (i = sched_data.first_slot; i < slot; i++)
 ! 	    if (p->t[i] == stype
 ! 		|| (stype == TYPE_F && p->t[i] == TYPE_L)
 ! 		|| (stype == TYPE_I && p->t[i] == TYPE_X))
   	      return 0;
   	}
         if (GET_CODE (insn) == CALL_INSN)
 *************** cycle_end_fill_slots (dump)
 *** 5487,5492 ****
 --- 5493,5504 ----
   	  sched_data.types[slot] = packet->t[slot];
   	  sched_data.insns[slot] = 0;
   	  sched_data.stopbit[slot] = 0;
 + 
 + 	  /* ??? TYPE_L instructions always fill up two slots, but we don't
 + 	     support TYPE_L nops.  */
 + 	  if (packet->t[slot] == TYPE_L)
 + 	    abort ();
 + 
   	  slot++;
   	}
         /* Do _not_ use T here.  If T == TYPE_A, then we'd risk changing
 the
 *************** cycle_end_fill_slots (dump)
 *** 5495,5500 ****
 --- 5507,5515 ----
         sched_data.insns[slot] = tmp_insns[i];
         sched_data.stopbit[slot] = 0;
         slot++;
 +       /* TYPE_L instructions always fill up two slots.  */
 +       if (t == TYPE_L)
 + 	slot++;
       }
   
     /* This isn't right - there's no need to pad out until the forced
 split;
 
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=3917&database=gcc


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

* Re: c/3917
@ 2001-08-07 11:36 Guillermo Ballester Valor
  0 siblings, 0 replies; 2+ messages in thread
From: Guillermo Ballester Valor @ 2001-08-07 11:36 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR c/3917; it has been noted by GNATS.

From: Guillermo Ballester Valor <gbv@ctv.es>
To: gcc-gnats@gcc.gnu.org, gcc-prs@gcc.gnu.org, gbv@ctv.es,
   gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org
Cc:  
Subject: Re: c/3917
Date: Tue, 07 Aug 2001 20:35:05 +0200

 This is a multi-part message in MIME format.
 --------------DE8431CEFE92A44C6676A8AF
 Content-Type: text/plain; charset=us-ascii
 Content-Transfer-Encoding: 7bit
 
 HI
 
 Sorry by any inconvenience I could say. I'm a newbe here. I am the same
 person who send the referenced bug. I've been seeing some assembler
 outputs for IA-64. I have not seen any pair of 'mfi' boundles in the
 same cycle, and it had to be in many cases.
 
 I've searched in the gcc-code (hard-task). I've seen a suspicious code
 line in 'ia64.c' routine 'itanium_split_issue'. In the current version
 (7-Aug-2001 18:00 TMG) it seems there is only a F_TYPE slot permitted in
 the bundle window. I think it sould be two. 
 
 Here is the patch i proposed. I'm not sure about it.
 
 Guillermo. 
 
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=3917&database=gcc
 
 -- 
 Guillermo Ballester Valor
 gbv@ctv.es
 Granada (Spain)
 --------------DE8431CEFE92A44C6676A8AF
 Content-Type: text/plain; charset=us-ascii;
  name="difer"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: inline;
  filename="difer"
 
 *** ia64.c	Tue Aug  7 20:11:45 2001
 --- ../gcc/gcc/gcc/config/ia64/ia64.c	Mon Aug  6 19:17:28 2001
 ***************
 *** 5053,5059 ****
         enum attr_type t = (t0 == TYPE_L ? TYPE_F
   			  : t0 == TYPE_X ? TYPE_I
   			  : t0);
 !       int max = (t == TYPE_B ? 3 : t == 2);
         if (type_count[t] == max)
   	return i;
         type_count[t]++;
 --- 5053,5059 ----
         enum attr_type t = (t0 == TYPE_L ? TYPE_F
   			  : t0 == TYPE_X ? TYPE_I
   			  : t0);
 !       int max = (t == TYPE_B ? 3 : t == TYPE_F ? 1 : 2);
         if (type_count[t] == max)
   	return i;
         type_count[t]++;
 
 --------------DE8431CEFE92A44C6676A8AF--
 


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

end of thread, other threads:[~2001-09-17 22:36 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-09-17 22:36 c/3917 Jim Wilson
  -- strict thread matches above, loose matches on Subject: below --
2001-08-07 11:36 c/3917 Guillermo Ballester Valor

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