[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: changing "configure" to default to "gcc -g -O2 -fwrapv ..."
From: |
Paul Eggert |
Subject: |
Re: changing "configure" to default to "gcc -g -O2 -fwrapv ..." |
Date: |
Fri, 29 Dec 2006 17:09:40 -0800 |
User-agent: |
Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) |
address@hidden (Richard Kenner) writes:
> (1) What is the maximum performance loss that can be shown using a real
> program (e.g,. one in SPEC) and some compiler (not necessarily GCC) when
> one assumes wrapping semantics?
>
> (2) In the current SPEC, how many programs benefit from undefined overflow
> semantics and how much does each benefit?
Those questions are more for the opponents of -fwrapv, so
I'll let them answer them. But why are they relevant?
Having -fwrapv on by default shouldn't affect your SPEC
score, since you can always compile with -fnowrapv if the
application doesn't assume wraparound.
The SPEC CPU2006 run and reporting rules for peak and base builds
<http://www.spec.org/cpu2006/Docs/runrules.html#rule_1.5>
are directly on point here:
Because the SPEC CPU benchmarks are drawn from the
compute intensive portion of real applications, some of
them use popular practices that compilers must commonly
cater for, even if those practices are nonstandard. In
particular, some of the programs (and, therefore, all of
base) may have to be compiled with settings that do not
exploit all optimization possibilities that would be
possible for programs with perfect standards compliance.
If the only goal is to get a high SPEC score, it's pretty
clear: disable -fwrapv, and if the SPEC program passes its
benchmark tests, you're happy. But people who are building
reliable software (as opposed to running benchmarks) cannot
be so blase about latent bugs due to wrapv assumptions being
violated.
> (3) How many programs are known to rely on wrap semantics? For each:
> (a) How hard was it to determine there was a problem with that assumption?
I'm not sure what you're asking for here.
For example, GCC assumes wrapv internally. No doubt there
is a problem with this assumption if you go out of your way
to make it a problem (bootstrap GCC with -ftrapv, for
example). Is this "a problem" in the sense that you
describe?
Or do you mean, "how hard is it to determine whether some
real-world compiler, used by a real-world builder of GCC,
won't build GCC correctly due to this problem"? If that's
the question, then all I can say is that I think it's verrry
hard. There are a lot of compilers out there, and they're
used in a lot of ways.
> (b) How much work was it to modify the program to not
> rely on such semantics?
Nobody knows the answer to that question either. I could
throw out an estimate for GCC (three person-months, say?
six?) these are just wild guesses. And that's just one
program.
Part of the problem is that there's no easy way to determine
whether a program relies on these semantics.
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", (continued)
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Andrew Pinski, 2006/12/29
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Gabriel Dos Reis, 2006/12/29
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Thomas Neumann, 2006/12/29
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Andrew Pinski, 2006/12/29
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Gabriel Dos Reis, 2006/12/29
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Florian Weimer, 2006/12/29
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Daniel Jacobowitz, 2006/12/29
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Richard Guenther, 2006/12/29
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Paul Eggert, 2006/12/29
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Richard Kenner, 2006/12/30
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...",
Paul Eggert <=
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Richard Kenner, 2006/12/30
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Bernd Schmidt, 2006/12/30
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Daniel Berlin, 2006/12/29
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Daniel Berlin, 2006/12/29
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Richard Guenther, 2006/12/30
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Richard Kenner, 2006/12/30
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Joe Buck, 2006/12/30
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Gabriel Dos Reis, 2006/12/29
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Daniel Berlin, 2006/12/29
- Re: changing "configure" to default to "gcc -g -O2 -fwrapv ...", Gabriel Dos Reis, 2006/12/29