Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/callGenerator.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 |
---|---|
720 if( i >= limit ) break; | 720 if( i >= limit ) break; |
721 } | 721 } |
722 Node* m = kit.map()->in(i); | 722 Node* m = kit.map()->in(i); |
723 Node* n = slow_map->in(i); | 723 Node* n = slow_map->in(i); |
724 if (m != n) { | 724 if (m != n) { |
725 const Type* t = gvn.type(m)->meet(gvn.type(n)); | 725 const Type* t = gvn.type(m)->meet_speculative(gvn.type(n)); |
726 Node* phi = PhiNode::make(region, m, t); | 726 Node* phi = PhiNode::make(region, m, t); |
727 phi->set_req(2, n); | 727 phi->set_req(2, n); |
728 kit.map()->set_req(i, gvn.transform(phi)); | 728 kit.map()->set_req(i, gvn.transform(phi)); |
729 } | 729 } |
730 } | 730 } |
973 if( i >= limit ) break; | 973 if( i >= limit ) break; |
974 } | 974 } |
975 Node* m = kit.map()->in(i); | 975 Node* m = kit.map()->in(i); |
976 Node* n = slow_map->in(i); | 976 Node* n = slow_map->in(i); |
977 if (m != n) { | 977 if (m != n) { |
978 const Type* t = gvn.type(m)->meet(gvn.type(n)); | 978 const Type* t = gvn.type(m)->meet_speculative(gvn.type(n)); |
979 Node* phi = PhiNode::make(region, m, t); | 979 Node* phi = PhiNode::make(region, m, t); |
980 phi->set_req(2, n); | 980 phi->set_req(2, n); |
981 kit.map()->set_req(i, gvn.transform(phi)); | 981 kit.map()->set_req(i, gvn.transform(phi)); |
982 } | 982 } |
983 } | 983 } |