public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: DJ Delorie <dj@redhat.com>
To: schlie@comcast.net
Cc: gdr@integrable-solutions.net, gcc@gcc.gnu.org
Subject: Re: Compiling GCC with g++: a report
Date: Wed, 25 May 2005 06:10:00 -0000	[thread overview]
Message-ID: <200505250314.j4P3EVof001959@greed.delorie.com> (raw)
In-Reply-To: <BEB95CF5.A442%schlie@comcast.net> (message from Paul Schlie on Tue, 24 May 2005 22:36:37 -0400)


> Might it be more desirable for the compiler's code to only refer to
> target "type" modes as opposed to "size" modes?

Not always, see my mail about Pmode.  The problem isn't just how gcc
refers to machine words, but that gcc assumes their usage is context
independent or inflexible.  For example, assuming int_mode is the same
size as your general registers (esp when the target interface has a
way of asking how big hard regs actually are).

> Thereby avoiding the temptation to incorrectly assume that any
> particular "size" mode, like SImode corresponds to the targets int
> or int* mode for example?

I'd like to call my modes "FREDmode" and "WILMAmode" and the MI parts
shouldn't care at all.  Yes, I want to define addfredwilma3 MD
patterns.  If they need an "unsigned int" mode, they should ask the
target what "unsigned int" means (bits), and find a mode that matches
that description.  I'd like the MI to ask the target "I need to
multiply these types/modes together, what modes should I promote them
to, and what mode will the result be?"

I don't want to have to define a huge list of "mode types" when MI can
figure most of them out from a few BITS_PER_ defines, or from context.

> Thereby the compiler's code should only refer to "type" modes:

Don't type trees already have a machine_mode field?
I.e. TYPE_MODE(integer_type) ?  I know decls do.

The target already has a set of bits-per-type settings, we can look up
modes by size that way and assign them to tree TYPE nodes as needed.

The target would need a new set of hooks for things like "mode for
address of foo" or "mode of stack pointer" or "best mode for hard reg".

