aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2011-01-12 09:47:02 -0800
committerRichard Henderson <rth@gcc.gnu.org>2011-01-12 09:47:02 -0800
commitec815d657b52efc88343bab229eb279a55696ad7 (patch)
tree6201cce6994d447f77b667b85d86a24a1811486b
parentd6a3e26499ed7c6ff937cdb7319c1f04029cb61c (diff)
downloadgcc-ec815d657b52efc88343bab229eb279a55696ad7.zip
gcc-ec815d657b52efc88343bab229eb279a55696ad7.tar.gz
gcc-ec815d657b52efc88343bab229eb279a55696ad7.tar.bz2
mn10300: Force lower-subreg pass to run.
There are a number of tests that fail -- generally ones involving generic vectorization -- at -O0 because we run out of registers. The lower-subreg pass cleans things up sufficiently to allow these tests to succeed. From-SVN: r168721
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/mn10300/mn10300.c6
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0317cbb..ca0ec90 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2011-01-12 Richard Henderson <rth@redhat.com>
+ * config/mn10300/mn10300.c (mn10300_option_override): Force enable
+ flag_split_wide_types.
+
* config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
(mn10300_trampoline_init): Rewrite without a template, an immediate
load and a direct branch.
diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c
index 5f2d63b..65e3444 100644
--- a/gcc/config/mn10300/mn10300.c
+++ b/gcc/config/mn10300/mn10300.c
@@ -127,6 +127,12 @@ mn10300_option_override (void)
not have timing information available for it. */
flag_schedule_insns = 0;
flag_schedule_insns_after_reload = 0;
+
+ /* Force enable splitting of wide types, as otherwise it is trivial
+ to run out of registers. Indeed, this works so well that register
+ allocation problems are now more common *without* optimization,
+ when this flag is not enabled by default. */
+ flag_split_wide_types = 1;
}
if (mn10300_tune_string)