aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSenthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>2016-02-02 16:01:45 +0000
committerDenis Chertykov <denisc@gcc.gnu.org>2016-02-02 19:01:45 +0300
commitc7088aeac8250400734696d8bb606764880ab5c3 (patch)
treec640c54e8cfeefb5b1c4d234e2a4c612b4186f77 /gcc
parent80cfaff84a426ff666d45c015a5848c80a097179 (diff)
downloadgcc-c7088aeac8250400734696d8bb606764880ab5c3.zip
gcc-c7088aeac8250400734696d8bb606764880ab5c3.tar.gz
gcc-c7088aeac8250400734696d8bb606764880ab5c3.tar.bz2
avr.c (avr_option_override): Set PARAM_ALLOW_STORE_DATA_RACES to 1.
* config/avr/avr.c (avr_option_override): Set PARAM_ALLOW_STORE_DATA_RACES to 1. From-SVN: r233078
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/avr/avr.c10
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3b548f5..c2d824e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
+
+ * config/avr/avr.c (avr_option_override): Set
+ PARAM_ALLOW_STORE_DATA_RACES to 1.
+
2016-02-02 Richard Biener <rguenther@suse.de>
PR tree-optimization/69595
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index e557772..a7728e3 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -43,6 +43,7 @@
#include "expr.h"
#include "langhooks.h"
#include "cfgrtl.h"
+#include "params.h"
#include "builtins.h"
#include "context.h"
#include "tree-pass.h"
@@ -410,6 +411,15 @@ avr_option_override (void)
if (avr_strict_X)
flag_caller_saves = 0;
+ /* Allow optimizer to introduce store data races. This used to be the
+ default - it was changed because bigger targets did not see any
+ performance decrease. For the AVR though, disallowing data races
+ introduces additional code in LIM and increases reg pressure. */
+
+ maybe_set_param_value (PARAM_ALLOW_STORE_DATA_RACES, 1,
+ global_options.x_param_values,
+ global_options_set.x_param_values);
+
/* Unwind tables currently require a frame pointer for correctness,
see toplev.c:process_options(). */