1 /* This file contains the definitions for timing variables used to
2 measure run
-time performance of the compiler.
3 Copyright (C
) 2000-2016 Free Software Foundation
, Inc.
4 Contributed by Alex Samuel
<samuel@codesourcery.com
>
6 This file is part of GCC.
8 GCC is free software
; you can redistribute it and
/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation
; either version
3, or (at your option
)
13 GCC is distributed in the hope that it will be useful
,
14 but WITHOUT ANY WARRANTY
; without even the implied warranty of
15 MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with GCC
; see the file COPYING3. If not see
20 <http
://www.gnu.org
/licenses
/>.
*/
22 /* This file contains timing variable definitions
, used by timevar.h
29 where ID is the enumeral value used to identify the timing
30 variable
, and NAME is a character string describing its purpose.
*/
32 /* The total execution time.
*/
33 DEFTIMEVAR (TV_TOTAL
, "total time")
34 /* The compiler phases.
36 These must be mutually exclusive
, and the NAME field must begin
39 Also
, their sum must be within a millionth of the total
time (see
41 DEFTIMEVAR (TV_PHASE_SETUP
, "phase setup")
42 DEFTIMEVAR (TV_PHASE_PARSING
, "phase parsing")
43 DEFTIMEVAR (TV_PHASE_DEFERRED
, "phase lang. deferred")
44 DEFTIMEVAR (TV_PHASE_LATE_PARSING_CLEANUPS
, "phase late parsing cleanups")
45 DEFTIMEVAR (TV_PHASE_OPT_GEN
, "phase opt and generate")
46 DEFTIMEVAR (TV_PHASE_LATE_ASM
, "phase last asm")
47 DEFTIMEVAR (TV_PHASE_STREAM_IN
, "phase stream in")
48 DEFTIMEVAR (TV_PHASE_STREAM_OUT
, "phase stream out")
49 DEFTIMEVAR (TV_PHASE_FINALIZE
, "phase finalize")
51 /* Concurrent timers
, indicated by
"|".
*/
52 DEFTIMEVAR (TV_NAME_LOOKUP
, "|name lookup")
53 DEFTIMEVAR (TV_OVERLOAD
, "|overload resolution")
55 /* Time spent garbage
-collecting.
*/
56 DEFTIMEVAR (TV_GC
, "garbage collection")
58 /* Time spent generating dump files.
*/
59 DEFTIMEVAR (TV_DUMP
, "dump files")
61 /* Time spent saving
/restoring PCH state.
*/
62 DEFTIMEVAR (TV_PCH_SAVE
, "PCH main state save")
63 DEFTIMEVAR (TV_PCH_CPP_SAVE
, "PCH preprocessor state save")
64 DEFTIMEVAR (TV_PCH_PTR_REALLOC
, "PCH pointer reallocation")
65 DEFTIMEVAR (TV_PCH_PTR_SORT
, "PCH pointer sort")
66 DEFTIMEVAR (TV_PCH_RESTORE
, "PCH main state restore")
67 DEFTIMEVAR (TV_PCH_CPP_RESTORE
, "PCH preprocessor state restore")
69 DEFTIMEVAR (TV_CGRAPH
, "callgraph construction")
70 DEFTIMEVAR (TV_CGRAPHOPT
, "callgraph optimization")
71 DEFTIMEVAR (TV_IPA_UNREACHABLE
, "ipa dead code removal")
72 DEFTIMEVAR (TV_IPA_INHERITANCE
, "ipa inheritance graph")
73 DEFTIMEVAR (TV_IPA_VIRTUAL_CALL
, "ipa virtual call target")
74 DEFTIMEVAR (TV_IPA_DEVIRT
, "ipa devirtualization")
75 DEFTIMEVAR (TV_IPA_CONSTANT_PROP
, "ipa cp")
76 DEFTIMEVAR (TV_IPA_INLINING
, "ipa inlining heuristics")
77 DEFTIMEVAR (TV_IPA_FNSPLIT
, "ipa function splitting")
78 DEFTIMEVAR (TV_IPA_COMDATS
, "ipa comdats")
79 DEFTIMEVAR (TV_IPA_OPT
, "ipa various optimizations")
80 DEFTIMEVAR (TV_IPA_LTO_DECOMPRESS
, "lto stream inflate")
81 DEFTIMEVAR (TV_IPA_LTO_COMPRESS
, "lto stream deflate")
82 DEFTIMEVAR (TV_IPA_LTO_OUTPUT
, "lto stream output")
83 DEFTIMEVAR (TV_IPA_LTO_GIMPLE_IN
, "ipa lto gimple in")
84 DEFTIMEVAR (TV_IPA_LTO_GIMPLE_OUT
, "ipa lto gimple out")
85 DEFTIMEVAR (TV_IPA_LTO_DECL_IN
, "ipa lto decl in")
86 DEFTIMEVAR (TV_IPA_LTO_DECL_OUT
, "ipa lto decl out")
87 DEFTIMEVAR (TV_IPA_LTO_CTORS_IN
, "ipa lto constructors in")
88 DEFTIMEVAR (TV_IPA_LTO_CTORS_OUT
, "ipa lto constructors out")
89 DEFTIMEVAR (TV_IPA_LTO_CGRAPH_IO
, "ipa lto cgraph I/O")
90 DEFTIMEVAR (TV_IPA_LTO_DECL_MERGE
, "ipa lto decl merge")
91 DEFTIMEVAR (TV_IPA_LTO_CGRAPH_MERGE
, "ipa lto cgraph merge")
92 DEFTIMEVAR (TV_LTO
, "lto")
93 DEFTIMEVAR (TV_WHOPR_WPA
, "whopr wpa")
94 DEFTIMEVAR (TV_WHOPR_WPA_IO
, "whopr wpa I/O")
95 DEFTIMEVAR (TV_WHOPR_PARTITIONING
, "whopr partitioning")
96 DEFTIMEVAR (TV_WHOPR_LTRANS
, "whopr ltrans")
97 DEFTIMEVAR (TV_IPA_REFERENCE
, "ipa reference")
98 DEFTIMEVAR (TV_IPA_HSA
, "ipa HSA")
99 DEFTIMEVAR (TV_IPA_PROFILE
, "ipa profile")
100 DEFTIMEVAR (TV_IPA_AUTOFDO
, "auto profile")
101 DEFTIMEVAR (TV_IPA_PURE_CONST
, "ipa pure const")
102 DEFTIMEVAR (TV_IPA_ICF
, "ipa icf")
103 DEFTIMEVAR (TV_IPA_PTA
, "ipa points-to")
104 DEFTIMEVAR (TV_IPA_SRA
, "ipa SRA")
105 DEFTIMEVAR (TV_IPA_FREE_LANG_DATA
, "ipa free lang data")
106 DEFTIMEVAR (TV_IPA_FREE_INLINE_SUMMARY
, "ipa free inline summary")
107 /* Time spent by constructing CFG.
*/
108 DEFTIMEVAR (TV_CFG
, "cfg construction")
109 /* Time spent by cleaning up CFG.
*/
110 DEFTIMEVAR (TV_CLEANUP_CFG
, "cfg cleanup")
111 DEFTIMEVAR (TV_CFG_VERIFY
, "CFG verifier")
112 DEFTIMEVAR (TV_DELETE_TRIVIALLY_DEAD
, "trivially dead code")
114 /* Time spent in dataflow problems.
*/
115 DEFTIMEVAR (TV_DF_SCAN
, "df scan insns")
116 DEFTIMEVAR (TV_DF_MD
, "df multiple defs")
117 DEFTIMEVAR (TV_DF_RD
, "df reaching defs")
118 DEFTIMEVAR (TV_DF_LR
, "df live regs")
119 DEFTIMEVAR (TV_DF_LIVE
, "df live&initialized regs")
120 DEFTIMEVAR (TV_DF_MIR
, "df must-initialized regs")
121 DEFTIMEVAR (TV_DF_CHAIN
, "df use-def / def-use chains")
122 DEFTIMEVAR (TV_DF_WORD_LR
, "df live reg subwords")
123 DEFTIMEVAR (TV_DF_NOTE
, "df reg dead/unused notes")
124 DEFTIMEVAR (TV_REG_STATS
, "register information")
126 DEFTIMEVAR (TV_ALIAS_ANALYSIS
, "alias analysis")
127 DEFTIMEVAR (TV_ALIAS_STMT_WALK
, "alias stmt walking")
128 DEFTIMEVAR (TV_REG_SCAN
, "register scan")
129 DEFTIMEVAR (TV_REBUILD_JUMP
, "rebuild jump labels")
130 /* Timing in various stages of the compiler.
*/
131 DEFTIMEVAR (TV_CPP
, "preprocessing")
132 DEFTIMEVAR (TV_LEX
, "lexical analysis")
133 DEFTIMEVAR (TV_PARSE_GLOBAL
, "parser (global)")
134 DEFTIMEVAR (TV_PARSE_STRUCT
, "parser struct body")
135 DEFTIMEVAR (TV_PARSE_ENUM
, "parser enumerator list")
136 DEFTIMEVAR (TV_PARSE_FUNC
, "parser function body")
137 DEFTIMEVAR (TV_PARSE_INLINE
, "parser inl. func. body")
138 DEFTIMEVAR (TV_PARSE_INMETH
, "parser inl. meth. body")
139 DEFTIMEVAR (TV_TEMPLATE_INST
, "template instantiation")
140 DEFTIMEVAR (TV_CONSTRAINT_SAT
, "constraint satisfaction")
141 DEFTIMEVAR (TV_CONSTRAINT_SUB
, "constraint subsumption")
142 DEFTIMEVAR (TV_FLATTEN_INLINING
, "flatten inlining")
143 DEFTIMEVAR (TV_EARLY_INLINING
, "early inlining heuristics")
144 DEFTIMEVAR (TV_INLINE_PARAMETERS
, "inline parameters")
145 DEFTIMEVAR (TV_INTEGRATION
, "integration")
146 DEFTIMEVAR (TV_TREE_GIMPLIFY
, "tree gimplify")
147 DEFTIMEVAR (TV_TREE_EH
, "tree eh")
148 DEFTIMEVAR (TV_TREE_CFG
, "tree CFG construction")
149 DEFTIMEVAR (TV_TREE_CLEANUP_CFG
, "tree CFG cleanup")
150 DEFTIMEVAR (TV_TREE_TAIL_MERGE
, "tree tail merge")
151 DEFTIMEVAR (TV_TREE_VRP
, "tree VRP")
152 DEFTIMEVAR (TV_TREE_EARLY_VRP
, "tree Early VRP")
153 DEFTIMEVAR (TV_TREE_COPY_PROP
, "tree copy propagation")
154 DEFTIMEVAR (TV_FIND_REFERENCED_VARS
, "tree find ref. vars")
155 DEFTIMEVAR (TV_TREE_PTA
, "tree PTA")
156 DEFTIMEVAR (TV_TREE_INSERT_PHI_NODES
, "tree PHI insertion")
157 DEFTIMEVAR (TV_TREE_SSA_REWRITE_BLOCKS
, "tree SSA rewrite")
158 DEFTIMEVAR (TV_TREE_SSA_OTHER
, "tree SSA other")
159 DEFTIMEVAR (TV_TREE_SSA_INCREMENTAL
, "tree SSA incremental")
160 DEFTIMEVAR (TV_TREE_OPS
, "tree operand scan")
161 DEFTIMEVAR (TV_TREE_SSA_DOMINATOR_OPTS
, "dominator optimization")
162 DEFTIMEVAR (TV_TREE_SSA_THREAD_JUMPS
, "backwards jump threading")
163 DEFTIMEVAR (TV_TREE_SRA
, "tree SRA")
164 DEFTIMEVAR (TV_ISOLATE_ERRONEOUS_PATHS
, "isolate eroneous paths")
165 DEFTIMEVAR (TV_TREE_CCP
, "tree CCP")
166 DEFTIMEVAR (TV_TREE_PHI_CPROP
, "tree PHI const/copy prop")
167 DEFTIMEVAR (TV_TREE_SPLIT_EDGES
, "tree split crit edges")
168 DEFTIMEVAR (TV_TREE_REASSOC
, "tree reassociation")
169 DEFTIMEVAR (TV_TREE_PRE
, "tree PRE")
170 DEFTIMEVAR (TV_TREE_FRE
, "tree FRE")
171 DEFTIMEVAR (TV_TREE_SINK
, "tree code sinking")
172 DEFTIMEVAR (TV_TREE_PHIOPT
, "tree linearize phis")
173 DEFTIMEVAR (TV_TREE_BACKPROP
, "tree backward propagate")
174 DEFTIMEVAR (TV_TREE_FORWPROP
, "tree forward propagate")
175 DEFTIMEVAR (TV_TREE_PHIPROP
, "tree phiprop")
176 DEFTIMEVAR (TV_TREE_DCE
, "tree conservative DCE")
177 DEFTIMEVAR (TV_TREE_CD_DCE
, "tree aggressive DCE")
178 DEFTIMEVAR (TV_TREE_CALL_CDCE
, "tree buildin call DCE")
179 DEFTIMEVAR (TV_TREE_DSE
, "tree DSE")
180 DEFTIMEVAR (TV_TREE_MERGE_PHI
, "PHI merge")
181 DEFTIMEVAR (TV_TREE_LOOP
, "tree loop optimization")
182 DEFTIMEVAR (TV_TREE_NOLOOP
, "loopless fn")
183 DEFTIMEVAR (TV_TREE_LOOP_BOUNDS
, "tree loop bounds")
184 DEFTIMEVAR (TV_LIM
, "tree loop invariant motion")
185 DEFTIMEVAR (TV_TREE_LOOP_IVCANON
, "tree canonical iv")
186 DEFTIMEVAR (TV_SCEV_CONST
, "scev constant prop")
187 DEFTIMEVAR (TV_TREE_LOOP_UNSWITCH
, "tree loop unswitching")
188 DEFTIMEVAR (TV_LOOP_SPLIT
, "loop splitting")
189 DEFTIMEVAR (TV_COMPLETE_UNROLL
, "complete unrolling")
190 DEFTIMEVAR (TV_TREE_PARALLELIZE_LOOPS
, "tree parallelize loops")
191 DEFTIMEVAR (TV_TREE_VECTORIZATION
, "tree vectorization")
192 DEFTIMEVAR (TV_TREE_SLP_VECTORIZATION
, "tree slp vectorization")
193 DEFTIMEVAR (TV_GRAPHITE
, "Graphite")
194 DEFTIMEVAR (TV_GRAPHITE_TRANSFORMS
, "Graphite loop transforms")
195 DEFTIMEVAR (TV_GRAPHITE_DATA_DEPS
, "Graphite data dep analysis")
196 DEFTIMEVAR (TV_GRAPHITE_CODE_GEN
, "Graphite code generation")
197 DEFTIMEVAR (TV_TREE_LOOP_DISTRIBUTION
, "tree loop distribution")
198 DEFTIMEVAR (TV_CHECK_DATA_DEPS
, "tree check data dependences")
199 DEFTIMEVAR (TV_TREE_PREFETCH
, "tree prefetching")
200 DEFTIMEVAR (TV_TREE_LOOP_IVOPTS
, "tree iv optimization")
201 DEFTIMEVAR (TV_PREDCOM
, "predictive commoning")
202 DEFTIMEVAR (TV_TREE_CH
, "tree copy headers")
203 DEFTIMEVAR (TV_TREE_SSA_UNCPROP
, "tree SSA uncprop")
204 DEFTIMEVAR (TV_TREE_NRV
, "tree NRV optimization")
205 DEFTIMEVAR (TV_TREE_COPY_RENAME
, "tree rename SSA copies")
206 DEFTIMEVAR (TV_TREE_SSA_VERIFY
, "tree SSA verifier")
207 DEFTIMEVAR (TV_TREE_STMT_VERIFY
, "tree STMT verifier")
208 DEFTIMEVAR (TV_TREE_SWITCH_CONVERSION
, "tree switch conversion")
209 DEFTIMEVAR (TV_TRANS_MEM
, "transactional memory")
210 DEFTIMEVAR (TV_TREE_STRLEN
, "tree strlen optimization")
211 DEFTIMEVAR (TV_CGRAPH_VERIFY
, "callgraph verifier")
212 DEFTIMEVAR (TV_DOM_FRONTIERS
, "dominance frontiers")
213 DEFTIMEVAR (TV_DOMINANCE
, "dominance computation")
214 DEFTIMEVAR (TV_CONTROL_DEPENDENCES
, "control dependences")
215 DEFTIMEVAR (TV_OUT_OF_SSA
, "out of ssa")
216 DEFTIMEVAR (TV_VAR_EXPAND
, "expand vars")
217 DEFTIMEVAR (TV_EXPAND
, "expand")
218 DEFTIMEVAR (TV_POST_EXPAND
, "post expand cleanups")
219 DEFTIMEVAR (TV_VARCONST
, "varconst")
220 DEFTIMEVAR (TV_LOWER_SUBREG
, "lower subreg")
221 DEFTIMEVAR (TV_JUMP
, "jump")
222 DEFTIMEVAR (TV_FWPROP
, "forward prop")
223 DEFTIMEVAR (TV_CSE
, "CSE")
224 DEFTIMEVAR (TV_DCE
, "dead code elimination")
225 DEFTIMEVAR (TV_DSE1
, "dead store elim1")
226 DEFTIMEVAR (TV_DSE2
, "dead store elim2")
227 DEFTIMEVAR (TV_LOOP
, "loop analysis")
228 DEFTIMEVAR (TV_LOOP_INIT
, "loop init")
229 DEFTIMEVAR (TV_LOOP_MOVE_INVARIANTS
, "loop invariant motion")
230 DEFTIMEVAR (TV_LOOP_UNROLL
, "loop unrolling")
231 DEFTIMEVAR (TV_LOOP_DOLOOP
, "loop doloop")
232 DEFTIMEVAR (TV_LOOP_FINI
, "loop fini")
233 DEFTIMEVAR (TV_CPROP
, "CPROP")
234 DEFTIMEVAR (TV_PRE
, "PRE")
235 DEFTIMEVAR (TV_HOIST
, "code hoisting")
236 DEFTIMEVAR (TV_LSM
, "LSM")
237 DEFTIMEVAR (TV_TRACER
, "tracer")
238 DEFTIMEVAR (TV_WEB
, "web")
239 DEFTIMEVAR (TV_AUTO_INC_DEC
, "auto inc dec")
240 DEFTIMEVAR (TV_CSE2
, "CSE 2")
241 DEFTIMEVAR (TV_BRANCH_PROB
, "branch prediction")
242 DEFTIMEVAR (TV_COMBINE
, "combiner")
243 DEFTIMEVAR (TV_IFCVT
, "if-conversion")
244 DEFTIMEVAR (TV_MODE_SWITCH
, "mode switching")
245 DEFTIMEVAR (TV_SMS
, "sms modulo scheduling")
246 DEFTIMEVAR (TV_LIVE_RANGE_SHRINKAGE
, "live range shrinkage")
247 DEFTIMEVAR (TV_SCHED
, "scheduling")
248 DEFTIMEVAR (TV_IRA
, "integrated RA")
249 DEFTIMEVAR (TV_LRA
, "LRA non-specific")
250 DEFTIMEVAR (TV_LRA_ELIMINATE
, "LRA virtuals elimination")
251 DEFTIMEVAR (TV_LRA_INHERITANCE
, "LRA reload inheritance")
252 DEFTIMEVAR (TV_LRA_CREATE_LIVE_RANGES
, "LRA create live ranges")
253 DEFTIMEVAR (TV_LRA_ASSIGN
, "LRA hard reg assignment")
254 DEFTIMEVAR (TV_LRA_COALESCE
, "LRA coalesce pseudo regs")
255 DEFTIMEVAR (TV_LRA_REMAT
, "LRA rematerialization")
256 DEFTIMEVAR (TV_RELOAD
, "reload")
257 DEFTIMEVAR (TV_RELOAD_CSE_REGS
, "reload CSE regs")
258 DEFTIMEVAR (TV_GCSE_AFTER_RELOAD
, "load CSE after reload")
259 DEFTIMEVAR (TV_REE
, "ree")
260 DEFTIMEVAR (TV_THREAD_PROLOGUE_AND_EPILOGUE
, "thread pro- & epilogue")
261 DEFTIMEVAR (TV_IFCVT2
, "if-conversion 2")
262 DEFTIMEVAR (TV_SPLIT_PATHS
, "split paths")
263 DEFTIMEVAR (TV_COMBINE_STACK_ADJUST
, "combine stack adjustments")
264 DEFTIMEVAR (TV_PEEPHOLE2
, "peephole 2")
265 DEFTIMEVAR (TV_RENAME_REGISTERS
, "rename registers")
266 DEFTIMEVAR (TV_SCHED_FUSION
, "scheduling fusion")
267 DEFTIMEVAR (TV_CPROP_REGISTERS
, "hard reg cprop")
268 DEFTIMEVAR (TV_SCHED2
, "scheduling 2")
269 DEFTIMEVAR (TV_MACH_DEP
, "machine dep reorg")
270 DEFTIMEVAR (TV_DBR_SCHED
, "delay branch sched")
271 DEFTIMEVAR (TV_REORDER_BLOCKS
, "reorder blocks")
272 DEFTIMEVAR (TV_SHORTEN_BRANCH
, "shorten branches")
273 DEFTIMEVAR (TV_REG_STACK
, "reg stack")
274 DEFTIMEVAR (TV_FINAL
, "final")
275 DEFTIMEVAR (TV_VAROUT
, "variable output")
276 DEFTIMEVAR (TV_SYMOUT
, "symout")
277 DEFTIMEVAR (TV_VAR_TRACKING
, "variable tracking")
278 DEFTIMEVAR (TV_VAR_TRACKING_DATAFLOW
, "var-tracking dataflow")
279 DEFTIMEVAR (TV_VAR_TRACKING_EMIT
, "var-tracking emit")
280 DEFTIMEVAR (TV_TREE_IFCOMBINE
, "tree if-combine")
281 DEFTIMEVAR (TV_TREE_UNINIT
, "uninit var analysis")
282 DEFTIMEVAR (TV_PLUGIN_INIT
, "plugin initialization")
283 DEFTIMEVAR (TV_PLUGIN_RUN
, "plugin execution")
284 DEFTIMEVAR (TV_GIMPLE_SLSR
, "straight-line strength reduction")
285 DEFTIMEVAR (TV_GIMPLE_STORE_MERGING
, "store merging")
286 DEFTIMEVAR (TV_VTABLE_VERIFICATION
, "vtable verification")
287 DEFTIMEVAR (TV_TREE_UBSAN
, "tree ubsan")
288 DEFTIMEVAR (TV_INITIALIZE_RTL
, "initialize rtl")
289 DEFTIMEVAR (TV_GIMPLE_LADDRESS
, "address lowering")
290 DEFTIMEVAR (TV_TREE_LOOP_IFCVT
, "tree loop if-conversion")
292 /* Everything else in rest_of_compilation not included above.
*/
293 DEFTIMEVAR (TV_EARLY_LOCAL
, "early local passes")
294 DEFTIMEVAR (TV_OPTIMIZE
, "unaccounted optimizations")
295 DEFTIMEVAR (TV_REST_OF_COMPILATION
, "rest of compilation")
296 DEFTIMEVAR (TV_POSTRELOAD
, "unaccounted post reload")
297 DEFTIMEVAR (TV_LATE_COMPILATION
, "unaccounted late compilation")
298 DEFTIMEVAR (TV_REMOVE_UNUSED
, "remove unused locals")
299 DEFTIMEVAR (TV_ADDRESS_TAKEN
, "address taken")
300 DEFTIMEVAR (TV_TODO
, "unaccounted todo")
301 DEFTIMEVAR (TV_VERIFY_LOOP_CLOSED
, "verify loop closed")
302 DEFTIMEVAR (TV_VERIFY_RTL_SHARING
, "verify RTL sharing")
303 DEFTIMEVAR (TV_REBUILD_FREQUENCIES
, "rebuild frequencies")
304 DEFTIMEVAR (TV_REPAIR_LOOPS
, "repair loop structures")
306 /* Stuff used by libgccjit.so.
*/
307 DEFTIMEVAR (TV_JIT_REPLAY
, "replay of JIT client activity")
308 DEFTIMEVAR (TV_ASSEMBLE
, "assemble JIT code")
309 DEFTIMEVAR (TV_LINK
, "link JIT code")
310 DEFTIMEVAR (TV_LOAD
, "load JIT result")
311 DEFTIMEVAR (TV_JIT_ACQUIRING_MUTEX
, "acquiring JIT mutex")
312 DEFTIMEVAR (TV_JIT_CLIENT_CODE
, "JIT client code")