mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-21 00:21:03 +08:00
tree-ssa-ccp.c (visit_assignment): Verify that result of VIEW_CONVERT_EXPR is_gimple_min_invariant.
* tree-ssa-ccp.c (visit_assignment): Verify that result of VIEW_CONVERT_EXPR is_gimple_min_invariant. From-SVN: r95510
This commit is contained in:
parent
ab9b9d2cf3
commit
ae95537a89
@ -1,5 +1,8 @@
|
||||
2005-02-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||||
|
||||
* tree-ssa-ccp.c (visit_assignment): Verify that result of
|
||||
VIEW_CONVERT_EXPR is_gimple_min_invariant.
|
||||
|
||||
* print-tree.c (print_node_brief): Print LABEL_DECL_UID.
|
||||
(print_node): Likewise.
|
||||
Print TYPE_SIZES_GIMPLIFIED.
|
||||
|
@ -1060,9 +1060,7 @@ visit_assignment (tree stmt, tree *output_p)
|
||||
val = evaluate_stmt (stmt);
|
||||
|
||||
/* If the original LHS was a VIEW_CONVERT_EXPR, modify the constant
|
||||
value to be a VIEW_CONVERT_EXPR of the old constant value. This is
|
||||
valid because a VIEW_CONVERT_EXPR is valid everywhere an operand of
|
||||
aggregate type is valid.
|
||||
value to be a VIEW_CONVERT_EXPR of the old constant value.
|
||||
|
||||
??? Also, if this was a definition of a bitfield, we need to widen
|
||||
the constant value into the type of the destination variable. This
|
||||
@ -1073,10 +1071,18 @@ visit_assignment (tree stmt, tree *output_p)
|
||||
if (TREE_CODE (orig_lhs) == VIEW_CONVERT_EXPR
|
||||
&& val.lattice_val == CONSTANT)
|
||||
{
|
||||
val.const_val = build1 (VIEW_CONVERT_EXPR,
|
||||
TREE_TYPE (TREE_OPERAND (orig_lhs, 0)),
|
||||
val.const_val);
|
||||
tree w = fold (build1 (VIEW_CONVERT_EXPR,
|
||||
TREE_TYPE (TREE_OPERAND (orig_lhs, 0)),
|
||||
val.const_val));
|
||||
|
||||
orig_lhs = TREE_OPERAND (orig_lhs, 1);
|
||||
if (w && is_gimple_min_invariant (w))
|
||||
val.const_val = w;
|
||||
else
|
||||
{
|
||||
val.lattice_val = VARYING;
|
||||
val.const_val = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (val.lattice_val == CONSTANT
|
||||
|
Loading…
x
Reference in New Issue
Block a user