public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "ubizjak at gmail dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/32413] [4.3 Regression] internal compiler error: in reload_cse_simplify_operands, at postreload.c:396
Date: Fri, 22 Jun 2007 09:50:00 -0000	[thread overview]
Message-ID: <20070622095039.21169.qmail@sourceware.org> (raw)
In-Reply-To: <bug-32413-13856@http.gcc.gnu.org/bugzilla/>



------- Comment #2 from ubizjak at gmail dot com  2007-06-22 09:50 -------
The problem here is exposed with core2_cost table, where mmxsse_to_integer is
as low (2 units) as move between integer registers (2 units). Such a low value
causes gcc to happily move SImode values between SSE and integer registers.

The problem itself is in ix86_modes_tieable_p(). Since all integer modes are
tieable, They have to be tieable in ALL register classes. Due to this, we must
enable HImode and QImode moves to, from and between SSE and MMX register.

A question arises, if this is a wise thing to do. Having all integer modes
wandering around in SSE as well as integer registers is not a good thing, as we
will have many moves between these sets (you can't add a SImode value in SSE,
SSE regs can't be index registers, etc). Due to this, perhaps the best solution
is to artifically raise mmxsse_to_integer to 8 units, and this will effectively
prevent moves to and from register sets.


-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2007-06-22 09:50:39
               date|                            |


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


  parent reply	other threads:[~2007-06-22  9:50 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-20  8:35 [Bug c++/32413] New: " jojelino at gmail dot com
2007-06-20  8:39 ` [Bug c++/32413] " jojelino at gmail dot com
2007-06-20 12:47 ` [Bug target/32413] " pinskia at gcc dot gnu dot org
2007-06-21 22:45 ` pinskia at gcc dot gnu dot org
2007-06-22  9:50 ` ubizjak at gmail dot com [this message]
2007-06-22 12:03 ` ubizjak at gmail dot com
2007-06-22 17:51 ` uros at gcc dot gnu dot org
2007-06-22 18:55 ` 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=20070622095039.21169.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).