Porposal: Floating-Point Options
Marcin Dalecki
martin@dalecki.de
Tue Jun 14 22:32:00 GMT 2005
On 2005-06-14, at 16:32, Scott Robert Ladd wrote:
> To support different expectations, I suggest defining the following
> floating-point options for GCC. This is a conceptual overview; once
> there's a consensus the categories, I'll propose something more
> formal.
>
> -ffp-correct
Please define correct.
> This option focuses code generation on mathematical correctness,
> portability, and consistency.
Please define this. Please define mathematical correctness for a FPU
implementation.
Preferable in formal terms. A Verilog file for example wold be fine.
Don't forget
to perform *full* verification of the design to be. I mean in
mathematical terms.
Seriously, I don't mind if this will take a tad bit of time.
Please lay down in esp. how GCC currently deviates from the
principles in this statement.
> No 80-bit long doubles, no fsin/fcos,
> making certain that comparison operators work within reason.
Please give the definition of reason.
> Note that this option can only go so far in ensuring portability,
> given that not
> every system supports IEEE 754 floats.
Please give the distance for "so far". Preferable in metric terms.
> -ffp-ieee754
>
> To the best of our ability, assume and follow IEEE 754. Similar to the
> above, but assuming IEEE floats and doubles. Note that IEEE 754 has
> been
> undergoing some revision.
Note taken. I hence forth declare to have no abilities. Thus this
goal is
immediately accomplished. Note that you can derive your own abilities
from
this statement.
> -ffp-balanced (default)
Yes. My iMac is already well balanced on the aluminum tadpole on
which it sits.
> Balance correctness with speed, enabling performance optimizations
> that
> may reduce portability or consistency, but which do not alter the
> overall quality of results.
> Yeah, I know that's a bit fuzzy;
Yeah just a tad little bit... we can stop considering minor stuff
like cache sizes
RAM latencies versus clock rate and all those other minor irrelevant
stuff which doesn't allow us to define a single only total optimum
for the generated code.
You are right - this kind of nit-picking is really fully irrelevant
for the
task at hand.
> formal
> definition of such an option depends on categorizing existing FP code
> generation (something I'm working on).
>
> -ffp-damn-the-torpedoes-full-speed-ahead
I just love cute references to military terms. I served myself
proudly but
involuntarily in the ari. You know buddy. They just make me feel like...
actually like... oh dare memories.
> Okay, maybe that should be something shorter,
How about:
-ffp-damn-I-have-no-clue
Nearly half the size - you see?
> like -ffast-math or
> -ffp-fast. This option enables dangerous hardware intrinsics,
Will it pose the danger for overheating my CPUs thermal throttling?
Perhaps it should be accompanied with an interactive question asserting
question at compiler run time then:
gcc -ffp-fast helloworld.c
ALLERT: The -ffp-fast option is dangerous. Are you sure to proceed
[YES/NO]?:
> and
> eschews all concerns about portability and consistency in the quest
> for
> speed. The behavior is likely to be the same as the current -ffast-
> math.
>
> Actually, I like *-ffp-damn-the-torpedoes-full-speed-ahead*.
I love it too...
> As Stroustrup once said, if you're going to do somethimg ugly, it
> should
> look ugly. ;)
Yes! The road to success is paved with imitation. Success is always
reproducible and not accidental. And I'm sure Stroustrup was a better
philosopher
then coder, since competence in one area automatically projects
itself on
everything...
More information about the Gcc
mailing list