< prev index next >

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

Print this page
*** 206,10 ***
--- 206,19 ---
                "<= ShenandoahAllocRateSampleWindow (%u)",
          ShenandoahMomentaryAllocRateSampleWindow, ShenandoahRecentAllocRateSampleWindow,
          ShenandoahAllocRateSampleWindow));
    }
  
+   if (Arguments::is_valhalla_enabled()) {
+     // Flat atomic payloads may contain embedded oops. Current Valhalla code does not handle
+     // it well, missing the GC barriers. As the temporary kludge, disable compressed oops:
+     // this would make flat atomic payloads contain at most one oop, which would be treated
+     // as the single oop field.
+     log_warning(gc)("Shenandoah disables compressed oops to avoid breaking with Valhalla");
+     FLAG_SET_ERGO(UseCompressedOops, false);
+   }
+ 
    FullGCForwarding::initialize_flags(MaxHeapSize);
  }
  
  size_t ShenandoahArguments::conservative_max_heap_alignment() {
    static_assert(is_power_of_2(ShenandoahHeapRegion::MAX_REGION_SIZE), "Max region size must be a power of 2.");
< prev index next >