Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:lafenghu
libffi43
pr34043-4.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File pr34043-4.diff of Package libffi43
2008-02-29 Richard Guenther <rguenther@suse.de> * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert struct copies into the expression table. (simplify_unary_expression): Handle VIEW_CONVERT_EXPR. (try_to_simplify): Likewise. Index: gcc/tree-ssa-sccvn.c =================================================================== --- gcc/tree-ssa-sccvn.c.orig 2009-11-20 13:51:00.000000000 +0100 +++ gcc/tree-ssa-sccvn.c 2009-11-20 13:51:05.000000000 +0100 @@ -1255,7 +1255,10 @@ visit_reference_op_store (tree lhs, tree changed |= set_ssa_val_to (vdef, vdef); } - vn_reference_insert (lhs, op, vdefs); + /* Do not insert structure copies into the tables. */ + if (is_gimple_min_invariant (op) + || is_gimple_reg (op)) + vn_reference_insert (lhs, op, vdefs); } else { @@ -1493,13 +1496,15 @@ simplify_unary_expression (tree rhs) else if (TREE_CODE (rhs) == NOP_EXPR || TREE_CODE (rhs) == CONVERT_EXPR || TREE_CODE (rhs) == REALPART_EXPR - || TREE_CODE (rhs) == IMAGPART_EXPR) + || TREE_CODE (rhs) == IMAGPART_EXPR + || TREE_CODE (rhs) == VIEW_CONVERT_EXPR) { /* We want to do tree-combining on conversion-like expressions. Make sure we feed only SSA_NAMEs or constants to fold though. */ tree tem = valueize_expr (VN_INFO (op0)->expr); if (UNARY_CLASS_P (tem) || BINARY_CLASS_P (tem) + || TREE_CODE (tem) == VIEW_CONVERT_EXPR || TREE_CODE (tem) == SSA_NAME || is_gimple_min_invariant (tem)) op0 = tem; @@ -1551,7 +1556,8 @@ try_to_simplify (tree stmt, tree rhs) /* Fallthrough for some codes that can operate on registers. */ if (!(TREE_CODE (rhs) == REALPART_EXPR - || TREE_CODE (rhs) == IMAGPART_EXPR)) + || TREE_CODE (rhs) == IMAGPART_EXPR + || TREE_CODE (rhs) == VIEW_CONVERT_EXPR)) break; /* We could do a little more with unary ops, if they expand into binary ops, but it's debatable whether it is worth it. */
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor