public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Mark Mitchell <mark@codesourcery.com>
To: Geoff Keating <geoffk@geoffk.org>
Cc: "mrs@apple.com" <mrs@apple.com>, "steby@enea.se" <steby@enea.se>,
	"gcc@gcc.gnu.org" <gcc@gcc.gnu.org>
Subject: Re: GCC floating point usage
Date: Wed, 16 Oct 2002 14:29:00 -0000	[thread overview]
Message-ID: <359490000.1034799942@warlock.codesourcery.com> (raw)
In-Reply-To: <200210161955.g9GJtwQ09312@desire.geoffk.org>

> Zack's spec:
>> The intent is that it's a guarantee that floating-point instructions
>> will not be *executed* by a function compiled under -mno-implicit-fp,
>> unless that function either (a) uses floating point numbers, or (b)
>> uses a small, documented set of primitives where the implementation
>> has to use floating point even if the caller doesn't (such as
>> setjmp/longjmp).
>
> I think that Mike had yet another spec in mind, in which using certain
> primitives (like setjmp, EH, etc.) in this situation is user error and
> causes undefined behaviour, but I'm not sure.

I think that Zack and Mike mean the same thing, and that I was close,
but slightly off.  Obviously, it doesn't matter whether the compiler
generates FP ops if they can never be executed.  (In fact, it doesn't
really matter if it stuffs totally random bytes into the text
section if you can't ever get there.)

So, perhaps, amend my spec to say "will not generate floating-point
instructions that can ever be executed by a program that does not
call setjmp or throw an exception."

> (a) Does this affect codegen when the new feature is not enabled?
>     Zack's patch does, and it shouldn't.

I certainly agree that people not using the flag should see no change.

Why does Zack's patch do that, given his caveat that the sense of the
flag would be reversed so that the flag is off by default?

> The obvious way to do this is to create an entry in struct function,
> set by the middle-end, "current_function_uses_float", and then use that
> to determine whether the stfd/lfd/fmr instructions are available in
> the backend.

I guess that would work; you would test the flag in the predicate for
the instruction.  That will, however, be a more invasive patch (you
have to try to find all the places in the middle end where floats might
be used).

-- 
Mark Mitchell                mark@codesourcery.com
CodeSourcery, LLC            http://www.codesourcery.com

  reply	other threads:[~2002-10-16 20:28 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-14  9:59 Stefan Bylund
2002-10-14 10:16 ` David Edelsohn
2002-10-14 10:25   ` Zack Weinberg
2002-10-14 10:55     ` Dale Johannesen
2002-10-14 22:22     ` Mark Mitchell
2002-10-15 15:35       ` Geoff Keating
2002-10-15 16:10         ` Mark Mitchell
2002-10-15 17:20           ` Geoff Keating
2002-10-15 18:09             ` Mark Mitchell
2002-10-16  7:40               ` Joel Sherrill
2002-10-15 19:04             ` Mike Stump
2002-10-16 12:06               ` Mark Mitchell
2002-10-16 13:35                 ` Geoff Keating
2002-10-16 14:29                   ` Mark Mitchell [this message]
2002-10-16 14:56                     ` Michael Matz
2002-10-16 15:03                       ` Mark Mitchell
2002-10-16 15:27                         ` David Edelsohn
2002-10-16 15:36                           ` Mark Mitchell
2002-10-16 16:35                             ` Zack Weinberg
2002-10-16 16:36                               ` Mark Mitchell
2002-10-16 16:46                             ` David Edelsohn
2002-10-17  8:37                             ` Paul Koning
2002-10-16 17:57                           ` Mike Stump
2002-10-17  4:12                   ` Mike Stump
2002-10-16 13:43               ` Richard Henderson
2002-10-16 14:35                 ` Mark Mitchell
2002-10-16 14:56                   ` Joel Sherrill
2002-10-16 16:38                   ` Richard Henderson
2002-10-16 16:53                     ` Zack Weinberg
2002-10-16 17:52                       ` Michael Matz
2002-10-16 22:50                       ` Richard Henderson
2002-10-21 12:21                         ` Jeff Law
2002-10-16 17:29                 ` Mike Stump
2002-10-17  2:19                   ` Richard Henderson
2002-10-15 17:19         ` Mike Stump
2002-10-15 18:41         ` Zack Weinberg
2002-10-16  1:48           ` Fergus Henderson
2002-10-14 10:37   ` Stefan Bylund
2002-10-14 11:28     ` Mike Stump
2002-10-14 12:39       ` Joel Sherrill

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=359490000.1034799942@warlock.codesourcery.com \
    --to=mark@codesourcery.com \
    --cc=gcc@gcc.gnu.org \
    --cc=geoffk@geoffk.org \
    --cc=mrs@apple.com \
    --cc=steby@enea.se \
    /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).