summaryrefslogtreecommitdiff
path: root/gcc/tree-vn.c
diff options
context:
space:
mode:
authordberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>2005-02-15 20:09:31 +0000
committerdberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>2005-02-15 20:09:31 +0000
commit7209680744855b9ca24c2d4ab0c958c5684cbe35 (patch)
treebbcd7131bf7cbe8373d576e835080a501deb4951 /gcc/tree-vn.c
parent64fcba700b0a3a9207f0bab70c356ea1c9068212 (diff)
downloadgcc-7209680744855b9ca24c2d4ab0c958c5684cbe35.tar.gz
2005-02-15 Daniel Berlin <dberlin@dberlin.org>
* tree-vn.c (get_value_handle): Make sure that given an is_gimple_min_invariant expression, we always return it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95072 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-vn.c')
-rw-r--r--gcc/tree-vn.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/tree-vn.c b/gcc/tree-vn.c
index ab952ebadd0..22affffb063 100644
--- a/gcc/tree-vn.c
+++ b/gcc/tree-vn.c
@@ -267,11 +267,16 @@ vn_lookup_or_add (tree expr, vuse_optype vuses)
/* Get the value handle of EXPR. This is the only correct way to get
the value handle for a "thing". If EXPR does not have a value
- handle associated, it returns NULL_TREE. */
+ handle associated, it returns NULL_TREE.
+ NB: If EXPR is min_invariant, this function is *required* to return EXPR. */
tree
get_value_handle (tree expr)
{
+
+ if (is_gimple_min_invariant (expr))
+ return expr;
+
if (TREE_CODE (expr) == SSA_NAME)
return SSA_NAME_VALUE (expr);
else if (EXPR_P (expr) || DECL_P (expr))
@@ -280,10 +285,7 @@ get_value_handle (tree expr)
return ((ann) ? ann->common.value_handle : NULL_TREE);
}
else
- {
- gcc_assert (is_gimple_min_invariant (expr));
- return expr;
- }
+ gcc_unreachable ();
}