All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Sandiford <rsandifo@redhat.com>
To: Richard Henderson <rth@redhat.com>
Cc: "Maciej W. Rozycki" <macro@linux-mips.org>,
	Nigel Stephens <nigel@mips.com>,
	gcc-patches@gcc.gnu.org, linux-mips@linux-mips.org
Subject: Re: [patch] MIPS/gcc: Revert removal of DImode shifts for 32-bit targets
Date: Sat, 04 Sep 2004 09:53:28 +0100	[thread overview]
Message-ID: <873c1ytnxz.fsf@redhat.com> (raw)
In-Reply-To: <20040903201510.GB13228@redhat.com> (Richard Henderson's message of "Fri, 3 Sep 2004 13:15:10 -0700")

Richard Henderson <rth@redhat.com> writes:
> On Fri, Sep 03, 2004 at 08:29:39AM +0100, Richard Sandiford wrote:
>> The patch I posted this week was in response to the request for
>> wider-ranging target support:
>> 
>>     http://gcc.gnu.org/ml/gcc-patches/2004-08/msg00606.html
>
> Ah.  I wasn't actually asking for wider target support.  I was 
> commenting that if we wanted something better, we'd have to add
> new target support.

Ooops!  I misunderstood, sorry.

>> Is the new target hook really that invasive?  It doesn't affect any
>> other code as such.
>
> No... I guess not.  And it is a start if we ever do decide to
> expand its meaning to replace S_C_T.
[...]
> Ok, revised patch approved.

Thanks, applied.

Looking back, I see I didn't do a very good job of explaining why
I think S_C_T and this target hook are doing two different things.
A bit more explanation (mostly for the record, since I doubt I'm
saying anything surprising here):

I can only see two optimisations guarded by !S_C_T, both of them in
combine.c.  They only disallow S_C_T because we might have already
optimised the construct in a different way.  All other uses of S_C_T
are used for shifts.

So the important point is that: although S_C_T requires a particular
behaviour for things like ZERO_EXTRACT, it is never actually used in
a positive context for ZERO_EXTRACT rtxes.  S_C_T is only ever used
in a positive context for shift rtxes.

As I understand it, the reason that S_C_T has those extra requirements
is that we have no way of tracking where a particular shift came from.
Sometimes it might come from an insn's PATTERN, sometimes it might be
the result of some temporary rewrites, such as that performed by combine.c
for "compound" operations.  The definition of S_C_T says that these
rewrites must be valid.


It sounds like you're saying that the target hook should eventually
be extended to cover shift rtxes rather than shift optabs, and that
anything which generates a shift rtx should make sure the rtx behaves
correctly wrt these hooks.  So, for example, the onus for verifying the
ZERO_EXTRACT rewrites should be with combine rather than the backend.
Is that right?  If so, I'll try to look at that in the 3.6 timeframe.

Richard

  reply	other threads:[~2004-09-04  8:53 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-19 15:35 [patch] MIPS/gcc: Revert removal of DImode shifts for 32-bit targets Maciej W. Rozycki
2004-07-19 16:59 ` Richard Sandiford
2004-07-19 17:32   ` [patch] MIPS/gcc: Revert removal of DImode shifts for 32-bittargets David Edelsohn
2004-07-19 17:33   ` [patch] MIPS/gcc: Revert removal of DImode shifts for 32-bit targets Maciej W. Rozycki
2004-07-19 17:37     ` Richard Sandiford
2004-07-19 21:38     ` Richard Henderson
2004-07-23 14:41       ` Maciej W. Rozycki
2004-07-23 20:27         ` Richard Henderson
2004-07-23 21:12           ` Ralf Baechle
2004-07-26 11:56             ` Maciej W. Rozycki
2004-08-02 20:03               ` Nigel Stephens
2004-08-03  5:30                 ` Richard Sandiford
2004-08-03  9:22                   ` Nigel Stephens
2004-08-03  9:36                     ` Richard Sandiford
2004-08-03  9:54                       ` Nigel Stephens
2004-08-04 19:57                         ` Maciej W. Rozycki
2004-08-04 20:37                           ` Nigel Stephens
2004-08-04 20:54                             ` Maciej W. Rozycki
2004-08-04 23:39                               ` Nigel Stephens
2004-08-07 19:01                           ` Richard Sandiford
2004-08-09 22:08                             ` Richard Henderson
2004-08-10  5:30                               ` Richard Sandiford
2004-08-10 23:20                                 ` Richard Henderson
2004-08-11  0:24                                   ` Andreas Schwab
2004-08-11  0:40                                   ` Paul Brook
2004-08-11  4:32                                     ` Richard Henderson
2004-08-31 19:51                                   ` Richard Sandiford
2004-09-03  6:53                                     ` Richard Henderson
2004-09-03  7:05                                       ` Richard Sandiford
2004-09-03  7:08                                         ` Richard Henderson
2004-09-03  7:11                                           ` Richard Sandiford
2004-09-03  7:20                                             ` Richard Henderson
2004-09-03  7:29                                               ` Richard Sandiford
2004-09-03 20:15                                                 ` Richard Henderson
2004-09-04  8:53                                                   ` Richard Sandiford [this message]
2004-09-05  0:03                                                     ` Richard Henderson

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=873c1ytnxz.fsf@redhat.com \
    --to=rsandifo@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=linux-mips@linux-mips.org \
    --cc=macro@linux-mips.org \
    --cc=nigel@mips.com \
    --cc=rth@redhat.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.