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