aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2009-10-22 01:44:39 +0000
committerVladimir Makarov <vmakarov@redhat.com>2009-10-22 01:44:39 +0000
commit46ffbfdca48aeb09800392998ee05d502994cb6f (patch)
treea8f72381ffa5fe5e541724f227760f360d1ef388
parente5cbf21ff3054c29ae1b7db1c80ae1b3c92c1aec (diff)
2009-10-21 Vladimir Makarov <vmakarov@redhat.com>
* doc/invoke.texi (fira-loop-pressure): Update default value. * opts.c (decode_options): Remove default value setting for flag_ira_loop_pressure. * config/ia64/ia64.c (ia64_override_options): Set flag_ira_loop_pressure up for -O3. * config/rs6000/rs6000.c (rs6000_override_options): Ditto. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@153445 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/ia64/ia64.c8
-rw-r--r--gcc/config/rs6000/rs6000.c7
-rw-r--r--gcc/doc/invoke.texi8
-rw-r--r--gcc/opts.c1
5 files changed, 28 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d5e3ce94a1f..1808c43aa0e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2009-10-21 Vladimir Makarov <vmakarov@redhat.com>
+
+ * doc/invoke.texi (fira-loop-pressure): Update default value.
+ * opts.c (decode_options): Remove default value setting for
+ flag_ira_loop_pressure.
+ * config/ia64/ia64.c (ia64_override_options): Set
+ flag_ira_loop_pressure up for -O3.
+ * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
+
2009-10-21 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/41497
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 75c8f0ee6c4..23fc7540ec0 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -5496,6 +5496,14 @@ ia64_override_options (void)
if (TARGET_AUTO_PIC)
target_flags |= MASK_CONST_GP;
+ /* Numerous experiment shows that IRA based loop pressure
+ calculation works better for RTL loop invariant motion on targets
+ with enough (>= 32) registers. It is an expensive optimization.
+ So it is on only for peak performance. */
+ if (optimize >= 3)
+ flag_ira_loop_pressure = 1;
+
+
ia64_flag_schedule_insns2 = flag_schedule_insns_after_reload;
flag_schedule_insns_after_reload = 0;
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 8bb92129ecf..9b03a9bfe68 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -2281,6 +2281,13 @@ rs6000_override_options (const char *default_cpu)
| MASK_POPCNTD | MASK_VSX | MASK_ISEL | MASK_NO_UPDATE)
};
+ /* Numerous experiment shows that IRA based loop pressure
+ calculation works better for RTL loop invariant motion on targets
+ with enough (>= 32) registers. It is an expensive optimization.
+ So it is on only for peak performance. */
+ if (optimize >= 3)
+ flag_ira_loop_pressure = 1;
+
/* Set the pointer size. */
if (TARGET_64BIT)
{
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 0a7d9790476..7b20ced5483 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -5733,8 +5733,7 @@ invoking @option{-O2} on programs that use computed gotos.
Optimize yet more. @option{-O3} turns on all optimizations specified
by @option{-O2} and also turns on the @option{-finline-functions},
@option{-funswitch-loops}, @option{-fpredictive-commoning},
-@option{-fgcse-after-reload}, @option{-ftree-vectorize} and
-@option{-fira-loop-pressure} options.
+@option{-fgcse-after-reload} and @option{-ftree-vectorize} options.
@item -O0
@opindex O0
@@ -6235,9 +6234,10 @@ architectures with big regular register files.
@opindex fira-loop-pressure
Use IRA to evaluate register pressure in loops for decision to move
loop invariants. Usage of this option usually results in generation
-of faster and smaller code but can slow compiler down.
+of faster and smaller code on machines with big register files (>= 32
+registers) but it can slow compiler down.
-This option is enabled at level @option{-O3}.
+This option is enabled at level @option{-O3} for some targets.
@item -fno-ira-share-save-slots
@opindex fno-ira-share-save-slots
diff --git a/gcc/opts.c b/gcc/opts.c
index c69a399768f..51a0cb95419 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -917,7 +917,6 @@ decode_options (unsigned int argc, const char **argv)
flag_ipa_cp_clone = opt3;
if (flag_ipa_cp_clone)
flag_ipa_cp = 1;
- flag_ira_loop_pressure = opt3;
/* Just -O1/-O0 optimizations. */
opt1_max = (optimize <= 1);