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