< prev index next >
src/hotspot/share/aot/aotCodeHeap.cpp
Print this page
rev 56205 : imported patch 8226705-v1
rev 56206 : [mq]: 8226705-v2
@@ -36,10 +36,11 @@
#include "jvmci/jvmciRuntime.hpp"
#include "memory/allocation.inline.hpp"
#include "memory/universe.hpp"
#include "oops/compressedOops.hpp"
#include "oops/method.inline.hpp"
+#include "runtime/deoptimization.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/os.hpp"
#include "runtime/safepointVerifiers.hpp"
#include "runtime/sharedRuntime.hpp"
#include "runtime/vmOperations.hpp"
@@ -353,11 +354,14 @@
} else { // success
// Publish method
#ifdef TIERED
mh->set_aot_code(aot);
#endif
+ {
+ MutexLocker pl(CompiledMethod_lock, Mutex::_no_safepoint_check_flag);
Method::set_code(mh, aot);
+ }
if (PrintAOT || (PrintCompilation && PrintAOT)) {
PauseNoSafepointVerifier pnsv(&nsv); // aot code is registered already
aot->print_on(tty, NULL);
}
// Publish oop only after we are visible to CompiledMethodIterator
@@ -733,12 +737,11 @@
}
}
}
}
if (marked > 0) {
- VM_Deoptimize op;
- VMThread::execute(&op);
+ Deoptimization::deoptimize_all_marked();
}
}
void AOTCodeHeap::sweep_dependent_methods(AOTKlassData* klass_data) {
// Make dependent methods non_entrant forever.
< prev index next >