public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "rth at gcc dot gnu dot org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/19161] No emms or femms emitted between MMX and FP instructions
Date: Tue, 23 Aug 2005 20:56:00 -0000	[thread overview]
Message-ID: <20050823204817.21901.qmail@sourceware.org> (raw)
In-Reply-To: <20041226201629.19161.rth@gcc.gnu.org>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1433 bytes --]


------- Additional Comments From rth at gcc dot gnu dot org  2005-08-23 20:48 -------
So, I fixed another case in which we could die in create_pre_exit having
to do with complex return values.  But past that, there are failures that
are completely within optimize_mode_switching, e.g. execute/20050604-1.c.

$ ./cc1 -m32 -march=pentium4 z.c
 foo
z.c: In function ‘foo’:
z.c:28: error: unable to find a register to spill in class ‘MMX_REGS’
z.c:28: error: this is the insn:
(insn 14 63 15 2 (set (reg:V4HI 61 [ D.1620 ])
        (mem/s/j:V4HI (symbol_ref:SI ("u") <var_decl 0x2aaaadaff160 u>)
                      [0 u.v+0 S8 A64])) 994 {*movv4hi_internal} (nil)
    (nil))

The problem is that we have a CFG like
     +--+
     v  |
  1->2->3->4
and we place the efpu insn in block 2, but the emms insn in block 4.

Aside from being Less Than Ideal, this results in BOTH mmx and fpu
registers live around the loop, which means we can't allocate anything.

Uros, you should bootstrap i386 with --with-arch=foo, where foo is 
whatever machine you have that supports at least mmx.  Otherwise, you're
not actually testing this new code on i386 except for the few test
cases that force an -march or -mmx option.

I'll keep looking at it for a bit to see if its something simple, but
we're not going to overhaul optimize_mode_switching for 4.1 if it's
something complicated.

-- 


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


  parent reply	other threads:[~2005-08-23 20:48 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-26 20:16 [Bug target/19161] New: " rth at gcc dot gnu dot org
2004-12-26 21:20 ` [Bug target/19161] " pinskia at gcc dot gnu dot org
2004-12-27  0:24 ` pinskia at gcc dot gnu dot org
2004-12-27  0:26 ` pinskia at gcc dot gnu dot org
2005-01-18  9:54 ` rth at gcc dot gnu dot org
2005-06-21 11:20 ` steven at gcc dot gnu dot org
2005-06-24 14:03 ` pluto at agmk dot net
2005-06-24 20:33 ` uros at kss-loka dot si
2005-06-25  6:26 ` pluto at agmk dot net
2005-06-25  7:40 ` uros at kss-loka dot si
2005-07-21  8:53 ` uros at kss-loka dot si
2005-07-22  9:42 ` uros at kss-loka dot si
2005-07-23 15:51 ` pluto at agmk dot net
2005-07-23 17:23 ` pluto at agmk dot net
2005-08-19 11:08 ` uros at kss-loka dot si
2005-08-22 20:43 ` rth at gcc dot gnu dot org
2005-08-23 20:56 ` rth at gcc dot gnu dot org [this message]
2005-08-23 21:38 ` rth at gcc dot gnu dot org
2005-08-24 14:46 ` uros at kss-loka dot si
2005-09-22 13:11 ` pluto at agmk dot net
     [not found] <bug-19161-119@http.gcc.gnu.org/bugzilla/>
2005-11-02  6:39 ` rth at gcc dot gnu dot org
2008-01-04 22:44 ` Richard dot Barnes at stratus dot com
2008-03-19 10:39 ` ubizjak at gmail dot com

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=20050823204817.21901.qmail@sourceware.org \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.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).