src/share/vm/opto/library_call.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
8057758 Cdiff src/share/vm/opto/library_call.cpp
src/share/vm/opto/library_call.cpp
Print this page
rev 7007 : 8057758: Tests run TypeProfileLevel=222 crash with guarantee(0) failed: must find derived/base pair
Summary: Use TypeAryPtr::INT type with offset 0 in inline_multiplyToLen().
Reviewed-by: kvn, iveresov
*** 4966,4976 ****
// 'x_start' points to x array + scaled xlen
// 'y_start' points to y array + scaled ylen
// Allocate the result array
Node* zlen = _gvn.transform(new AddINode(xlen, ylen));
! Node* klass_node = makecon(TypeKlassPtr::make(ciTypeArrayKlass::make(T_INT)));
IdealKit ideal(this);
#define __ ideal.
Node* one = __ ConI(1);
--- 4966,4977 ----
// 'x_start' points to x array + scaled xlen
// 'y_start' points to y array + scaled ylen
// Allocate the result array
Node* zlen = _gvn.transform(new AddINode(xlen, ylen));
! ciKlass* klass = ciTypeArrayKlass::make(T_INT);
! Node* klass_node = makecon(TypeKlassPtr::make(klass));
IdealKit ideal(this);
#define __ ideal.
Node* one = __ ConI(1);
*** 5000,5010 ****
__ set(z_alloc, narr);
} __ end_if();
sync_kit(ideal);
z = __ value(z_alloc);
! _gvn.set_type(z, TypeAryPtr::INTS);
// Final sync IdealKit and GraphKit.
final_sync(ideal);
#undef __
Node* z_start = array_element_address(z, intcon(0), T_INT);
--- 5001,5012 ----
__ set(z_alloc, narr);
} __ end_if();
sync_kit(ideal);
z = __ value(z_alloc);
! // Can't use TypeAryPtr::INTS which uses Bottom offset.
! _gvn.set_type(z, TypeOopPtr::make_from_klass(klass));
// Final sync IdealKit and GraphKit.
final_sync(ideal);
#undef __
Node* z_start = array_element_address(z, intcon(0), T_INT);
src/share/vm/opto/library_call.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File