42
43 // Handy constants for deciding which compiler mode to use.
44 enum MethodCompilation {
45 InvocationEntryBci = -1, // i.e., not a on-stack replacement compilation
46 BeforeBci = InvocationEntryBci,
47 AfterBci = -2,
48 UnwindBci = -3,
49 AfterExceptionBci = -4,
50 UnknownBci = -5,
51 InvalidFrameStateBci = -6
52 };
53
54 // Enumeration to distinguish tiers of compilation
55 enum CompLevel : s1 {
56 CompLevel_any = -1, // Used for querying the state
57 CompLevel_all = -1, // Used for changing the state
58 CompLevel_none = 0, // Interpreter
59 CompLevel_simple = 1, // C1
60 CompLevel_limited_profile = 2, // C1, invocation & backedge counters
61 CompLevel_full_profile = 3, // C1, invocation & backedge counters + mdo
62 CompLevel_full_optimization = 4 // C2 or JVMCI
63 };
64
65 class CompilationModeFlag : AllStatic {
66 enum class Mode {
67 NORMAL,
68 QUICK_ONLY,
69 HIGH_ONLY,
70 HIGH_ONLY_QUICK_INTERNAL
71 };
72 static Mode _mode;
73 static void print_error();
74 public:
75 static bool initialize();
76 static bool normal() { return _mode == Mode::NORMAL; }
77 static bool quick_only() { return _mode == Mode::QUICK_ONLY; }
78 static bool high_only() { return _mode == Mode::HIGH_ONLY; }
79 static bool high_only_quick_internal() { return _mode == Mode::HIGH_ONLY_QUICK_INTERNAL; }
80
81 static bool disable_intermediate() { return high_only() || high_only_quick_internal(); }
82 static bool quick_internal() { return !high_only(); }
|
42
43 // Handy constants for deciding which compiler mode to use.
44 enum MethodCompilation {
45 InvocationEntryBci = -1, // i.e., not a on-stack replacement compilation
46 BeforeBci = InvocationEntryBci,
47 AfterBci = -2,
48 UnwindBci = -3,
49 AfterExceptionBci = -4,
50 UnknownBci = -5,
51 InvalidFrameStateBci = -6
52 };
53
54 // Enumeration to distinguish tiers of compilation
55 enum CompLevel : s1 {
56 CompLevel_any = -1, // Used for querying the state
57 CompLevel_all = -1, // Used for changing the state
58 CompLevel_none = 0, // Interpreter
59 CompLevel_simple = 1, // C1
60 CompLevel_limited_profile = 2, // C1, invocation & backedge counters
61 CompLevel_full_profile = 3, // C1, invocation & backedge counters + mdo
62 CompLevel_full_optimization = 4, // C2 or JVMCI
63 CompLevel_count = 4
64 };
65
66 class CompilationModeFlag : AllStatic {
67 enum class Mode {
68 NORMAL,
69 QUICK_ONLY,
70 HIGH_ONLY,
71 HIGH_ONLY_QUICK_INTERNAL
72 };
73 static Mode _mode;
74 static void print_error();
75 public:
76 static bool initialize();
77 static bool normal() { return _mode == Mode::NORMAL; }
78 static bool quick_only() { return _mode == Mode::QUICK_ONLY; }
79 static bool high_only() { return _mode == Mode::HIGH_ONLY; }
80 static bool high_only_quick_internal() { return _mode == Mode::HIGH_ONLY_QUICK_INTERNAL; }
81
82 static bool disable_intermediate() { return high_only() || high_only_quick_internal(); }
83 static bool quick_internal() { return !high_only(); }
|