src/hotspot/share/opto/graphKit.cpp
Index Unified diffs Context diffs Sdiffs Frames Patch New Old Previous File Next File open Cdiff src/hotspot/share/opto/graphKit.cpp

src/hotspot/share/opto/graphKit.cpp

Print this page

        

*** 2114,2125 **** // Report the object that was just allocated. // It must be the case that there are no intervening safepoints. // We use this to determine if an object is so "fresh" that // it does not require card marks. Node* GraphKit::just_allocated_object(Node* current_control) { ! if (C->recent_alloc_ctl() == current_control) return C->recent_alloc_obj(); return NULL; } void GraphKit::round_double_arguments(ciMethod* dest_method) { --- 2114,2134 ---- // Report the object that was just allocated. // It must be the case that there are no intervening safepoints. // We use this to determine if an object is so "fresh" that // it does not require card marks. Node* GraphKit::just_allocated_object(Node* current_control) { ! Node* ctrl = current_control; ! // Object::<init> is invoked after allocation, most of invoke nodes ! // will be reduced, but a region node is kept in parse time, we check ! // the pattern and skip the region node if it degraded to a copy. ! if (ctrl != NULL && ctrl->is_Region() && ctrl->req() == 2 && ! ctrl->as_Region()->is_copy()) { ! ctrl = ctrl->as_Region()->is_copy(); ! } ! if (C->recent_alloc_ctl() == ctrl) { return C->recent_alloc_obj(); + } return NULL; } void GraphKit::round_double_arguments(ciMethod* dest_method) {
src/hotspot/share/opto/graphKit.cpp
Index Unified diffs Context diffs Sdiffs Frames Patch New Old Previous File Next File