changeset 6639:4874332f9799

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
author roland
date Tue, 09 Sep 2014 15:47:18 -0700
parents 42460b71ba70
children fd9feb55481c
files src/share/vm/opto/library_call.cpp
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/opto/library_call.cpp	Mon Jun 23 13:33:23 2014 +0200
+++ b/src/share/vm/opto/library_call.cpp	Tue Sep 09 15:47:18 2014 -0700
@@ -5794,7 +5794,8 @@
 
     // Allocate the result array
     Node* zlen = _gvn.transform(new(C) AddINode(xlen, ylen));
-    Node* klass_node = makecon(TypeKlassPtr::make(ciTypeArrayKlass::make(T_INT)));
+    ciKlass* klass = ciTypeArrayKlass::make(T_INT);
+    Node* klass_node = makecon(TypeKlassPtr::make(klass));
 
     IdealKit ideal(this);
 
@@ -5828,7 +5829,8 @@
 
      sync_kit(ideal);
      z = __ value(z_alloc);
-     _gvn.set_type(z, TypeAryPtr::INTS);
+     // 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 __