The rest of gcc should avoid looking up modes in general, so it's ok
for a lookup_integer_mode_by_bits() call to be expensive.  Instead,
the mode should be deduced (or copied) from the available operands.
Perhaps a fast mode_wider_expanded() lookup for expanding multiplies.

  reply	other threads:[~2005-05-25  3:14 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-25  5:26 Paul Schlie
2005-05-25  6:10 ` DJ Delorie [this message]
2005-05-25 11:46   ` Paul Schlie
2005-05-25 18:31     ` DJ Delorie
2005-05-25 21:41       ` Paul Schlie
2005-05-26  6:11         ` DJ Delorie
2005-05-26  8:15           ` Paul Schlie
2005-05-26 11:57             ` DJ Delorie
  -- strict thread matches above, loose matches on Subject: below --
2005-05-25 19:27 Richard Kenner
2005-05-23 11:50 Gabriel Dos Reis
2005-05-23 12:22 ` Ranjit Mathew
2005-05-23 19:07   ` Tom Tromey
2005-05-23 18:04 ` Gabriel Dos Reis
2005-05-24  4:57 ` Gabriel Dos Reis
2005-05-24  4:59   ` Joseph S. Myers
2005-05-24 21:50   ` Kevin Handy
2005-05-25 12:02     ` Bernardo Innocenti
2005-05-24  5:54 ` Zack Weinberg
2005-05-24  6:04   ` Daniel Jacobowitz
2005-05-24  6:22     ` Gabriel Dos Reis
2005-05-24  6:29     ` Zack Weinberg
2005-05-24  6:31       ` Mark Mitchell
2005-05-24  7:08         ` Zack Weinberg
2005-05-24  7:09           ` Mark Mitchell
2005-05-24  7:39           ` Gabriel Dos Reis
2005-05-24  8:48             ` Zack Weinberg
2005-05-24 13:41               ` Gabriel Dos Reis
2005-05-25  0:47             ` Russ Allbery
2005-05-25  1:24               ` Gabriel Dos Reis
2005-05-24 16:07       ` Paolo Bonzini
2005-05-24 16:44       ` Daniel Jacobowitz
2005-05-24 23:53         ` Zack Weinberg
2005-05-25  0:06           ` Daniel Jacobowitz
2005-05-25  0:11             ` Richard Henderson
2005-05-25  0:22             ` Zack Weinberg
2005-05-25  0:26           ` Paolo Carlini
2005-05-25  0:37             ` Zack Weinberg
2005-05-25  0:43               ` Daniel Jacobowitz
2005-05-25  0:48                 ` Zack Weinberg
2005-05-25  1:02                   ` Paolo Carlini
2005-05-25  3:14                   ` Daniel Jacobowitz
2005-05-25 16:18                   ` Jason Merrill
2005-05-25 12:44               ` Christoph Hellwig
2005-05-25 13:33                 ` Florian Weimer
2005-05-27  3:10                 ` Marcin Dalecki
2005-05-24  6:13   ` Andrew Pinski
2005-05-24  6:25     ` Gabriel Dos Reis
2005-05-27  4:04     ` Marcin Dalecki
2005-05-24  6:18   ` Gabriel Dos Reis
2005-05-24  6:43     ` Zack Weinberg
2005-05-24  7:04       ` Mark Mitchell
2005-05-24  8:00         ` Gabriel Dos Reis
2005-05-25  3:45         ` Kaveh R. Ghazi
2005-05-25  7:45           ` DJ Delorie
2005-05-25  8:36             ` Gabriel Dos Reis
2005-05-25 13:38             ` Kaveh R. Ghazi
2005-05-26 13:40               ` Gabriel Dos Reis
2005-05-24  7:38       ` Gabriel Dos Reis
2005-05-24  8:32         ` Zack Weinberg
2005-05-24 13:18           ` Gabriel Dos Reis
2005-05-24 23:45             ` Zack Weinberg
2005-05-25  0:29               ` Gabriel Dos Reis
2005-05-25  0:37                 ` Zack Weinberg
2005-05-25  0:52                   ` DJ Delorie
2005-05-25  0:55                     ` Zack Weinberg
2005-05-25  1:02                       ` Ian Lance Taylor
2005-05-25  1:36                       ` DJ Delorie
2005-05-25  1:40                         ` Zack Weinberg
2005-05-25  2:24                           ` Gabriel Dos Reis
2005-05-25  1:50                         ` Gabriel Dos Reis
2005-05-25  2:20                           ` DJ Delorie
2005-05-25  1:47                       ` Gabriel Dos Reis
2005-05-25  2:08                         ` DJ Delorie
2005-05-25  2:36                           ` Gabriel Dos Reis
2005-05-25  3:34                             ` DJ Delorie
2005-05-25  5:01                               ` Gabriel Dos Reis
2005-05-25  1:12                   ` Gabriel Dos Reis
2005-05-25  1:47                     ` DJ Delorie
2005-05-25  3:20                       ` Gabriel Dos Reis
2005-05-27  1:20           ` Marcin Dalecki
2005-05-24 17:17         ` Paul Koning
2005-05-24 17:25           ` Andreas Schwab
2005-05-24 20:43             ` Joe Buck
2005-05-24 21:40               ` Dale Johannesen
2005-05-24 17:49           ` Gabriel Dos Reis
2005-05-24  6:26   ` Mark Mitchell
2005-05-24  6:54     ` Zack Weinberg
2005-05-24  7:04       ` Mark Mitchell
2005-05-24 15:03         ` Kai Henningsen
2005-05-25  9:51         ` Jason Merrill
2005-05-24 10:01 ` Florian Weimer
2005-05-24 14:22   ` Gabriel Dos Reis
2005-05-24 18:00 ` Diego Novillo
2005-05-24 20:41   ` Richard Guenther
2005-05-24 23:14   ` Kevin Handy
2005-05-27  3:47   ` Marcin Dalecki
2005-05-27  1:20 ` Marcin Dalecki

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=200505250314.j4P3EVof001959@greed.delorie.com \
    --to=dj@redhat.com \
    --cc=gcc@gcc.gnu.org \
    --cc=gdr@integrable-solutions.net \
    --cc=schlie@comcast.net \
    /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).