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
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.
/* 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)
/* 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;
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)));