src/share/vm/c1/c1_GraphBuilder.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
8076112 Cdiff src/share/vm/c1/c1_GraphBuilder.cpp
src/share/vm/c1/c1_GraphBuilder.cpp
Print this page
*** 3155,3164 ****
--- 3155,3167 ----
// shouldn't be parsed during the compilation, only the special
// Intrinsic node should be emitted. If this isn't done the the
// code for the inlined version will be different than the root
// compiled version which could lead to monotonicity problems on
// intel.
+ if (CheckIntrinsics && !scope->method()->intrinsic_candidate()) {
+ BAILOUT("failed to inline intrinsic, method not annotated");
+ }
// Set up a stream so that appending instructions works properly.
ciBytecodeStream s(scope->method());
s.reset_to_bci(0);
scope_data()->set_stream(&s);
*** 3195,3204 ****
--- 3198,3210 ----
// 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.
+ if (CheckIntrinsics && !scope->method()->intrinsic_candidate()) {
+ BAILOUT("failed to inline intrinsic, method not annotated");
+ }
// Also we need intrinsic to prevent commoning reads from this field
// across safepoint since GC can change its value.
// Set up a stream so that appending instructions works properly.
*** 3315,3325 ****
if (callee->is_method_handle_intrinsic()) {
return try_method_handle_inline(callee);
}
// handle intrinsics
! if (callee->intrinsic_id() != vmIntrinsics::_none) {
if (try_inline_intrinsics(callee)) {
print_inlining(callee, "intrinsic");
return true;
}
// try normal inlining
--- 3321,3332 ----
if (callee->is_method_handle_intrinsic()) {
return try_method_handle_inline(callee);
}
// handle intrinsics
! if (callee->intrinsic_id() != vmIntrinsics::_none &&
! (CheckIntrinsics ? callee->intrinsic_candidate() : true)) {
if (try_inline_intrinsics(callee)) {
print_inlining(callee, "intrinsic");
return true;
}
// try normal inlining
*** 4276,4286 ****
ValueStack* state_before = copy_state_for_exception();
ValueType* result_type = as_ValueType(callee->return_type());
assert(result_type->is_int(), "int result");
Values* args = state()->pop_arguments(callee->arg_size());
! // Pop off some args to speically handle, then push back
Value newval = args->pop();
Value cmpval = args->pop();
Value offset = args->pop();
Value src = args->pop();
Value unsafe_obj = args->pop();
--- 4283,4293 ----
ValueStack* state_before = copy_state_for_exception();
ValueType* result_type = as_ValueType(callee->return_type());
assert(result_type->is_int(), "int result");
Values* args = state()->pop_arguments(callee->arg_size());
! // Pop off some args to specially handle, then push back
Value newval = args->pop();
Value cmpval = args->pop();
Value offset = args->pop();
Value src = args->pop();
Value unsafe_obj = args->pop();
src/share/vm/c1/c1_GraphBuilder.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File