hotspot/src/share/vm/opto/library_call.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot-comp Cdiff hotspot/src/share/vm/opto/library_call.cpp

hotspot/src/share/vm/opto/library_call.cpp

Print this page
rev 4963 : imported patch stable

*** 1277,1286 **** --- 1277,1293 ---- Node* target = _gvn.transform( makecon(TypeOopPtr::make_from_constant(target_array, true))); jint target_length = target_array->length(); const TypeAry* target_array_type = TypeAry::make(TypeInt::CHAR, TypeInt::make(0, target_length, Type::WidenMin)); const TypeAryPtr* target_type = TypeAryPtr::make(TypePtr::BotPTR, target_array_type, target_array->klass(), true, Type::OffsetBot); + if (UseImplicitStableValues) { + // String.value field is known to be @Stable. + // Reify the property as a CastPP node in Ideal graph to comply with monotonicity + // assumption of CCP analysis. + target = _gvn.transform(new(C) CastPPNode(target, target_type->cast_to_stable(true))); + } + IdealKit kit(this, false, true); #define __ kit. Node* zero = __ ConI(0); Node* one = __ ConI(1); Node* cache = __ ConI(cache_i);
hotspot/src/share/vm/opto/library_call.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File