Mercurial > hg > truffle
comparison src/share/vm/opto/graphKit.cpp @ 954:0f1c19b7a52d
6875619: CTW fails with /hotspot/src/share/vm/opto/type.hpp
Summary: In load_array_length() cast array's type to TypeOopPtr when calling make_ideal_length() method.
Reviewed-by: never
author | kvn |
---|---|
date | Tue, 08 Sep 2009 10:42:50 -0700 |
parents | 8fe1963e3964 |
children | 26fbe81d30cf |
comparison
equal
deleted
inserted
replaced
953:ff1a29907b6c | 954:0f1c19b7a52d |
---|---|
1086 if (alloc == NULL) { | 1086 if (alloc == NULL) { |
1087 Node *r_adr = basic_plus_adr(array, arrayOopDesc::length_offset_in_bytes()); | 1087 Node *r_adr = basic_plus_adr(array, arrayOopDesc::length_offset_in_bytes()); |
1088 alen = _gvn.transform( new (C, 3) LoadRangeNode(0, immutable_memory(), r_adr, TypeInt::POS)); | 1088 alen = _gvn.transform( new (C, 3) LoadRangeNode(0, immutable_memory(), r_adr, TypeInt::POS)); |
1089 } else { | 1089 } else { |
1090 alen = alloc->Ideal_length(); | 1090 alen = alloc->Ideal_length(); |
1091 Node* ccast = alloc->make_ideal_length(_gvn.type(array)->is_aryptr(), &_gvn); | 1091 Node* ccast = alloc->make_ideal_length(_gvn.type(array)->is_oopptr(), &_gvn); |
1092 if (ccast != alen) { | 1092 if (ccast != alen) { |
1093 alen = _gvn.transform(ccast); | 1093 alen = _gvn.transform(ccast); |
1094 } | 1094 } |
1095 } | 1095 } |
1096 return alen; | 1096 return alen; |