OSDN Git Service

* tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 3 Jul 2004 13:45:29 +0000 (13:45 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 3 Jul 2004 13:45:29 +0000 (13:45 +0000)
VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
* tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
* tree-ssa-dom.c (local_fold): Likewise.

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

gcc/ChangeLog
gcc/tree-ssa-ccp.c
gcc/tree-ssa-dom.c
gcc/tree-ssa.c

index 7a161eb..5372227 100644 (file)
@@ -1,5 +1,10 @@
 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
        
+       * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
+       VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
+       * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
+       * tree-ssa-dom.c (local_fold): Likewise.
+
        * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
        * langhooks.h (strct lang_hooks): New field type_max_size.
        * function.c (assign_temp): Call it.
index 559f19b..0b99071 100644 (file)
@@ -2086,7 +2086,6 @@ fold_stmt (tree *stmt_p)
   /* Strip away useless type conversions.  Both the NON_LVALUE_EXPR that
      may have been added by fold, and "useless" type conversions that might
      now be apparent due to propagation.  */
-  STRIP_MAIN_TYPE_NOPS (result);
   STRIP_USELESS_TYPE_CONVERSION (result);
 
   if (result != rhs)
index 4975997..b556b4e 100644 (file)
@@ -279,7 +279,6 @@ local_fold (tree t)
   /* Strip away useless type conversions.  Both the NON_LVALUE_EXPR that
      may have been added by fold, and "useless" type conversions that might
      now be apparent due to propagation.  */
-  STRIP_MAIN_TYPE_NOPS (t);
   STRIP_USELESS_TYPE_CONVERSION (t);
 
   return t;
index 37b83bf..4cdfd3d 100644 (file)
@@ -601,7 +601,9 @@ tree_ssa_useless_type_conversion (tree expr)
      the top of the RHS to the type of the LHS and the type conversion
      is "safe", then strip away the type conversion so that we can
      enter LHS = RHS into the const_and_copies table.  */
-  if (TREE_CODE (expr) == NOP_EXPR || TREE_CODE (expr) == CONVERT_EXPR)
+  if (TREE_CODE (expr) == NOP_EXPR || TREE_CODE (expr) == CONVERT_EXPR
+      || TREE_CODE (expr) == VIEW_CONVERT_EXPR
+      || TREE_CODE (expr) == NON_LVALUE_EXPR)
     return tree_ssa_useless_type_conversion_1 (TREE_TYPE (expr),
                                               TREE_TYPE (TREE_OPERAND (expr,
                                                                        0)));