mn10300: Force lower-subreg pass to run.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Jan 2011 17:47:02 +0000 (17:47 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Jan 2011 17:47:02 +0000 (17:47 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168721 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/mn10300/mn10300.c

index 0317cbb..ca0ec90 100644 (file)
@@ -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.
index 5f2d63b..65e3444 100644 (file)
@@ -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)