diff --git a/src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp b/src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp index cf64f3543fb9c..881f46e86c72d 100644 --- a/src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp +++ b/src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp @@ -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" @@ -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" @@ -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 + 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); @@ -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); \ }