public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/20632] New: GCC should avoid generating F- and B-unit NOPs
@ 2005-03-24 23:46 davidm at hpl dot hp dot com
  2005-03-31 23:26 ` [Bug target/20632] " cvs-commit at gcc dot gnu dot org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: davidm at hpl dot hp dot com @ 2005-03-24 23:46 UTC (permalink / raw)
  To: gcc-bugs

Chips derived from McKinley-core (Itanium 2, etc.) have an anomaly which can
cause stalls if an F-unit instruction (including a NOP) is issued within a
six-cycle window after reading certain application registers (such as ar.bsp). 
Furthermore, power-considerations also argue against the use of F-unit
instructions unless they're really needed.

Similarly, using B-unit NOPs is probably not a great idea for McKinley-derived
cores: certain templates with B unit instructions cause split-issue and the BBB
template in particular causes a branch-prediction anomaly (the first two
branches are predicated based on the slot 0 hints.

Unfortunately, at the moment the GCC scheduler still seems to favor using F and
B-unit NOPs whenever possible.  This made sense for Merced (since it didn't have
sufficient M and I execution units) but really should be avoided for McKinley
and newer cores.

-- 
           Summary: GCC should avoid generating F- and B-unit NOPs
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: davidm at hpl dot hp dot com
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: ia64-linux
  GCC host triplet: ia64-linux
GCC target triplet: ia64-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20632


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

* [Bug target/20632] GCC should avoid generating F- and B-unit NOPs
  2005-03-24 23:46 [Bug target/20632] New: GCC should avoid generating F- and B-unit NOPs davidm at hpl dot hp dot com
@ 2005-03-31 23:26 ` cvs-commit at gcc dot gnu dot org
  2005-04-01  1:35 ` wilson at gcc dot gnu dot org
  2005-04-01  1:35 ` wilson at gcc dot gnu dot org
  2 siblings, 0 replies; 4+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-03-31 23:26 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-03-31 23:26 -------
Subject: Bug 20632

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	vmakarov@gcc.gnu.org	2005-03-31 23:26:35

Modified files:
	gcc            : ChangeLog genautomata.c 
	gcc/doc        : md.texi 
	gcc/config/ia64: ia64.c 

Log message:
	2005-03-31  Vladimir Makarov  <vmakarov@redhat.com>
	
	PR target/20632
	* genautomata.c (first_cycle_unit_presence): Check all alternative
	states for unit presence.
	
	* doc/md.texi: Remove remark about impossibility to query unit
	presence in non nondeterministic automaton state.
	
	* config/ia64/ia64.c (get_template): Change order of unit querying.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.8060&r2=2.8061
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/genautomata.c.diff?cvsroot=gcc&r1=1.61&r2=1.62
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/doc/md.texi.diff?cvsroot=gcc&r1=1.126&r2=1.127
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/ia64/ia64.c.diff?cvsroot=gcc&r1=1.352&r2=1.353



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20632


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

* [Bug target/20632] GCC should avoid generating F- and B-unit NOPs
  2005-03-24 23:46 [Bug target/20632] New: GCC should avoid generating F- and B-unit NOPs davidm at hpl dot hp dot com
  2005-03-31 23:26 ` [Bug target/20632] " cvs-commit at gcc dot gnu dot org
  2005-04-01  1:35 ` wilson at gcc dot gnu dot org
@ 2005-04-01  1:35 ` wilson at gcc dot gnu dot org
  2 siblings, 0 replies; 4+ messages in thread
From: wilson at gcc dot gnu dot org @ 2005-04-01  1:35 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From wilson at gcc dot gnu dot org  2005-04-01 01:35 -------
IA-64.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |wilson at gcc dot gnu dot
                   |dot org                     |org
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2005-04-01 01:35:08
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20632


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

* [Bug target/20632] GCC should avoid generating F- and B-unit NOPs
  2005-03-24 23:46 [Bug target/20632] New: GCC should avoid generating F- and B-unit NOPs davidm at hpl dot hp dot com
  2005-03-31 23:26 ` [Bug target/20632] " cvs-commit at gcc dot gnu dot org
@ 2005-04-01  1:35 ` wilson at gcc dot gnu dot org
  2005-04-01  1:35 ` wilson at gcc dot gnu dot org
  2 siblings, 0 replies; 4+ messages in thread
From: wilson at gcc dot gnu dot org @ 2005-04-01  1:35 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From wilson at gcc dot gnu dot org  2005-04-01 01:35 -------
Fixed by Vlad's patch.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |4.1.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20632


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

end of thread, other threads:[~2005-04-01  1:35 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-03-24 23:46 [Bug target/20632] New: GCC should avoid generating F- and B-unit NOPs davidm at hpl dot hp dot com
2005-03-31 23:26 ` [Bug target/20632] " cvs-commit at gcc dot gnu dot org
2005-04-01  1:35 ` wilson at gcc dot gnu dot org
2005-04-01  1:35 ` wilson at gcc dot gnu dot org

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