diff options
author | jamborm <jamborm@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-06-26 14:54:59 +0000 |
---|---|---|
committer | jamborm <jamborm@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-06-26 14:54:59 +0000 |
commit | f4d15364e18e9f9e89b4ba0e852d657181d2648d (patch) | |
tree | 004cb921ce0d40fd638fdd30852170ac3fba00d1 /gcc/opts.c | |
parent | 1886a503dfb3f541561c152b0c8ba2be6fabc10c (diff) | |
download | gcc-f4d15364e18e9f9e89b4ba0e852d657181d2648d.tar.gz |
2014-06-26 Martin Jambor <mjambor@suse.cz>
* params.def (PARAM_ALLOW_LOAD_DATA_RACES)
(PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
(PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
(PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
* opts.c (default_options_optimization): Set
PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
* doc/invoke.texi (allow-load-data-races)
(allow-packed-load-data-races, allow-packed-store-data-races):
Removed.
(allow-store-data-races): Document the new default.
testsuite/
* g++.dg/simulate-thread/bitfields-2.C: Remove allow-load-data-races
parameter.
* g++.dg/simulate-thread/bitfields.C: Likewise.
* gcc.dg/simulate-thread/strict-align-global.c: Remove
allow-packed-store-data-races parameter.
* gcc.dg/simulate-thread/subfields.c: Likewise.
* gcc.dg/tree-ssa/20050314-1.c: Set parameter allow-store-data-races
to one.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212034 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/opts.c')
-rw-r--r-- | gcc/opts.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/opts.c b/gcc/opts.c index 3ab06c67c39..19203dc8b5d 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -620,6 +620,13 @@ default_options_optimization (struct gcc_options *opts, opt2 ? default_param_value (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP) : 1000, opts->x_param_values, opts_set->x_param_values); + /* At -Ofast, allow store motion to introduce potential race conditions. */ + maybe_set_param_value + (PARAM_ALLOW_STORE_DATA_RACES, + opts->x_optimize_fast ? 1 + : default_param_value (PARAM_ALLOW_STORE_DATA_RACES), + opts->x_param_values, opts_set->x_param_values); + if (opts->x_optimize_size) /* We want to crossjump as much as possible. */ maybe_set_param_value (PARAM_MIN_CROSSJUMP_INSNS, 1, |