110 flags(MATCHING, "After Matching") \
111 flags(GLOBAL_CODE_MOTION, "Global Code Motion") \
112 flags(INITIAL_LIVENESS, "Initial Liveness") \
113 flags(LIVE_RANGE_STRETCHING, "Live Range Stretching") \
114 flags(AGGRESSIVE_COALESCING, "Aggressive Coalescing") \
115 flags(INITIAL_SPILLING, "Initial Spilling") \
116 flags(CONSERVATIVE_COALESCING, "Conservative Coalescing") \
117 flags(ITERATIVE_SPILLING, "Iterative Spilling") \
118 flags(AFTER_ITERATIVE_SPILLING, "After Iterative Spilling") \
119 flags(POST_ALLOCATION_COPY_REMOVAL, "Post-allocation Copy Removal") \
120 flags(MERGE_MULTI_DEFS, "Merge Multiple Definitions") \
121 flags(FIX_UP_SPILLS, "Fix up Spills") \
122 flags(REGISTER_ALLOCATION, "Register Allocation") \
123 flags(BLOCK_ORDERING, "Block Ordering") \
124 flags(PEEPHOLE, "Peephole") \
125 flags(POSTALLOC_EXPAND, "Post-allocation Expand") \
126 flags(MACH_ANALYSIS, "After Mach Analysis") \
127 flags(FINAL_CODE, "Final Code") \
128 flags(END, "End") \
129 flags(FAILURE, "Failure") \
130 flags(ALL, "All") \
131 flags(DEBUG, "Debug")
132
133 #define table_entry(name, description) PHASE_##name,
134 enum CompilerPhaseType {
135 COMPILER_PHASES(table_entry)
136 PHASE_NUM_TYPES,
137 PHASE_NONE
138 };
139 #undef table_entry
140
141 static const char* phase_descriptions[] = {
142 #define array_of_labels(name, description) description,
143 COMPILER_PHASES(array_of_labels)
144 #undef array_of_labels
145 };
146
147 static const char* phase_names[] = {
148 #define array_of_labels(name, description) #name,
149 COMPILER_PHASES(array_of_labels)
|
110 flags(MATCHING, "After Matching") \
111 flags(GLOBAL_CODE_MOTION, "Global Code Motion") \
112 flags(INITIAL_LIVENESS, "Initial Liveness") \
113 flags(LIVE_RANGE_STRETCHING, "Live Range Stretching") \
114 flags(AGGRESSIVE_COALESCING, "Aggressive Coalescing") \
115 flags(INITIAL_SPILLING, "Initial Spilling") \
116 flags(CONSERVATIVE_COALESCING, "Conservative Coalescing") \
117 flags(ITERATIVE_SPILLING, "Iterative Spilling") \
118 flags(AFTER_ITERATIVE_SPILLING, "After Iterative Spilling") \
119 flags(POST_ALLOCATION_COPY_REMOVAL, "Post-allocation Copy Removal") \
120 flags(MERGE_MULTI_DEFS, "Merge Multiple Definitions") \
121 flags(FIX_UP_SPILLS, "Fix up Spills") \
122 flags(REGISTER_ALLOCATION, "Register Allocation") \
123 flags(BLOCK_ORDERING, "Block Ordering") \
124 flags(PEEPHOLE, "Peephole") \
125 flags(POSTALLOC_EXPAND, "Post-allocation Expand") \
126 flags(MACH_ANALYSIS, "After Mach Analysis") \
127 flags(FINAL_CODE, "Final Code") \
128 flags(END, "End") \
129 flags(FAILURE, "Failure") \
130 flags(SPLIT_INLINES_ARRAY, "Split inlines array") \
131 flags(SPLIT_INLINES_ARRAY_IGVN, "IGVN after split inlines array") \
132 flags(ALL, "All") \
133 flags(DEBUG, "Debug")
134
135 #define table_entry(name, description) PHASE_##name,
136 enum CompilerPhaseType {
137 COMPILER_PHASES(table_entry)
138 PHASE_NUM_TYPES,
139 PHASE_NONE
140 };
141 #undef table_entry
142
143 static const char* phase_descriptions[] = {
144 #define array_of_labels(name, description) description,
145 COMPILER_PHASES(array_of_labels)
146 #undef array_of_labels
147 };
148
149 static const char* phase_names[] = {
150 #define array_of_labels(name, description) #name,
151 COMPILER_PHASES(array_of_labels)
|