re PR rtl-optimization/7702 (gcc-3.2 optimization problem on a DEC alpha under OSF1)
authorFalk Hueffner <falk.hueffner@student.uni-tuebingen.de>
Fri, 14 Feb 2003 22:23:48 +0000 (14:23 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Fri, 14 Feb 2003 22:23:48 +0000 (14:23 -0800)
        PR optimization/7702
        * reload1.c (reload_cse_simplify_set): Honor
        CANNOT_CHANGE_MODE_CLASS.

From-SVN: r62921

gcc/ChangeLog
gcc/reload1.c

index 34128fe3be2e0d07a2e3b00f9f1dac813c888d1a..c8021cdf9ee5af2d35a98087a5c9279bb7c11ef5 100644 (file)
@@ -1,3 +1,9 @@
+2003-02-14  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
+
+       PR optimization/7702
+       * reload1.c (reload_cse_simplify_set): Honor
+       CANNOT_CHANGE_MODE_CLASS.
+
 2003-02-14  Alexandre Oliva  <aoliva@redhat.com>
 
        * config/mn10300/mn10300.c (mn10300_wide_const_load_uses_clr): New
 
 2003-02-13  Adam Nemet  <anemet@lnxw.com>
 
-        PR opt/2391 
-        * combine.c: Fix spelling in comment.
-        (cached_nonzero_bits): New function.
-        (cached_num_sign_bit_copies): New function.
+       PR opt/2391 
+       * combine.c: Fix spelling in comment.
+       (cached_nonzero_bits): New function.
+       (cached_num_sign_bit_copies): New function.
        (nonzero_bits_with_known): New macro.
        (num_sign_bit_copies_with_known): New macro.
-        (nonzero_bits1): Rename from nonzero_bits.  Add three new
+       (nonzero_bits1): Rename from nonzero_bits.  Add three new
        arguments.  Change calls from nonzero_bits to
        nonzero_bits_with_known.
-        (num_sign_bit_copies1): Rename from num_sign_bit_copies.  Add
+       (num_sign_bit_copies1): Rename from num_sign_bit_copies.  Add
        three new arguments.  Change calls from num_sign_bit_copies to
        num_sign_bit_copies_with_known.
-        (nonzero_bits): New macro.
-        (num_sign_bit_copies): New macro.
-        (update_table_tick): Don't traverse identical subexpression more
+       (nonzero_bits): New macro.
+       (num_sign_bit_copies): New macro.
+       (update_table_tick): Don't traverse identical subexpression more
        than once.
-        (get_last_value_validate): Likewise.
+       (get_last_value_validate): Likewise.
 
 2003-02-13  Zack Weinberg  <zack@codesourcery.com>
 
index e2726409330501aebd810697db17471e0977b45a..441a447f01441768baefab7228b0f7bedaec437f 100644 (file)
@@ -8282,7 +8282,13 @@ reload_cse_simplify_set (set, insn)
        {
 #ifdef LOAD_EXTEND_OP
          if (GET_MODE_BITSIZE (GET_MODE (SET_DEST (set))) < BITS_PER_WORD
-             && extend_op != NIL)
+             && extend_op != NIL
+#ifdef CANNOT_CHANGE_MODE_CLASS
+             && !CANNOT_CHANGE_MODE_CLASS (GET_MODE (SET_DEST (set)),
+                                           word_mode,
+                                           REGNO_REG_CLASS (REGNO (SET_DEST (set))))
+#endif
+             )
            {
              rtx wide_dest = gen_rtx_REG (word_mode, REGNO (SET_DEST (set)));
              ORIGINAL_REGNO (wide_dest) = ORIGINAL_REGNO (SET_DEST (set));