hotspot/src/share/vm/runtime/arguments.cpp
changeset 7427 d7b79a367474
parent 7397 5b173b4ca846
child 7719 ef138e2849eb
equal deleted inserted replaced
7397:5b173b4ca846 7427:d7b79a367474
  1005 }
  1005 }
  1006 
  1006 
  1007 void Arguments::check_compressed_oops_compat() {
  1007 void Arguments::check_compressed_oops_compat() {
  1008 #ifdef _LP64
  1008 #ifdef _LP64
  1009   assert(UseCompressedOops, "Precondition");
  1009   assert(UseCompressedOops, "Precondition");
  1010 #  if defined(COMPILER1) && !defined(TIERED)
       
  1011   // Until c1 supports compressed oops turn them off.
       
  1012   FLAG_SET_DEFAULT(UseCompressedOops, false);
       
  1013 #  else
       
  1014   // Is it on by default or set on ergonomically
  1010   // Is it on by default or set on ergonomically
  1015   bool is_on_by_default = FLAG_IS_DEFAULT(UseCompressedOops) || FLAG_IS_ERGO(UseCompressedOops);
  1011   bool is_on_by_default = FLAG_IS_DEFAULT(UseCompressedOops) || FLAG_IS_ERGO(UseCompressedOops);
  1016 
       
  1017   // Tiered currently doesn't work with compressed oops
       
  1018   if (TieredCompilation) {
       
  1019     if (is_on_by_default) {
       
  1020       FLAG_SET_DEFAULT(UseCompressedOops, false);
       
  1021       return;
       
  1022     } else {
       
  1023       vm_exit_during_initialization(
       
  1024         "Tiered compilation is not supported with compressed oops yet", NULL);
       
  1025     }
       
  1026   }
       
  1027 
  1012 
  1028   // If dumping an archive or forcing its use, disable compressed oops if possible
  1013   // If dumping an archive or forcing its use, disable compressed oops if possible
  1029   if (DumpSharedSpaces || RequireSharedSpaces) {
  1014   if (DumpSharedSpaces || RequireSharedSpaces) {
  1030     if (is_on_by_default) {
  1015     if (is_on_by_default) {
  1031       FLAG_SET_DEFAULT(UseCompressedOops, false);
  1016       FLAG_SET_DEFAULT(UseCompressedOops, false);
  1036     }
  1021     }
  1037   } else if (UseSharedSpaces) {
  1022   } else if (UseSharedSpaces) {
  1038     // UseSharedSpaces is on by default. With compressed oops, we turn it off.
  1023     // UseSharedSpaces is on by default. With compressed oops, we turn it off.
  1039     FLAG_SET_DEFAULT(UseSharedSpaces, false);
  1024     FLAG_SET_DEFAULT(UseSharedSpaces, false);
  1040   }
  1025   }
  1041 
  1026 #endif
  1042 #  endif // defined(COMPILER1) && !defined(TIERED)
       
  1043 #endif // _LP64
       
  1044 }
  1027 }
  1045 
  1028 
  1046 void Arguments::set_tiered_flags() {
  1029 void Arguments::set_tiered_flags() {
  1047   if (FLAG_IS_DEFAULT(CompilationPolicyChoice)) {
  1030   if (FLAG_IS_DEFAULT(CompilationPolicyChoice)) {
  1048     FLAG_SET_DEFAULT(CompilationPolicyChoice, 2);
  1031     FLAG_SET_DEFAULT(CompilationPolicyChoice, 2);
  3073 #endif // KERNEL
  3056 #endif // KERNEL
  3074 
  3057 
  3075   // Set flags based on ergonomics.
  3058   // Set flags based on ergonomics.
  3076   set_ergonomics_flags();
  3059   set_ergonomics_flags();
  3077 
  3060 
  3078 #ifdef _LP64
       
  3079   if (UseCompressedOops) {
  3061   if (UseCompressedOops) {
  3080     check_compressed_oops_compat();
  3062     check_compressed_oops_compat();
  3081   }
  3063   }
  3082 #endif
       
  3083 
  3064 
  3084   // Check the GC selections again.
  3065   // Check the GC selections again.
  3085   if (!check_gc_consistency()) {
  3066   if (!check_gc_consistency()) {
  3086     return JNI_EINVAL;
  3067     return JNI_EINVAL;
  3087   }
  3068   }