54 flags(PHASEIDEAL_BEFORE_EA, "PhaseIdealLoop before EA") \
55 flags(AFTER_EA, "After Escape Analysis") \
56 flags(ITER_GVN_AFTER_EA, "Iter GVN after EA") \
57 flags(ITER_GVN_AFTER_ELIMINATION, "Iter GVN after eliminating allocations and locks") \
58 flags(PHASEIDEALLOOP1, "PhaseIdealLoop 1") \
59 flags(PHASEIDEALLOOP2, "PhaseIdealLoop 2") \
60 flags(PHASEIDEALLOOP3, "PhaseIdealLoop 3") \
61 flags(CCP1, "PhaseCCP 1") \
62 flags(ITER_GVN2, "Iter GVN 2") \
63 flags(PHASEIDEALLOOP_ITERATIONS, "PhaseIdealLoop iterations") \
64 flags(MACRO_EXPANSION, "Macro expand") \
65 flags(BARRIER_EXPANSION, "Barrier expand") \
66 flags(OPTIMIZE_FINISHED, "Optimize finished") \
67 flags(BEFORE_MATCHING, "Before matching") \
68 flags(MATCHING, "After matching") \
69 flags(GLOBAL_CODE_MOTION, "Global code motion") \
70 flags(MACH_ANALYSIS, "After mach analysis") \
71 flags(FINAL_CODE, "Final Code") \
72 flags(END, "End") \
73 flags(FAILURE, "Failure") \
74 flags(ALL, "All") \
75 flags(DEBUG, "Debug")
76
77 #define table_entry(name, description) PHASE_##name,
78 enum CompilerPhaseType {
79 COMPILER_PHASES(table_entry)
80 PHASE_NUM_TYPES,
81 PHASE_NONE
82 };
83 #undef table_entry
84
85 static const char* phase_descriptions[] = {
86 #define array_of_labels(name, description) description,
87 COMPILER_PHASES(array_of_labels)
88 #undef array_of_labels
89 };
90
91 static const char* phase_names[] = {
92 #define array_of_labels(name, description) #name,
93 COMPILER_PHASES(array_of_labels)
|
54 flags(PHASEIDEAL_BEFORE_EA, "PhaseIdealLoop before EA") \
55 flags(AFTER_EA, "After Escape Analysis") \
56 flags(ITER_GVN_AFTER_EA, "Iter GVN after EA") \
57 flags(ITER_GVN_AFTER_ELIMINATION, "Iter GVN after eliminating allocations and locks") \
58 flags(PHASEIDEALLOOP1, "PhaseIdealLoop 1") \
59 flags(PHASEIDEALLOOP2, "PhaseIdealLoop 2") \
60 flags(PHASEIDEALLOOP3, "PhaseIdealLoop 3") \
61 flags(CCP1, "PhaseCCP 1") \
62 flags(ITER_GVN2, "Iter GVN 2") \
63 flags(PHASEIDEALLOOP_ITERATIONS, "PhaseIdealLoop iterations") \
64 flags(MACRO_EXPANSION, "Macro expand") \
65 flags(BARRIER_EXPANSION, "Barrier expand") \
66 flags(OPTIMIZE_FINISHED, "Optimize finished") \
67 flags(BEFORE_MATCHING, "Before matching") \
68 flags(MATCHING, "After matching") \
69 flags(GLOBAL_CODE_MOTION, "Global code motion") \
70 flags(MACH_ANALYSIS, "After mach analysis") \
71 flags(FINAL_CODE, "Final Code") \
72 flags(END, "End") \
73 flags(FAILURE, "Failure") \
74 flags(SPLIT_INLINES_ARRAY, "Split inlines array") \
75 flags(SPLIT_INLINES_ARRAY_IGVN, "IGVN after split inlines array") \
76 flags(ALL, "All") \
77 flags(DEBUG, "Debug")
78
79 #define table_entry(name, description) PHASE_##name,
80 enum CompilerPhaseType {
81 COMPILER_PHASES(table_entry)
82 PHASE_NUM_TYPES,
83 PHASE_NONE
84 };
85 #undef table_entry
86
87 static const char* phase_descriptions[] = {
88 #define array_of_labels(name, description) description,
89 COMPILER_PHASES(array_of_labels)
90 #undef array_of_labels
91 };
92
93 static const char* phase_names[] = {
94 #define array_of_labels(name, description) #name,
95 COMPILER_PHASES(array_of_labels)
|