< prev index next >

src/share/vm/opto/compile.cpp

Print this page
rev 12906 : [mq]: gc_interface

*** 759,779 **** // Normal case. init_tf(TypeFunc::make(method())); StartNode* s = new StartNode(root(), tf()->domain()); initial_gvn()->set_type_bottom(s); init_start(s); ! if (method()->intrinsic_id() == vmIntrinsics::_Reference_get && UseG1GC) { // With java.lang.ref.reference.get() we must go through the ! // intrinsic when G1 is enabled - even when get() is the root // method of the compile - so that, if necessary, the value in // the referent field of the reference object gets recorded by // the pre-barrier code. - // Specifically, if G1 is enabled, the value in the referent - // field is recorded by the G1 SATB pre barrier. This will - // result in the referent being marked live and the reference - // object removed from the list of discovered references during - // reference processing. cg = find_intrinsic(method(), false); } if (cg == NULL) { float past_uses = method()->interpreter_invocation_count(); float expected_uses = past_uses; --- 759,774 ---- // Normal case. init_tf(TypeFunc::make(method())); StartNode* s = new StartNode(root(), tf()->domain()); initial_gvn()->set_type_bottom(s); init_start(s); ! if (method()->intrinsic_id() == vmIntrinsics::_Reference_get) { // With java.lang.ref.reference.get() we must go through the ! // intrinsic - even when get() is the root // method of the compile - so that, if necessary, the value in // the referent field of the reference object gets recorded by // the pre-barrier code. cg = find_intrinsic(method(), false); } if (cg == NULL) { float past_uses = method()->interpreter_invocation_count(); float expected_uses = past_uses;
< prev index next >