public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "uweigand at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug rtl-optimization/44141] Redundant loads and stores generated for AMD bdver1 target
Date: Mon, 07 May 2012 17:28:00 -0000	[thread overview]
Message-ID: <bug-44141-4-sf5bNSqwmg@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-44141-4@http.gcc.gnu.org/bugzilla/>

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

--- Comment #16 from Ulrich Weigand <uweigand at gcc dot gnu.org> 2012-05-07 17:17:06 UTC ---
Reload inheritance generally gives up on handling subregs of pseudos, mostly
because there is no mechanism to track invalidation of parts of pseudos.

Now, in this particular case where a subreg still refers to the whole of the
pseudo and just re-interprets it as a different vector mode, it might be
possible to enhance inheritance support to handle such cases.

But this looks like a significant chance to what is already one of the most
complex parts of reload -- and would certainly involve some risk of introducing
subtle bugs.   I'm not sure if this is worth the effort ...

In particular, in this specific case the back-end could make things a whole lot
simpler by not insisting on a particular mode.  I understand MOVUPS simply
moves 16 bytes between (unaligned) memory and registers -- there's nothing in
particular that requires this to be encoded as V4SF mode.

I'd suggest simply extending the movups patterns to handle moves between
arbitrary 16-byte (vector?) modes, all in the end resolving to the same
assembler instruction.  Then you'd be able to just encode the move in question
along the lines of
   (set (reg:V2DF) (unspec:V2DF [(mem:V2DF ...)] UNSPEC_MOVU))
which would probably generate better code not just in reload, but other parts
of the RTL middle-end as well ...

[ An even more radical change might be to encode both movups and movaps as just
plain moves, with no unspec, and have the final assembly output make the choice
between the two based on the operand's MEM_ALIGN value ... Of course, this
needs MEM_ALIGN to be always correct. ]


  parent reply	other threads:[~2012-05-07 17:18 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <bug-44141-4@http.gcc.gnu.org/bugzilla/>
2012-02-22 13:21 ` [Bug target/44141] " xiaoyuanbo at yeah dot net
2012-03-22 13:24 ` venkataramanan.kumar at amd dot com
2012-03-22 13:26 ` venkataramanan.kumar at amd dot com
2012-03-22 13:29 ` venkataramanan.kumar at amd dot com
2012-03-22 13:56 ` ubizjak at gmail dot com
2012-03-27 10:52 ` venkataramanan.kumar at amd dot com
2012-03-27 11:27 ` venkataramanan.kumar at amd dot com
2012-03-27 17:05 ` [Bug rtl-optimization/44141] " ubizjak at gmail dot com
2012-03-28  3:23 ` venkataramanan.kumar at amd dot com
2012-03-28  7:08 ` ubizjak at gmail dot com
2012-03-28  8:01 ` jakub at gcc dot gnu.org
2012-03-28 10:42 ` venkataramanan.kumar at amd dot com
2012-03-28 10:53 ` jakub at gcc dot gnu.org
2012-04-01  7:55 ` venkataramanan.kumar at amd dot com
2012-05-07 17:28 ` uweigand at gcc dot gnu.org [this message]
2012-05-08 10:28 ` [Bug target/44141] " rguenth at gcc dot gnu.org
2012-05-08 10:36 ` ubizjak at gmail dot com
2012-05-09 17:04 ` ubizjak at gmail dot com
2012-05-09 18:37 ` uros at gcc dot gnu.org
2012-05-09 20:42 ` 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=bug-44141-4-sf5bNSqwmg@http.gcc.gnu.org/bugzilla/ \
    --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).