mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
8075263: MHI::checkCustomized isn't eliminated for inlined MethodHandles
Reviewed-by: jrose, kvn
This commit is contained in:
parent
ad99060af9
commit
43dbb43fb5
2 changed files with 15 additions and 3 deletions
|
@ -868,9 +868,12 @@
|
|||
\
|
||||
/* Custom branch frequencies profiling support for JSR292 */ \
|
||||
do_class(java_lang_invoke_MethodHandleImpl, "java/lang/invoke/MethodHandleImpl") \
|
||||
do_intrinsic(_profileBoolean, java_lang_invoke_MethodHandleImpl, profileBoolean_name, profileBoolean_signature, F_S) \
|
||||
do_name( profileBoolean_name, "profileBoolean") \
|
||||
do_signature(profileBoolean_signature, "(Z[I)Z") \
|
||||
do_intrinsic(_profileBoolean, java_lang_invoke_MethodHandleImpl, profileBoolean_name, profileBoolean_signature, F_S) \
|
||||
do_name( profileBoolean_name, "profileBoolean") \
|
||||
do_signature(profileBoolean_signature, "(Z[I)Z") \
|
||||
do_intrinsic(_isCompileConstant, java_lang_invoke_MethodHandleImpl, isCompileConstant_name, isCompileConstant_signature, F_S) \
|
||||
do_name( isCompileConstant_name, "isCompileConstant") \
|
||||
do_alias( isCompileConstant_signature, object_boolean_signature) \
|
||||
\
|
||||
/* unsafe memory references (there are a lot of them...) */ \
|
||||
do_signature(getObject_signature, "(Ljava/lang/Object;J)Ljava/lang/Object;") \
|
||||
|
|
|
@ -290,6 +290,7 @@ class LibraryCallKit : public GraphKit {
|
|||
bool inline_multiplyToLen();
|
||||
|
||||
bool inline_profileBoolean();
|
||||
bool inline_isCompileConstant();
|
||||
};
|
||||
|
||||
|
||||
|
@ -900,6 +901,8 @@ bool LibraryCallKit::try_to_inline(int predicate) {
|
|||
|
||||
case vmIntrinsics::_profileBoolean:
|
||||
return inline_profileBoolean();
|
||||
case vmIntrinsics::_isCompileConstant:
|
||||
return inline_isCompileConstant();
|
||||
|
||||
default:
|
||||
// If you get here, it may be that someone has added a new intrinsic
|
||||
|
@ -5888,3 +5891,9 @@ bool LibraryCallKit::inline_profileBoolean() {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool LibraryCallKit::inline_isCompileConstant() {
|
||||
Node* n = argument(0);
|
||||
set_result(n->is_Con() ? intcon(1) : intcon(0));
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue