Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/escape.cpp @ 221:1e026f8da827
6710487: More than half of JDI Regression tests hang with COOPs in -Xcomp mode
Summary: Remove DecodeNNode::decode() and EncodePNode::encode() methods.
Reviewed-by: rasbold, never
author | kvn |
---|---|
date | Tue, 24 Jun 2008 10:43:29 -0700 |
parents | 7793bd37a336 |
children | 1dd146f17531 |
comparison
equal
deleted
inserted
replaced
220:30369db7f5d2 | 221:1e026f8da827 |
---|---|
960 TypeNode *tn = n->as_Type(); | 960 TypeNode *tn = n->as_Type(); |
961 tinst = igvn->type(val)->isa_oopptr(); | 961 tinst = igvn->type(val)->isa_oopptr(); |
962 assert(tinst != NULL && tinst->is_instance() && | 962 assert(tinst != NULL && tinst->is_instance() && |
963 tinst->instance_id() == elem , "instance type expected."); | 963 tinst->instance_id() == elem , "instance type expected."); |
964 | 964 |
965 const TypeOopPtr *tn_t = NULL; | |
966 const Type *tn_type = igvn->type(tn); | 965 const Type *tn_type = igvn->type(tn); |
967 if (tn_type->isa_narrowoop()) { | 966 const TypeOopPtr *tn_t = tn_type->make_ptr()->isa_oopptr(); |
968 tn_t = tn_type->is_narrowoop()->make_oopptr()->isa_oopptr(); | |
969 } else { | |
970 tn_t = tn_type->isa_oopptr(); | |
971 } | |
972 | 967 |
973 if (tn_t != NULL && | 968 if (tn_t != NULL && |
974 tinst->cast_to_instance(TypeOopPtr::UNKNOWN_INSTANCE)->higher_equal(tn_t)) { | 969 tinst->cast_to_instance(TypeOopPtr::UNKNOWN_INSTANCE)->higher_equal(tn_t)) { |
975 if (tn_type->isa_narrowoop()) { | 970 if (tn_type->isa_narrowoop()) { |
976 tn_type = tinst->make_narrowoop(); | 971 tn_type = tinst->make_narrowoop(); |
1919 } | 1914 } |
1920 case Op_StoreP: | 1915 case Op_StoreP: |
1921 case Op_StoreN: | 1916 case Op_StoreN: |
1922 { | 1917 { |
1923 const Type *adr_type = phase->type(n->in(MemNode::Address)); | 1918 const Type *adr_type = phase->type(n->in(MemNode::Address)); |
1924 if (adr_type->isa_narrowoop()) { | 1919 adr_type = adr_type->make_ptr(); |
1925 adr_type = adr_type->is_narrowoop()->make_oopptr(); | |
1926 } | |
1927 if (adr_type->isa_oopptr()) { | 1920 if (adr_type->isa_oopptr()) { |
1928 add_node(n, PointsToNode::UnknownType, PointsToNode::UnknownEscape, false); | 1921 add_node(n, PointsToNode::UnknownType, PointsToNode::UnknownEscape, false); |
1929 } else { | 1922 } else { |
1930 Node* adr = n->in(MemNode::Address); | 1923 Node* adr = n->in(MemNode::Address); |
1931 if (adr->is_AddP() && phase->type(adr) == TypeRawPtr::NOTNULL && | 1924 if (adr->is_AddP() && phase->type(adr) == TypeRawPtr::NOTNULL && |
1946 case Op_StorePConditional: | 1939 case Op_StorePConditional: |
1947 case Op_CompareAndSwapP: | 1940 case Op_CompareAndSwapP: |
1948 case Op_CompareAndSwapN: | 1941 case Op_CompareAndSwapN: |
1949 { | 1942 { |
1950 const Type *adr_type = phase->type(n->in(MemNode::Address)); | 1943 const Type *adr_type = phase->type(n->in(MemNode::Address)); |
1951 if (adr_type->isa_narrowoop()) { | 1944 adr_type = adr_type->make_ptr(); |
1952 adr_type = adr_type->is_narrowoop()->make_oopptr(); | |
1953 } | |
1954 if (adr_type->isa_oopptr()) { | 1945 if (adr_type->isa_oopptr()) { |
1955 add_node(n, PointsToNode::UnknownType, PointsToNode::UnknownEscape, false); | 1946 add_node(n, PointsToNode::UnknownType, PointsToNode::UnknownEscape, false); |
1956 } else { | 1947 } else { |
1957 _processed.set(n->_idx); | 1948 _processed.set(n->_idx); |
1958 return; | 1949 return; |
2129 case Op_StorePConditional: | 2120 case Op_StorePConditional: |
2130 case Op_CompareAndSwapP: | 2121 case Op_CompareAndSwapP: |
2131 case Op_CompareAndSwapN: | 2122 case Op_CompareAndSwapN: |
2132 { | 2123 { |
2133 Node *adr = n->in(MemNode::Address); | 2124 Node *adr = n->in(MemNode::Address); |
2134 const Type *adr_type = phase->type(adr); | 2125 const Type *adr_type = phase->type(adr)->make_ptr(); |
2135 if (adr_type->isa_narrowoop()) { | |
2136 adr_type = adr_type->is_narrowoop()->make_oopptr(); | |
2137 } | |
2138 #ifdef ASSERT | 2126 #ifdef ASSERT |
2139 if (!adr_type->isa_oopptr()) | 2127 if (!adr_type->isa_oopptr()) |
2140 assert(phase->type(adr) == TypeRawPtr::NOTNULL, "Op_StoreP"); | 2128 assert(phase->type(adr) == TypeRawPtr::NOTNULL, "Op_StoreP"); |
2141 #endif | 2129 #endif |
2142 | 2130 |