67
67
NOT_PRODUCT(cflags(TraceOptoPipelining, bool , TraceOptoPipelining, TraceOptoPipelining)) \
68
68
NOT_PRODUCT(cflags(TraceOptoOutput, bool , TraceOptoOutput, TraceOptoOutput)) \
69
69
NOT_PRODUCT(cflags(PrintIdeal, bool , PrintIdeal, PrintIdeal)) \
70
+ NOT_PRODUCT(cflags(PrintIdealPhase, ccstrlist, " " , PrintIdealPhase)) \
70
71
NOT_PRODUCT(cflags(PrintIdealLevel, uintx, PrintIdealLevel, PrintIdealLevel)) \
71
72
cflags(TraceSpilling, bool , TraceSpilling, TraceSpilling) \
72
73
cflags(Vectorize, bool , false , Vectorize) \
@@ -108,6 +109,7 @@ class DirectiveSet : public CHeapObj<mtCompiler> {
108
109
InlineMatcher* _inlinematchers;
109
110
CompilerDirectives* _directive;
110
111
TriBoolArray<(size_t )vmIntrinsics::number_of_intrinsics(), int > _intrinsic_control_words;
112
+ uint64_t _ideal_phase_name_mask;
111
113
112
114
public:
113
115
DirectiveSet (CompilerDirectives* directive);
@@ -137,7 +139,6 @@ class DirectiveSet : public CHeapObj<mtCompiler> {
137
139
138
140
private:
139
141
bool _modified[number_of_flags]; // Records what options where set by a directive
140
-
141
142
public:
142
143
#define flag_store_definition (name, type, dvalue, cc_flag ) type name##Option;
143
144
compilerdirectives_common_flags (flag_store_definition)
@@ -150,6 +151,9 @@ class DirectiveSet : public CHeapObj<mtCompiler> {
150
151
compilerdirectives_c2_flags (set_function_definition)
151
152
compilerdirectives_c1_flags (set_function_definition)
152
153
154
+ void set_ideal_phase_mask (uint64_t mask) { _ideal_phase_name_mask = mask; };
155
+ uint64_t ideal_phase_mask () { return _ideal_phase_name_mask; };
156
+
153
157
void print_intx (outputStream* st, ccstr n, intx v, bool mod) { if (mod) { st->print (" %s:" INTX_FORMAT " " , n, v); } }
154
158
void print_uintx (outputStream* st, ccstr n, intx v, bool mod) { if (mod) { st->print (" %s:" UINTX_FORMAT " " , n, v); } }
155
159
void print_bool (outputStream* st, ccstr n, bool v, bool mod) { if (mod) { st->print (" %s:%s " , n, v ? " true" : " false" ); } }
0 commit comments