736 } else if (compLevel == COMP_LEVEL_FULL_OPTIMIZATION) { 737 compLevel = COMP_LEVEL_SIMPLE; 738 } 739 } 740 if (!TEST_C1 && compLevel < COMP_LEVEL_FULL_OPTIMIZATION) { 741 compLevel = COMP_LEVEL_FULL_OPTIMIZATION; 742 } 743 if (compLevel > (int)TieredStopAtLevel) { 744 compLevel = (int)TieredStopAtLevel; 745 } 746 return compLevel; 747 } 748 749 public static void enqueueMethodForCompilation(Method m, int level) { 750 level = restrictCompLevel(level); 751 if (VERBOSE) { 752 System.out.println("enqueueMethodForCompilation " + m + ", level = " + level); 753 } 754 WHITE_BOX.enqueueMethodForCompilation(m, level); 755 } 756 } | 736 } else if (compLevel == COMP_LEVEL_FULL_OPTIMIZATION) { 737 compLevel = COMP_LEVEL_SIMPLE; 738 } 739 } 740 if (!TEST_C1 && compLevel < COMP_LEVEL_FULL_OPTIMIZATION) { 741 compLevel = COMP_LEVEL_FULL_OPTIMIZATION; 742 } 743 if (compLevel > (int)TieredStopAtLevel) { 744 compLevel = (int)TieredStopAtLevel; 745 } 746 return compLevel; 747 } 748 749 public static void enqueueMethodForCompilation(Method m, int level) { 750 level = restrictCompLevel(level); 751 if (VERBOSE) { 752 System.out.println("enqueueMethodForCompilation " + m + ", level = " + level); 753 } 754 WHITE_BOX.enqueueMethodForCompilation(m, level); 755 } 756 757 // Unlike C2, C1 intrinsics never deoptimize System.arraycopy. Instead, we fall back to 758 // a normal method invocation when encountering flattened arrays. 759 static boolean isCompiledByC2(Method m) { 760 int CompLevel_none = 0, // Interpreter 761 CompLevel_simple = 1, // C1 762 CompLevel_limited_profile = 2, // C1, invocation & backedge counters 763 CompLevel_full_profile = 3, // C1, invocation & backedge counters + mdo 764 CompLevel_full_optimization = 4; // C2 or JVMCI 765 766 return USE_COMPILER && !XCOMP && WHITE_BOX.isMethodCompiled(m, false) && 767 WHITE_BOX.getMethodCompilationLevel(m, false) >= CompLevel_full_optimization; 768 } 769 } |