public inbox for cgen@sourceware.org
 help / color / mirror / Atom feed
From: Joern Rennecke <joernr@arc.com>
To: Doug Evans <dje@transmeta.com>
Cc: cgen@sources.redhat.com
Subject: Re: delayed branches and zero overhead loops
Date: Wed, 14 Feb 2007 19:22:00 -0000	[thread overview]
Message-ID: <20070214192232.GC18550@elsdt-razorfish.arc.com> (raw)
In-Reply-To: <17875.21785.589853.195295@casey.transmeta.com>

On Wed, Feb 14, 2007 at 10:29:45AM -0800, Doug Evans wrote:
> Joern Rennecke writes:
> 
>  > If you wanted to generate a gcc machine description, than this is
>  > in principle relevant - except that expressing this all in generic rtl
>  > would likely lead the machine description generator to give up,
>  > since it won't be able to find any basic arithmetic instructions -
>  > every instruction will be flagged as having conditional flow control.
> 
> I wouldn't add this specification to the insns.  Blech.
> I would add it to the same place where "condition" and "setup-semantics" is.

Yes, that's a reasonable place to put the specification for the semantics
when you are executing one insn at a time.  Still, there should also
be a way to streamline this with the pbb simulator.
Note that trying to do this fully automatic would require a combination of
profiling and artificial intelligence; you need to realize that, although
loop_end can be changed at runtime, it is not likely to change all too often,
so it makese sense to to the comparison at decode time, and invalidate
any decoded pbb if a new loop end is placed inside it.

FWIW, the condition part of the isa form is actually not usable for ARC,
since not all instruction take the canonical condition.
lpcc takes it, but it has a no-noop 'else' operation.  A number of
instructions take a different condition, or none at all.

> No claim is made that new fields that are reasonable can't be added here.
> 
>  > > Having said that, I can imagine partitioning the description file
>  > > into multiple files such that these pseudo-insns are only seen by
>  > > the application in question.
>  > 
>  > Why does it have to be yet another file?  There is already a syntax-only
>  > attribute that specifies that some information is only for applications that
>  > care about syntax.
>  > Not that I am fundamentally opposed to doing it with separate files,
>  > but it appears to me that it makes things core complicated rather than
>  > simpler.
> 
> There's no basic limit on the number of applications that can use cgen.
> I would argue against a modus operandi that had the default behaviour
> of adding such (obvious) application specific stuff to the basic
> cpu description file.  When working with libraries, programmers don't
> think of modifying the library in their first pass at using it.
> Same reasoning applies here.

Then we'd need some mechanism to allow sem*switch.c to be built using
application-specific fragments, so that the required pseudo instruction
can be included in the switch.

Would you also want to re-design the way the sh.cpu deals with the different
delay slot mechanisms of sim and sid?
It seems rather strange that delay slots have to be described in two
languages at once.

      reply	other threads:[~2007-02-14 19:22 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-13 15:37 Joern Rennecke
2007-02-13 18:51 ` Frank Ch. Eigler
2007-02-13 21:00   ` Joern Rennecke
2007-02-13 21:12     ` Frank Ch. Eigler
2007-02-13 22:21       ` Joern Rennecke
2007-02-14 17:09         ` Dave Brolley
2007-02-14 18:30           ` Joern Rennecke
2007-02-14 19:52             ` Dave Brolley
2007-02-14 20:15               ` Joern Rennecke
2007-02-16 20:54                 ` Dave Brolley
2007-02-19  3:39                   ` Joern Rennecke
     [not found]                     ` <45D9C06A.4030903@redhat.com>
2007-02-19 15:56                       ` Joern Rennecke
2007-02-19 16:07                         ` Frank Ch. Eigler
2007-02-19 18:14                           ` Joern Rennecke
2007-02-19 18:19                             ` Dave Brolley
2007-02-22 15:50                               ` Joern Rennecke
2007-02-22 16:08                               ` insert evaluation for multi-ifields broken Joern Rennecke
2007-02-22 16:56                                 ` Dave Brolley
2007-02-22 18:14                                   ` Joern Rennecke
2007-02-23 17:45                                     ` Dave Brolley
2007-02-15 16:54               ` delayed branches and zero overhead loops Joern Rennecke
2007-02-14 18:58       ` decode-bitsize (Was: Re: delayed branches and zero overhead loops) Joern Rennecke
2007-02-13 19:25 ` delayed branches and zero overhead loops Doug Evans
2007-02-13 20:38   ` Joern Rennecke
2007-02-14 18:30     ` Doug Evans
2007-02-14 19:22       ` Joern Rennecke [this message]

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=20070214192232.GC18550@elsdt-razorfish.arc.com \
    --to=joernr@arc.com \
    --cc=cgen@sources.redhat.com \
    --cc=dje@transmeta.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 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).