< prev index next >

src/hotspot/share/opto/library_call.cpp

Print this page

        

*** 2437,2450 **** decorators |= IN_HEAP; } val = is_store ? argument(4) : NULL; ! const TypePtr* adr_type = _gvn.type(adr)->isa_ptr(); ! if (adr_type == TypePtr::NULL_PTR) { ! return false; // off-heap access with zero address ! } // Try to categorize the address. Compile::AliasType* alias_type = C->alias_type(adr_type); assert(alias_type->index() != Compile::AliasIdxBot, "no bare pointers here"); --- 2437,2447 ---- decorators |= IN_HEAP; } val = is_store ? argument(4) : NULL; ! const TypePtr *adr_type = _gvn.type(adr)->isa_ptr(); // Try to categorize the address. Compile::AliasType* alias_type = C->alias_type(adr_type); assert(alias_type->index() != Compile::AliasIdxBot, "no bare pointers here");
*** 4499,4510 **** JVMState* LibraryCallKit::arraycopy_restore_alloc_state(AllocateArrayNode* alloc, int& saved_reexecute_sp) { if (alloc != NULL) { ciMethod* trap_method = alloc->jvms()->method(); int trap_bci = alloc->jvms()->bci(); ! if (!C->too_many_traps(trap_method, trap_bci, Deoptimization::Reason_intrinsic) && ! !C->too_many_traps(trap_method, trap_bci, Deoptimization::Reason_null_check)) { // Make sure there's no store between the allocation and the // arraycopy otherwise visible side effects could be rexecuted // in case of deoptimization and cause incorrect execution. bool no_interfering_store = true; Node* mem = alloc->in(TypeFunc::Memory); --- 4496,4507 ---- JVMState* LibraryCallKit::arraycopy_restore_alloc_state(AllocateArrayNode* alloc, int& saved_reexecute_sp) { if (alloc != NULL) { ciMethod* trap_method = alloc->jvms()->method(); int trap_bci = alloc->jvms()->bci(); ! if (!C->too_many_traps(trap_method, trap_bci, Deoptimization::Reason_intrinsic) & ! !C->too_many_traps(trap_method, trap_bci, Deoptimization::Reason_null_check)) { // Make sure there's no store between the allocation and the // arraycopy otherwise visible side effects could be rexecuted // in case of deoptimization and cause incorrect execution. bool no_interfering_store = true; Node* mem = alloc->in(TypeFunc::Memory);
< prev index next >