Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 22 additions & 2 deletions src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@
*/

// no precompiled headers
#ifdef COMPILER1
#include "c1/c1_Compiler.hpp"
#endif
#include "ci/ciUtilities.hpp"
#include "compiler/compiler_globals.hpp"
#include "compiler/oopMap.hpp"
Expand All @@ -43,7 +45,9 @@
#include "memory/universe.hpp"
#include "oops/compressedOops.hpp"
#include "oops/klass.inline.hpp"
#ifdef COMPILER2
#include "opto/c2compiler.hpp"
#endif
#include "runtime/flags/jvmFlag.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/stubRoutines.hpp"
Expand Down Expand Up @@ -225,6 +229,22 @@ void CompilerToVM::Data::initialize(JVMCI_TRAPS) {
#undef SET_TRIGFUNC
}

static jboolean is_c1_supported(vmIntrinsics::ID id){
jboolean supported = false;
#ifdef COMPILER1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Header c1/c1_Compiler.hpp at line 25 was introduced in JDK-8313372.
I suggest adding #ifdef COMPILER1 directive for this header as well.

The same to the C2 case, i.e. header opto/c2compiler.hpp.

supported = (jboolean) Compiler::is_intrinsic_supported(id);
#endif
return supported;
}

static jboolean is_c2_supported(vmIntrinsics::ID id){
jboolean supported = false;
#ifdef COMPILER2
supported = (jboolean) C2Compiler::is_intrinsic_supported(id);
#endif
return supported;
}

JVMCIObjectArray CompilerToVM::initialize_intrinsics(JVMCI_TRAPS) {
int len = vmIntrinsics::number_of_intrinsics() - 1; // Exclude vmIntrinsics::_none, which is 0
JVMCIObjectArray vmIntrinsics = JVMCIENV->new_VMIntrinsicMethod_array(len, JVMCI_CHECK_NULL);
Expand All @@ -243,8 +263,8 @@ JVMCIObjectArray CompilerToVM::initialize_intrinsics(JVMCI_TRAPS) {
JVMCIObject sig_str = VM_SYMBOL_TO_STRING(sig); \
JVMCIObject vmIntrinsicMethod = JVMCIENV->new_VMIntrinsicMethod(kls_str, name_str, sig_str, (jint) vmIntrinsics::id, \
(jboolean) vmIntrinsics::is_intrinsic_available(vmIntrinsics::id), \
(jboolean) Compiler::is_intrinsic_supported(vmIntrinsics::id), \
(jboolean) C2Compiler::is_intrinsic_supported(vmIntrinsics::id), JVMCI_CHECK_NULL); \
is_c1_supported(vmIntrinsics::id), \
is_c2_supported(vmIntrinsics::id), JVMCI_CHECK_NULL); \
JVMCIENV->put_object_at(vmIntrinsics, index++, vmIntrinsicMethod); \
}

Expand Down