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