Commit 580d124f by Richard Kenner Committed by Richard Kenner

tree-ssa.c (tree_ssa_useless_type_conversion): Also look at VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.

	* 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.

From-SVN: r84054
parent e30bb772
2004-07-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 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-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
* langhooks.h (strct lang_hooks): New field type_max_size. * langhooks.h (strct lang_hooks): New field type_max_size.
* function.c (assign_temp): Call it. * function.c (assign_temp): Call it.
......
...@@ -2086,7 +2086,6 @@ fold_stmt (tree *stmt_p) ...@@ -2086,7 +2086,6 @@ fold_stmt (tree *stmt_p)
/* Strip away useless type conversions. Both the NON_LVALUE_EXPR that /* Strip away useless type conversions. Both the NON_LVALUE_EXPR that
may have been added by fold, and "useless" type conversions that might may have been added by fold, and "useless" type conversions that might
now be apparent due to propagation. */ now be apparent due to propagation. */
STRIP_MAIN_TYPE_NOPS (result);
STRIP_USELESS_TYPE_CONVERSION (result); STRIP_USELESS_TYPE_CONVERSION (result);
if (result != rhs) if (result != rhs)
......
...@@ -279,7 +279,6 @@ local_fold (tree t) ...@@ -279,7 +279,6 @@ local_fold (tree t)
/* Strip away useless type conversions. Both the NON_LVALUE_EXPR that /* Strip away useless type conversions. Both the NON_LVALUE_EXPR that
may have been added by fold, and "useless" type conversions that might may have been added by fold, and "useless" type conversions that might
now be apparent due to propagation. */ now be apparent due to propagation. */
STRIP_MAIN_TYPE_NOPS (t);
STRIP_USELESS_TYPE_CONVERSION (t); STRIP_USELESS_TYPE_CONVERSION (t);
return t; return t;
......
...@@ -601,7 +601,9 @@ tree_ssa_useless_type_conversion (tree expr) ...@@ -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 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 is "safe", then strip away the type conversion so that we can
enter LHS = RHS into the const_and_copies table. */ 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), return tree_ssa_useless_type_conversion_1 (TREE_TYPE (expr),
TREE_TYPE (TREE_OPERAND (expr, TREE_TYPE (TREE_OPERAND (expr,
0))); 0)));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment