< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp

Print this page
rev 55220 : 8225342: Shenandoah: use COMPILER2_OR_JVMCI macro consistently
Reviewed-by: XXX


 275 
 276 void ShenandoahConcurrentMark::update_roots(ShenandoahPhaseTimings::Phase root_phase) {
 277   assert(ShenandoahSafepoint::is_at_shenandoah_safepoint(), "Must be at a safepoint");
 278 
 279   bool update_code_cache = true; // initialize to safer value
 280   switch (root_phase) {
 281     case ShenandoahPhaseTimings::update_roots:
 282     case ShenandoahPhaseTimings::final_update_refs_roots:
 283       update_code_cache = false;
 284       break;
 285     case ShenandoahPhaseTimings::full_gc_roots:
 286     case ShenandoahPhaseTimings::degen_gc_update_roots:
 287       update_code_cache = true;
 288       break;
 289     default:
 290       ShouldNotReachHere();
 291   }
 292 
 293   ShenandoahGCPhase phase(root_phase);
 294 
 295 #if defined(COMPILER2) || INCLUDE_JVMCI
 296   DerivedPointerTable::clear();
 297 #endif
 298 
 299   uint nworkers = _heap->workers()->active_workers();
 300 
 301   ShenandoahRootUpdater root_updater(nworkers, root_phase, update_code_cache);
 302   ShenandoahUpdateRootsTask update_roots(&root_updater);
 303   _heap->workers()->run_task(&update_roots);
 304 
 305 #if defined(COMPILER2) || INCLUDE_JVMCI
 306   DerivedPointerTable::update_pointers();
 307 #endif
 308 }
 309 
 310 class ShenandoahUpdateThreadRootsTask : public AbstractGangTask {
 311 private:
 312   ShenandoahThreadRoots           _thread_roots;
 313   ShenandoahPhaseTimings::Phase   _phase;
 314 public:
 315   ShenandoahUpdateThreadRootsTask(bool is_par, ShenandoahPhaseTimings::Phase phase) :
 316     AbstractGangTask("Shenandoah Update Thread Roots"),
 317     _thread_roots(is_par),
 318     _phase(phase) {
 319     ShenandoahHeap::heap()->phase_timings()->record_workers_start(_phase);
 320   }
 321 
 322   ~ShenandoahUpdateThreadRootsTask() {
 323     ShenandoahHeap::heap()->phase_timings()->record_workers_end(_phase);
 324   }
 325   void work(uint worker_id) {




 275 
 276 void ShenandoahConcurrentMark::update_roots(ShenandoahPhaseTimings::Phase root_phase) {
 277   assert(ShenandoahSafepoint::is_at_shenandoah_safepoint(), "Must be at a safepoint");
 278 
 279   bool update_code_cache = true; // initialize to safer value
 280   switch (root_phase) {
 281     case ShenandoahPhaseTimings::update_roots:
 282     case ShenandoahPhaseTimings::final_update_refs_roots:
 283       update_code_cache = false;
 284       break;
 285     case ShenandoahPhaseTimings::full_gc_roots:
 286     case ShenandoahPhaseTimings::degen_gc_update_roots:
 287       update_code_cache = true;
 288       break;
 289     default:
 290       ShouldNotReachHere();
 291   }
 292 
 293   ShenandoahGCPhase phase(root_phase);
 294 
 295 #if COMPILER2_OR_JVMCI
 296   DerivedPointerTable::clear();
 297 #endif
 298 
 299   uint nworkers = _heap->workers()->active_workers();
 300 
 301   ShenandoahRootUpdater root_updater(nworkers, root_phase, update_code_cache);
 302   ShenandoahUpdateRootsTask update_roots(&root_updater);
 303   _heap->workers()->run_task(&update_roots);
 304 
 305 #if COMPILER2_OR_JVMCI
 306   DerivedPointerTable::update_pointers();
 307 #endif
 308 }
 309 
 310 class ShenandoahUpdateThreadRootsTask : public AbstractGangTask {
 311 private:
 312   ShenandoahThreadRoots           _thread_roots;
 313   ShenandoahPhaseTimings::Phase   _phase;
 314 public:
 315   ShenandoahUpdateThreadRootsTask(bool is_par, ShenandoahPhaseTimings::Phase phase) :
 316     AbstractGangTask("Shenandoah Update Thread Roots"),
 317     _thread_roots(is_par),
 318     _phase(phase) {
 319     ShenandoahHeap::heap()->phase_timings()->record_workers_start(_phase);
 320   }
 321 
 322   ~ShenandoahUpdateThreadRootsTask() {
 323     ShenandoahHeap::heap()->phase_timings()->record_workers_end(_phase);
 324   }
 325   void work(uint worker_id) {


< prev index next >