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