public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "dave at hiauly1 dot hia dot nrc dot ca" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/34091] [4.2/4.3 Regression] ICE in reload_cse_simplify_operands, at postreload.c:392
Date: Sat, 24 Nov 2007 21:31:00 -0000	[thread overview]
Message-ID: <20071124213110.17774.qmail@sourceware.org> (raw)
In-Reply-To: <bug-34091-12387@http.gcc.gnu.org/bugzilla/>



------- Comment #10 from dave at hiauly1 dot hia dot nrc dot ca  2007-11-24 21:31 -------
Subject: Re:  [4.2/4.3 Regression] ICE in reload_cse_simplify_operands, at
postreload.c:392

>    We need a temporary when loading/storing a HImode/QImode value
>    between memory and the FPU registers.  This can happen when combine puts
>    a paradoxical subreg in a float/fix conversion insn.

This looks like an alternative solution to the HImode/QImode problem,
although the SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS
macros are now obsolete.  Guess the same could be done with
TARGET_SECONDARY_RELOAD.

Is there a reason why you want to load/store HImode/QImode values in
the FPU registers on sparc?  On the pa, there aren't any insns that
operate on them.  So, the only reason we supported this was because
these modes are tied to SImode and DImode.  Not supporting FPU loads
and stores of HImode/QImode values allowed me to eliminates some
duplication of patterns.

I haven't seen the paradoxical subreg in a float/fix conversion
insns with the current patch.  I did see this in some of the first
versions of pa_cannot_change_mode_class.  I think I eliminated
this problem by prevent mode changes in the FP registers:

  if (MAYBE_FP_REG_CLASS_P (class))
      return true;

Due you think this problem is latent?

I stopped using secondary memory on the 32-bit targets because
FPU loads and stores only support 5-bit immediates.  Because of this,
the port was using SECONDARY_MEMORY_NEEDED_RTX and a free stack
slot in the frame marker of the caller.  However, this failed in
the rare case when a const function got placed between the load
and store.

I moved the SECONDARY_MEMORY_NEEDED define as I saw some code
while debugging that wasn't optimised away on the 32-bit port.

Dave


-- 


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


  parent reply	other threads:[~2007-11-24 21:31 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-14  8:51 [Bug target/34091] New: " tbm at cyrius dot com
2007-11-14  8:52 ` [Bug target/34091] " tbm at cyrius dot com
2007-11-14  8:53 ` tbm at cyrius dot com
2007-11-14  8:53 ` tbm at cyrius dot com
2007-11-14 15:58 ` dave at hiauly1 dot hia dot nrc dot ca
2007-11-19  3:51 ` pinskia at gcc dot gnu dot org
2007-11-22  3:13 ` dave at hiauly1 dot hia dot nrc dot ca
2007-11-24 19:00 ` ebotcazou at gcc dot gnu dot org
2007-11-24 19:27 ` dave at hiauly1 dot hia dot nrc dot ca
2007-11-24 20:31 ` ebotcazou at gcc dot gnu dot org
2007-11-24 21:31 ` dave at hiauly1 dot hia dot nrc dot ca [this message]
2007-11-24 21:47 ` ebotcazou at gcc dot gnu dot org
2007-11-24 22:14 ` dave at hiauly1 dot hia dot nrc dot ca
2007-11-24 23:36 ` ebotcazou at gcc dot gnu dot org
2007-11-27  6:01 ` mmitchel at gcc dot gnu dot org
2007-12-05 17:19 ` danglin at gcc dot gnu dot org
2007-12-05 17:42 ` ebotcazou at gcc dot gnu dot org
2007-12-05 19:01 ` dave at hiauly1 dot hia dot nrc dot ca
2007-12-09 18:02 ` danglin at gcc dot gnu dot org
2007-12-09 19:50 ` jakub at gcc dot gnu dot org
2007-12-09 20:39 ` dave at hiauly1 dot hia dot nrc dot ca
2007-12-09 21:31 ` [Bug target/34091] [4.2 " jakub at gcc dot gnu dot org
2007-12-10  3:17 ` danglin at gcc dot gnu dot org
2007-12-10  3:26 ` danglin at gcc dot gnu dot org
2007-12-14  1:02 ` danglin at gcc dot gnu dot org

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