--- a/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp Tue Aug 13 16:18:43 2019 +0100
+++ b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp Tue Aug 13 13:01:41 2019 -0400
@@ -276,20 +276,9 @@
void ShenandoahConcurrentMark::update_roots(ShenandoahPhaseTimings::Phase root_phase) {
assert(ShenandoahSafepoint::is_at_shenandoah_safepoint(), "Must be at a safepoint");
-
- bool update_code_cache = true; // initialize to safer value
- switch (root_phase) {
- case ShenandoahPhaseTimings::update_roots:
- case ShenandoahPhaseTimings::final_update_refs_roots:
- update_code_cache = false;
- break;
- case ShenandoahPhaseTimings::full_gc_roots:
- case ShenandoahPhaseTimings::degen_gc_update_roots:
- update_code_cache = true;
- break;
- default:
- ShouldNotReachHere();
- }
+ assert(root_phase == ShenandoahPhaseTimings::full_gc_roots ||
+ root_phase == ShenandoahPhaseTimings::degen_gc_update_roots,
+ "Only for these phases");
ShenandoahGCPhase phase(root_phase);
@@ -299,7 +288,7 @@
uint nworkers = _heap->workers()->active_workers();
- ShenandoahRootUpdater root_updater(nworkers, root_phase, update_code_cache);
+ ShenandoahRootUpdater root_updater(nworkers, root_phase);
ShenandoahUpdateRootsTask update_roots(&root_updater);
_heap->workers()->run_task(&update_roots);
--- a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp Tue Aug 13 16:18:43 2019 +0100
+++ b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp Tue Aug 13 13:01:41 2019 -0400
@@ -184,10 +184,9 @@
_dedup_roots.oops_do(&always_true, oops, worker_id);
}
-ShenandoahRootUpdater::ShenandoahRootUpdater(uint n_workers, ShenandoahPhaseTimings::Phase phase, bool update_code_cache) :
+ShenandoahRootUpdater::ShenandoahRootUpdater(uint n_workers, ShenandoahPhaseTimings::Phase phase) :
ShenandoahRootProcessor(phase),
- _thread_roots(n_workers > 1),
- _update_code_cache(update_code_cache) {
+ _thread_roots(n_workers > 1) {
}
ShenandoahRootAdjuster::ShenandoahRootAdjuster(uint n_workers, ShenandoahPhaseTimings::Phase phase) :
--- a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp Tue Aug 13 16:18:43 2019 +0100
+++ b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp Tue Aug 13 13:01:41 2019 -0400
@@ -295,10 +295,9 @@
ShenandoahWeakRoots<false /*concurrent*/> _weak_roots;
ShenandoahStringDedupRoots _dedup_roots;
ShenandoahCodeCacheRoots<ShenandoahCsetCodeRootsIterator> _code_roots;
- const bool _update_code_cache;
public:
- ShenandoahRootUpdater(uint n_workers, ShenandoahPhaseTimings::Phase phase, bool update_code_cache);
+ ShenandoahRootUpdater(uint n_workers, ShenandoahPhaseTimings::Phase phase);
template<typename IsAlive, typename KeepAlive>
void roots_do(uint worker_id, IsAlive* is_alive, KeepAlive* keep_alive);
--- a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.inline.hpp Tue Aug 13 16:18:43 2019 +0100
+++ b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.inline.hpp Tue Aug 13 13:01:41 2019 -0400
@@ -272,10 +272,7 @@
_thread_roots.oops_do(keep_alive, NULL, worker_id);
_cld_roots.cld_do(&clds, worker_id);
-
- if(_update_code_cache) {
- _code_roots.code_blobs_do(&update_blobs, worker_id);
- }
+ _code_roots.code_blobs_do(&update_blobs, worker_id);
_serial_weak_roots.weak_oops_do(is_alive, keep_alive, worker_id);
_weak_roots.weak_oops_do(is_alive, keep_alive, worker_id);
--- a/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Tue Aug 13 16:18:43 2019 +0100
+++ b/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Tue Aug 13 13:01:41 2019 -0400
@@ -706,7 +706,7 @@
#if COMPILER2_OR_JVMCI
DerivedPointerTable::clear();
#endif
- ShenandoahRootUpdater rp(_heap->workers()->active_workers(), ShenandoahPhaseTimings::final_traversal_update_roots, true /* update code cache */);
+ ShenandoahRootUpdater rp(_heap->workers()->active_workers(), ShenandoahPhaseTimings::final_traversal_update_roots);
ShenandoahTraversalFixRootsTask update_roots_task(&rp);
_heap->workers()->run_task(&update_roots_task);
#if COMPILER2_OR_JVMCI