Mercurial > hg > truffle
comparison src/share/vm/opto/node.cpp @ 14383:5ec7dace41a6
8027422: assert(_gvn.type(obj)->higher_equal(tjp)) failed: cast_up is no longer needed
Summary: type methods shouldn't always operate on speculative part
Reviewed-by: kvn, twisti
author | roland |
---|---|
date | Fri, 24 Jan 2014 09:31:53 +0100 |
parents | de6a9e811145 |
children | 45467c53f178 |
comparison
equal
deleted
inserted
replaced
14272:757ec609d8d5 | 14383:5ec7dace41a6 |
---|---|
993 // Get the worst-case Type output for this Node. | 993 // Get the worst-case Type output for this Node. |
994 void Node::raise_bottom_type(const Type* new_type) { | 994 void Node::raise_bottom_type(const Type* new_type) { |
995 if (is_Type()) { | 995 if (is_Type()) { |
996 TypeNode *n = this->as_Type(); | 996 TypeNode *n = this->as_Type(); |
997 if (VerifyAliases) { | 997 if (VerifyAliases) { |
998 assert(new_type->higher_equal(n->type()), "new type must refine old type"); | 998 assert(new_type->higher_equal_speculative(n->type()), "new type must refine old type"); |
999 } | 999 } |
1000 n->set_type(new_type); | 1000 n->set_type(new_type); |
1001 } else if (is_Load()) { | 1001 } else if (is_Load()) { |
1002 LoadNode *n = this->as_Load(); | 1002 LoadNode *n = this->as_Load(); |
1003 if (VerifyAliases) { | 1003 if (VerifyAliases) { |
1004 assert(new_type->higher_equal(n->type()), "new type must refine old type"); | 1004 assert(new_type->higher_equal_speculative(n->type()), "new type must refine old type"); |
1005 } | 1005 } |
1006 n->set_type(new_type); | 1006 n->set_type(new_type); |
1007 } | 1007 } |
1008 } | 1008 } |
1009 | 1009 |