< prev index next >

src/share/vm/ci/ciEnv.cpp

Print this page




 954                             CodeBuffer* code_buffer,
 955                             int frame_words,
 956                             OopMapSet* oop_map_set,
 957                             ExceptionHandlerTable* handler_table,
 958                             ImplicitExceptionTable* inc_table,
 959                             AbstractCompiler* compiler,
 960                             bool has_unsafe_access,
 961                             bool has_wide_vectors,
 962                             DirectiveSet* directives,
 963                             RTMState  rtm_state) {
 964   VM_ENTRY_MARK;
 965   nmethod* nm = NULL;
 966   {
 967     // To prevent compile queue updates.
 968     MutexLocker locker(MethodCompileQueue_lock, THREAD);
 969 
 970     // Prevent SystemDictionary::add_to_hierarchy from running
 971     // and invalidating our dependencies until we install this method.
 972     // No safepoints are allowed. Otherwise, class redefinition can occur in between.
 973     MutexLocker ml(Compile_lock);
 974     No_Safepoint_Verifier nsv;
 975 
 976     // Change in Jvmti state may invalidate compilation.
 977     if (!failing() && jvmti_state_changed()) {
 978       record_failure("Jvmti state change invalidated dependencies");
 979     }
 980 
 981     // Change in DTrace flags may invalidate compilation.
 982     if (!failing() &&
 983         ( (!dtrace_extended_probes() && ExtendedDTraceProbes) ||
 984           (!dtrace_method_probes() && DTraceMethodProbes) ||
 985           (!dtrace_alloc_probes() && DTraceAllocProbes) )) {
 986       record_failure("DTrace flags change invalidated dependencies");
 987     }
 988 
 989     if (!failing()) {
 990       if (log() != NULL) {
 991         // Log the dependencies which this compilation declares.
 992         dependencies()->log_all_dependencies();
 993       }
 994 




 954                             CodeBuffer* code_buffer,
 955                             int frame_words,
 956                             OopMapSet* oop_map_set,
 957                             ExceptionHandlerTable* handler_table,
 958                             ImplicitExceptionTable* inc_table,
 959                             AbstractCompiler* compiler,
 960                             bool has_unsafe_access,
 961                             bool has_wide_vectors,
 962                             DirectiveSet* directives,
 963                             RTMState  rtm_state) {
 964   VM_ENTRY_MARK;
 965   nmethod* nm = NULL;
 966   {
 967     // To prevent compile queue updates.
 968     MutexLocker locker(MethodCompileQueue_lock, THREAD);
 969 
 970     // Prevent SystemDictionary::add_to_hierarchy from running
 971     // and invalidating our dependencies until we install this method.
 972     // No safepoints are allowed. Otherwise, class redefinition can occur in between.
 973     MutexLocker ml(Compile_lock);
 974     NoSafepointVerifier nsv;
 975 
 976     // Change in Jvmti state may invalidate compilation.
 977     if (!failing() && jvmti_state_changed()) {
 978       record_failure("Jvmti state change invalidated dependencies");
 979     }
 980 
 981     // Change in DTrace flags may invalidate compilation.
 982     if (!failing() &&
 983         ( (!dtrace_extended_probes() && ExtendedDTraceProbes) ||
 984           (!dtrace_method_probes() && DTraceMethodProbes) ||
 985           (!dtrace_alloc_probes() && DTraceAllocProbes) )) {
 986       record_failure("DTrace flags change invalidated dependencies");
 987     }
 988 
 989     if (!failing()) {
 990       if (log() != NULL) {
 991         // Log the dependencies which this compilation declares.
 992         dependencies()->log_all_dependencies();
 993       }
 994 


< prev index next >