97 flags(BEFORE_MATCHING, "Before matching") \
98 flags(MATCHING, "After matching") \
99 flags(GLOBAL_CODE_MOTION, "Global code motion") \
100 flags(INITIAL_LIVENESS, "Initial liveness") \
101 flags(AGGRESSIVE_COALESCING, "Aggressive coalescing") \
102 flags(INITIAL_SPILLING, "Initial spilling") \
103 flags(CONSERVATIVE_COALESCING, "Conservative coalescing") \
104 flags(ITERATIVE_SPILLING, "Iterative spilling") \
105 flags(AFTER_ITERATIVE_SPILLING, "After iterative spilling") \
106 flags(POST_ALLOCATION_COPY_REMOVAL, "Post-allocation copy removal") \
107 flags(MERGE_MULTI_DEFS, "Merge multiple definitions") \
108 flags(FIX_UP_SPILLS, "Fix up spills") \
109 flags(REGISTER_ALLOCATION, "Register Allocation") \
110 flags(BLOCK_ORDERING, "Block Ordering") \
111 flags(PEEPHOLE, "Peephole") \
112 flags(POSTALLOC_EXPAND, "Post-Allocation Expand") \
113 flags(MACH_ANALYSIS, "After mach analysis") \
114 flags(FINAL_CODE, "Final Code") \
115 flags(END, "End") \
116 flags(FAILURE, "Failure") \
117 flags(ALL, "All") \
118 flags(DEBUG, "Debug")
119
120 #define table_entry(name, description) PHASE_##name,
121 enum CompilerPhaseType {
122 COMPILER_PHASES(table_entry)
123 PHASE_NUM_TYPES,
124 PHASE_NONE
125 };
126 #undef table_entry
127
128 static const char* phase_descriptions[] = {
129 #define array_of_labels(name, description) description,
130 COMPILER_PHASES(array_of_labels)
131 #undef array_of_labels
132 };
133
134 static const char* phase_names[] = {
135 #define array_of_labels(name, description) #name,
136 COMPILER_PHASES(array_of_labels)
|
97 flags(BEFORE_MATCHING, "Before matching") \
98 flags(MATCHING, "After matching") \
99 flags(GLOBAL_CODE_MOTION, "Global code motion") \
100 flags(INITIAL_LIVENESS, "Initial liveness") \
101 flags(AGGRESSIVE_COALESCING, "Aggressive coalescing") \
102 flags(INITIAL_SPILLING, "Initial spilling") \
103 flags(CONSERVATIVE_COALESCING, "Conservative coalescing") \
104 flags(ITERATIVE_SPILLING, "Iterative spilling") \
105 flags(AFTER_ITERATIVE_SPILLING, "After iterative spilling") \
106 flags(POST_ALLOCATION_COPY_REMOVAL, "Post-allocation copy removal") \
107 flags(MERGE_MULTI_DEFS, "Merge multiple definitions") \
108 flags(FIX_UP_SPILLS, "Fix up spills") \
109 flags(REGISTER_ALLOCATION, "Register Allocation") \
110 flags(BLOCK_ORDERING, "Block Ordering") \
111 flags(PEEPHOLE, "Peephole") \
112 flags(POSTALLOC_EXPAND, "Post-Allocation Expand") \
113 flags(MACH_ANALYSIS, "After mach analysis") \
114 flags(FINAL_CODE, "Final Code") \
115 flags(END, "End") \
116 flags(FAILURE, "Failure") \
117 flags(SPLIT_INLINES_ARRAY, "Split inlines array") \
118 flags(SPLIT_INLINES_ARRAY_IGVN, "IGVN after split inlines array") \
119 flags(ALL, "All") \
120 flags(DEBUG, "Debug")
121
122 #define table_entry(name, description) PHASE_##name,
123 enum CompilerPhaseType {
124 COMPILER_PHASES(table_entry)
125 PHASE_NUM_TYPES,
126 PHASE_NONE
127 };
128 #undef table_entry
129
130 static const char* phase_descriptions[] = {
131 #define array_of_labels(name, description) description,
132 COMPILER_PHASES(array_of_labels)
133 #undef array_of_labels
134 };
135
136 static const char* phase_names[] = {
137 #define array_of_labels(name, description) #name,
138 COMPILER_PHASES(array_of_labels)
|