diff options
author | Martin Jambor <mjambor@suse.cz> | 2021-11-19 18:46:00 +0100 |
---|---|---|
committer | Martin Jambor <mjambor@suse.cz> | 2021-11-19 18:46:08 +0100 |
commit | 458d2c689963d8461d84670a3d8988cd6ecbfd81 (patch) | |
tree | b8ec5d2ae9baec63f98dd08e1075b35e6cfaca9d | |
parent | ada63d56beb0e535d35b165b55f85e29a0b36929 (diff) |
options: Make -Ofast switch off -fsemantic-interposition
Using -fno-semantic-interposition has been reported by various people
to bring about considerable speed up at the cost of strict compliance
to the ELF symbol interposition rules See for example
https://fedoraproject.org/wiki/Changes/PythonNoSemanticInterpositionSpeedup
As such I believe it should be implied by our -Ofast optimization
level, not only so that benchmarks that can benefit run faster, but
also so that people looking at -Ofast documentation for options that
could speed their programs find it.
gcc/ChangeLog:
2021-11-12 Martin Jambor <mjambor@suse.cz>
* opts.c (default_options_table): Switch off
flag_semantic_interposition at Ofast.
* doc/invoke.texi (Optimize Options): Document that Ofast switches off
-fsemantic-interposition.
-rw-r--r-- | gcc/doc/invoke.texi | 1 | ||||
-rw-r--r-- | gcc/opts.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 11ef7970378..1cfb70291f6 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -10677,6 +10677,7 @@ valid for all standard-compliant programs. It turns on @option{-ffast-math}, @option{-fallow-store-data-races} and the Fortran-specific @option{-fstack-arrays}, unless @option{-fmax-stack-var-size} is specified, and @option{-fno-protect-parens}. +It turns off @option {-fsemantic-interposition}. @item -Og @opindex Og diff --git a/gcc/opts.c b/gcc/opts.c index 175b4635bb4..b16497e45b3 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -682,6 +682,7 @@ static const struct default_options default_options_table[] = /* -Ofast adds optimizations to -O3. */ { OPT_LEVELS_FAST, OPT_ffast_math, NULL, 1 }, { OPT_LEVELS_FAST, OPT_fallow_store_data_races, NULL, 1 }, + { OPT_LEVELS_FAST, OPT_fsemantic_interposition, NULL, 0 }, { OPT_LEVELS_NONE, 0, NULL, 0 } }; |