/* This file contains the definitions for timing variables used to
   measure run-time performance of the compiler.
   Copyright (C) 2000-2017 Free Software Foundation, Inc.
   Contributed by Alex Samuel <samuel@codesourcery.com>

   This file is part of GCC.

   GCC is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3, or (at your option)
   any later version.

   GCC is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with GCC; see the file COPYING3.  If not see
   <http://www.gnu.org/licenses/>.  */

/* This file contains timing variable definitions, used by timevar.h
   and timevar.c.

   Syntax:

     DEFTIMEVAR (id, name)

   where ID is the enumeral value used to identify the timing
   variable, and NAME is a character string describing its purpose.  */

/* The total execution time.  */
DEFTIMEVAR (TV_TOTAL                 , "total time")
/* The compiler phases.

   These must be mutually exclusive, and the NAME field must begin
   with "phase".

   Also, their sum must be within a millionth of the total time (see
   validate_phases).  */
DEFTIMEVAR (TV_PHASE_SETUP           , "phase setup")
DEFTIMEVAR (TV_PHASE_PARSING         , "phase parsing")
DEFTIMEVAR (TV_PHASE_DEFERRED        , "phase lang. deferred")
DEFTIMEVAR (TV_PHASE_LATE_PARSING_CLEANUPS, "phase late parsing cleanups")
DEFTIMEVAR (TV_PHASE_OPT_GEN         , "phase opt and generate")
DEFTIMEVAR (TV_PHASE_LATE_ASM        , "phase last asm")
DEFTIMEVAR (TV_PHASE_STREAM_IN       , "phase stream in")
DEFTIMEVAR (TV_PHASE_STREAM_OUT      , "phase stream out")
DEFTIMEVAR (TV_PHASE_FINALIZE        , "phase finalize")

/* Concurrent timers, indicated by "|".  */
DEFTIMEVAR (TV_NAME_LOOKUP           , "|name lookup")
DEFTIMEVAR (TV_OVERLOAD              , "|overload resolution")

/* Time spent garbage-collecting.  */
DEFTIMEVAR (TV_GC                    , "garbage collection")

/* Time spent generating dump files.  */
DEFTIMEVAR (TV_DUMP                  , "dump files")

/* Time spent saving/restoring PCH state.  */
DEFTIMEVAR (TV_PCH_SAVE              , "PCH main state save")
DEFTIMEVAR (TV_PCH_CPP_SAVE          , "PCH preprocessor state save")
DEFTIMEVAR (TV_PCH_PTR_REALLOC       , "PCH pointer reallocation")
DEFTIMEVAR (TV_PCH_PTR_SORT          , "PCH pointer sort")
DEFTIMEVAR (TV_PCH_RESTORE           , "PCH main state restore")
DEFTIMEVAR (TV_PCH_CPP_RESTORE       , "PCH preprocessor state restore")

DEFTIMEVAR (TV_CGRAPH                , "callgraph construction")
DEFTIMEVAR (TV_CGRAPHOPT             , "callgraph optimization")
DEFTIMEVAR (TV_IPA_UNREACHABLE       , "ipa dead code removal")
DEFTIMEVAR (TV_IPA_INHERITANCE       , "ipa inheritance graph")
DEFTIMEVAR (TV_IPA_VIRTUAL_CALL      , "ipa virtual call target")
DEFTIMEVAR (TV_IPA_DEVIRT	     , "ipa devirtualization")
DEFTIMEVAR (TV_IPA_CONSTANT_PROP     , "ipa cp")
DEFTIMEVAR (TV_IPA_INLINING          , "ipa inlining heuristics")
DEFTIMEVAR (TV_IPA_FNSPLIT           , "ipa function splitting")
DEFTIMEVAR (TV_IPA_COMDATS	     , "ipa comdats")
DEFTIMEVAR (TV_IPA_OPT		     , "ipa various optimizations")
DEFTIMEVAR (TV_IPA_LTO_DECOMPRESS    , "lto stream inflate")
DEFTIMEVAR (TV_IPA_LTO_COMPRESS      , "lto stream deflate")
DEFTIMEVAR (TV_IPA_LTO_OUTPUT        , "lto stream output")
DEFTIMEVAR (TV_IPA_LTO_GIMPLE_IN     , "ipa lto gimple in")
DEFTIMEVAR (TV_IPA_LTO_GIMPLE_OUT    , "ipa lto gimple out")
DEFTIMEVAR (TV_IPA_LTO_DECL_IN       , "ipa lto decl in")
DEFTIMEVAR (TV_IPA_LTO_DECL_OUT      , "ipa lto decl out")
DEFTIMEVAR (TV_IPA_LTO_CTORS_IN      , "ipa lto constructors in")
DEFTIMEVAR (TV_IPA_LTO_CTORS_OUT     , "ipa lto constructors out")
DEFTIMEVAR (TV_IPA_LTO_CGRAPH_IO     , "ipa lto cgraph I/O")
DEFTIMEVAR (TV_IPA_LTO_DECL_MERGE    , "ipa lto decl merge")
DEFTIMEVAR (TV_IPA_LTO_CGRAPH_MERGE  , "ipa lto cgraph merge")
DEFTIMEVAR (TV_LTO                   , "lto")
DEFTIMEVAR (TV_WHOPR_WPA             , "whopr wpa")
DEFTIMEVAR (TV_WHOPR_WPA_IO          , "whopr wpa I/O")
DEFTIMEVAR (TV_WHOPR_PARTITIONING    , "whopr partitioning")
DEFTIMEVAR (TV_WHOPR_LTRANS          , "whopr ltrans")
DEFTIMEVAR (TV_IPA_REFERENCE         , "ipa reference")
DEFTIMEVAR (TV_IPA_HSA		     , "ipa HSA")
DEFTIMEVAR (TV_IPA_PROFILE           , "ipa profile")
DEFTIMEVAR (TV_IPA_AUTOFDO           , "auto profile")
DEFTIMEVAR (TV_IPA_PURE_CONST        , "ipa pure const")
DEFTIMEVAR (TV_IPA_ICF		     , "ipa icf")
DEFTIMEVAR (TV_IPA_PTA               , "ipa points-to")
DEFTIMEVAR (TV_IPA_SRA               , "ipa SRA")
DEFTIMEVAR (TV_IPA_FREE_LANG_DATA    , "ipa free lang data")
DEFTIMEVAR (TV_IPA_FREE_INLINE_SUMMARY, "ipa free inline summary")
/* Time spent by constructing CFG.  */
DEFTIMEVAR (TV_CFG                   , "cfg construction")
/* Time spent by cleaning up CFG.  */
DEFTIMEVAR (TV_CLEANUP_CFG           , "cfg cleanup")
DEFTIMEVAR (TV_CFG_VERIFY            , "CFG verifier")
DEFTIMEVAR (TV_DELETE_TRIVIALLY_DEAD , "trivially dead code")

/* Time spent in dataflow problems.  */
DEFTIMEVAR (TV_DF_SCAN		     , "df scan insns")
DEFTIMEVAR (TV_DF_MD		     , "df multiple defs")
DEFTIMEVAR (TV_DF_RD		     , "df reaching defs")
DEFTIMEVAR (TV_DF_LR		     , "df live regs")
DEFTIMEVAR (TV_DF_LIVE		     , "df live&initialized regs")
DEFTIMEVAR (TV_DF_MIR		     , "df must-initialized regs")
DEFTIMEVAR (TV_DF_CHAIN		     , "df use-def / def-use chains")
DEFTIMEVAR (TV_DF_WORD_LR	     , "df live reg subwords")
DEFTIMEVAR (TV_DF_NOTE		     , "df reg dead/unused notes")
DEFTIMEVAR (TV_REG_STATS	     , "register information")

DEFTIMEVAR (TV_ALIAS_ANALYSIS	     , "alias analysis")
DEFTIMEVAR (TV_ALIAS_STMT_WALK	     , "alias stmt walking")
DEFTIMEVAR (TV_REG_SCAN		     , "register scan")
DEFTIMEVAR (TV_REBUILD_JUMP	     , "rebuild jump labels")
/* Timing in various stages of the compiler.  */
DEFTIMEVAR (TV_CPP		     , "preprocessing")
DEFTIMEVAR (TV_LEX		     , "lexical analysis")
DEFTIMEVAR (TV_PARSE_GLOBAL          , "parser (global)")
DEFTIMEVAR (TV_PARSE_STRUCT          , "parser struct body")
DEFTIMEVAR (TV_PARSE_ENUM            , "parser enumerator list")
DEFTIMEVAR (TV_PARSE_FUNC            , "parser function body")
DEFTIMEVAR (TV_PARSE_INLINE          , "parser inl. func. body")
DEFTIMEVAR (TV_PARSE_INMETH          , "parser inl. meth. body")
DEFTIMEVAR (TV_TEMPLATE_INST         , "template instantiation")
DEFTIMEVAR (TV_CONSTRAINT_SAT        , "constraint satisfaction")
DEFTIMEVAR (TV_CONSTRAINT_SUB        , "constraint subsumption")
DEFTIMEVAR (TV_FLATTEN_INLINING      , "flatten inlining")
DEFTIMEVAR (TV_EARLY_INLINING        , "early inlining heuristics")
DEFTIMEVAR (TV_INLINE_PARAMETERS     , "inline parameters")
DEFTIMEVAR (TV_INTEGRATION           , "integration")
DEFTIMEVAR (TV_TREE_GIMPLIFY	     , "tree gimplify")
DEFTIMEVAR (TV_TREE_EH		     , "tree eh")
DEFTIMEVAR (TV_TREE_CFG		     , "tree CFG construction")
DEFTIMEVAR (TV_TREE_CLEANUP_CFG	     , "tree CFG cleanup")
DEFTIMEVAR (TV_TREE_TAIL_MERGE       , "tree tail merge")
DEFTIMEVAR (TV_TREE_VRP              , "tree VRP")
DEFTIMEVAR (TV_TREE_EARLY_VRP        , "tree Early VRP")
DEFTIMEVAR (TV_TREE_COPY_PROP        , "tree copy propagation")
DEFTIMEVAR (TV_FIND_REFERENCED_VARS  , "tree find ref. vars")
DEFTIMEVAR (TV_TREE_PTA		     , "tree PTA")
DEFTIMEVAR (TV_TREE_INSERT_PHI_NODES , "tree PHI insertion")
DEFTIMEVAR (TV_TREE_SSA_REWRITE_BLOCKS, "tree SSA rewrite")
DEFTIMEVAR (TV_TREE_SSA_OTHER	     , "tree SSA other")
DEFTIMEVAR (TV_TREE_SSA_INCREMENTAL  , "tree SSA incremental")
DEFTIMEVAR (TV_TREE_OPS	             , "tree operand scan")
DEFTIMEVAR (TV_TREE_SSA_DOMINATOR_OPTS   , "dominator optimization")
DEFTIMEVAR (TV_TREE_SSA_THREAD_JUMPS , "backwards jump threading")
DEFTIMEVAR (TV_TREE_SRA              , "tree SRA")
DEFTIMEVAR (TV_ISOLATE_ERRONEOUS_PATHS    , "isolate eroneous paths")
DEFTIMEVAR (TV_TREE_CCP		     , "tree CCP")
DEFTIMEVAR (TV_TREE_PHI_CPROP	     , "tree PHI const/copy prop")
DEFTIMEVAR (TV_TREE_SPLIT_EDGES      , "tree split crit edges")
DEFTIMEVAR (TV_TREE_REASSOC          , "tree reassociation")
DEFTIMEVAR (TV_TREE_PRE		     , "tree PRE")
DEFTIMEVAR (TV_TREE_FRE		     , "tree FRE")
DEFTIMEVAR (TV_TREE_SINK             , "tree code sinking")
DEFTIMEVAR (TV_TREE_PHIOPT	     , "tree linearize phis")
DEFTIMEVAR (TV_TREE_BACKPROP	     , "tree backward propagate")
DEFTIMEVAR (TV_TREE_FORWPROP	     , "tree forward propagate")
DEFTIMEVAR (TV_TREE_PHIPROP	     , "tree phiprop")
DEFTIMEVAR (TV_TREE_DCE		     , "tree conservative DCE")
DEFTIMEVAR (TV_TREE_CD_DCE	     , "tree aggressive DCE")
DEFTIMEVAR (TV_TREE_CALL_CDCE	     , "tree buildin call DCE")
DEFTIMEVAR (TV_TREE_DSE		     , "tree DSE")
DEFTIMEVAR (TV_TREE_MERGE_PHI	     , "PHI merge")
DEFTIMEVAR (TV_TREE_LOOP	     , "tree loop optimization")
DEFTIMEVAR (TV_TREE_NOLOOP           , "loopless fn")
DEFTIMEVAR (TV_TREE_LOOP_BOUNDS	     , "tree loop bounds")
DEFTIMEVAR (TV_LIM                   , "tree loop invariant motion")
DEFTIMEVAR (TV_TREE_LOOP_IVCANON     , "tree canonical iv")
DEFTIMEVAR (TV_SCEV_CONST            , "scev constant prop")
DEFTIMEVAR (TV_TREE_LOOP_UNSWITCH    , "tree loop unswitching")
DEFTIMEVAR (TV_LOOP_SPLIT            , "loop splitting")
DEFTIMEVAR (TV_COMPLETE_UNROLL       , "complete unrolling")
DEFTIMEVAR (TV_TREE_PARALLELIZE_LOOPS, "tree parallelize loops")
DEFTIMEVAR (TV_TREE_VECTORIZATION    , "tree vectorization")
DEFTIMEVAR (TV_TREE_SLP_VECTORIZATION, "tree slp vectorization")
DEFTIMEVAR (TV_GRAPHITE              , "Graphite")
DEFTIMEVAR (TV_GRAPHITE_TRANSFORMS   , "Graphite loop transforms")
DEFTIMEVAR (TV_GRAPHITE_DATA_DEPS    , "Graphite data dep analysis")
DEFTIMEVAR (TV_GRAPHITE_CODE_GEN     , "Graphite code generation")
DEFTIMEVAR (TV_TREE_LOOP_DISTRIBUTION, "tree loop distribution")
DEFTIMEVAR (TV_CHECK_DATA_DEPS       , "tree check data dependences")
DEFTIMEVAR (TV_TREE_PREFETCH	     , "tree prefetching")
DEFTIMEVAR (TV_TREE_LOOP_IVOPTS	     , "tree iv optimization")
DEFTIMEVAR (TV_PREDCOM		     , "predictive commoning")
DEFTIMEVAR (TV_TREE_CH		     , "tree copy headers")
DEFTIMEVAR (TV_TREE_SSA_UNCPROP	     , "tree SSA uncprop")
DEFTIMEVAR (TV_TREE_NRV		     , "tree NRV optimization")
DEFTIMEVAR (TV_TREE_COPY_RENAME	     , "tree rename SSA copies")
DEFTIMEVAR (TV_TREE_SSA_VERIFY       , "tree SSA verifier")
DEFTIMEVAR (TV_TREE_STMT_VERIFY      , "tree STMT verifier")
DEFTIMEVAR (TV_TREE_SWITCH_CONVERSION, "tree switch conversion")
DEFTIMEVAR (TV_TRANS_MEM             , "transactional memory")
DEFTIMEVAR (TV_TREE_STRLEN           , "tree strlen optimization")
DEFTIMEVAR (TV_CGRAPH_VERIFY         , "callgraph verifier")
DEFTIMEVAR (TV_DOM_FRONTIERS         , "dominance frontiers")
DEFTIMEVAR (TV_DOMINANCE             , "dominance computation")
DEFTIMEVAR (TV_CONTROL_DEPENDENCES   , "control dependences")
DEFTIMEVAR (TV_OUT_OF_SSA	     , "out of ssa")
DEFTIMEVAR (TV_VAR_EXPAND	     , "expand vars")
DEFTIMEVAR (TV_EXPAND		     , "expand")
DEFTIMEVAR (TV_POST_EXPAND	     , "post expand cleanups")
DEFTIMEVAR (TV_VARCONST              , "varconst")
DEFTIMEVAR (TV_LOWER_SUBREG	     , "lower subreg")
DEFTIMEVAR (TV_JUMP                  , "jump")
DEFTIMEVAR (TV_FWPROP                , "forward prop")
DEFTIMEVAR (TV_CSE                   , "CSE")
DEFTIMEVAR (TV_DCE                   , "dead code elimination")
DEFTIMEVAR (TV_DSE1                  , "dead store elim1")
DEFTIMEVAR (TV_DSE2                  , "dead store elim2")
DEFTIMEVAR (TV_LOOP                  , "loop analysis")
DEFTIMEVAR (TV_LOOP_INIT	     , "loop init")
DEFTIMEVAR (TV_LOOP_MOVE_INVARIANTS  , "loop invariant motion")
DEFTIMEVAR (TV_LOOP_UNROLL           , "loop unrolling")
DEFTIMEVAR (TV_LOOP_DOLOOP           , "loop doloop")
DEFTIMEVAR (TV_LOOP_FINI	     , "loop fini")
DEFTIMEVAR (TV_CPROP                 , "CPROP")
DEFTIMEVAR (TV_PRE                   , "PRE")
DEFTIMEVAR (TV_HOIST                 , "code hoisting")
DEFTIMEVAR (TV_LSM                   , "LSM")
DEFTIMEVAR (TV_TRACER                , "tracer")
DEFTIMEVAR (TV_WEB                   , "web")
DEFTIMEVAR (TV_AUTO_INC_DEC          , "auto inc dec")
DEFTIMEVAR (TV_CSE2                  , "CSE 2")
DEFTIMEVAR (TV_BRANCH_PROB           , "branch prediction")
DEFTIMEVAR (TV_COMBINE               , "combiner")
DEFTIMEVAR (TV_IFCVT		     , "if-conversion")
DEFTIMEVAR (TV_MODE_SWITCH           , "mode switching")
DEFTIMEVAR (TV_SMS		     , "sms modulo scheduling")
DEFTIMEVAR (TV_LIVE_RANGE_SHRINKAGE  , "live range shrinkage")
DEFTIMEVAR (TV_SCHED                 , "scheduling")
DEFTIMEVAR (TV_IRA		     , "integrated RA")
DEFTIMEVAR (TV_LRA		     , "LRA non-specific")
DEFTIMEVAR (TV_LRA_ELIMINATE	     , "LRA virtuals elimination")
DEFTIMEVAR (TV_LRA_INHERITANCE	     , "LRA reload inheritance")
DEFTIMEVAR (TV_LRA_CREATE_LIVE_RANGES, "LRA create live ranges")
DEFTIMEVAR (TV_LRA_ASSIGN	     , "LRA hard reg assignment")
DEFTIMEVAR (TV_LRA_COALESCE	     , "LRA coalesce pseudo regs")
DEFTIMEVAR (TV_LRA_REMAT	     , "LRA rematerialization")
DEFTIMEVAR (TV_RELOAD		     , "reload")
DEFTIMEVAR (TV_RELOAD_CSE_REGS       , "reload CSE regs")
DEFTIMEVAR (TV_GCSE_AFTER_RELOAD     , "load CSE after reload")
DEFTIMEVAR (TV_REE		     , "ree")
DEFTIMEVAR (TV_THREAD_PROLOGUE_AND_EPILOGUE, "thread pro- & epilogue")
DEFTIMEVAR (TV_IFCVT2		     , "if-conversion 2")
DEFTIMEVAR (TV_SPLIT_PATHS	     , "split paths")
DEFTIMEVAR (TV_COMBINE_STACK_ADJUST  , "combine stack adjustments")
DEFTIMEVAR (TV_PEEPHOLE2             , "peephole 2")
DEFTIMEVAR (TV_RENAME_REGISTERS      , "rename registers")
DEFTIMEVAR (TV_SCHED_FUSION          , "scheduling fusion")
DEFTIMEVAR (TV_CPROP_REGISTERS       , "hard reg cprop")
DEFTIMEVAR (TV_SCHED2                , "scheduling 2")
DEFTIMEVAR (TV_MACH_DEP              , "machine dep reorg")
DEFTIMEVAR (TV_DBR_SCHED             , "delay branch sched")
DEFTIMEVAR (TV_REORDER_BLOCKS        , "reorder blocks")
DEFTIMEVAR (TV_SHORTEN_BRANCH        , "shorten branches")
DEFTIMEVAR (TV_REG_STACK             , "reg stack")
DEFTIMEVAR (TV_FINAL                 , "final")
DEFTIMEVAR (TV_VAROUT                , "variable output")
DEFTIMEVAR (TV_SYMOUT                , "symout")
DEFTIMEVAR (TV_VAR_TRACKING          , "variable tracking")
DEFTIMEVAR (TV_VAR_TRACKING_DATAFLOW , "var-tracking dataflow")
DEFTIMEVAR (TV_VAR_TRACKING_EMIT     , "var-tracking emit")
DEFTIMEVAR (TV_TREE_IFCOMBINE        , "tree if-combine")
DEFTIMEVAR (TV_TREE_UNINIT           , "uninit var analysis")
DEFTIMEVAR (TV_PLUGIN_INIT           , "plugin initialization")
DEFTIMEVAR (TV_PLUGIN_RUN            , "plugin execution")
DEFTIMEVAR (TV_GIMPLE_SLSR           , "straight-line strength reduction")
DEFTIMEVAR (TV_GIMPLE_STORE_MERGING  , "store merging")
DEFTIMEVAR (TV_VTABLE_VERIFICATION   , "vtable verification")
DEFTIMEVAR (TV_TREE_UBSAN            , "tree ubsan")
DEFTIMEVAR (TV_INITIALIZE_RTL        , "initialize rtl")
DEFTIMEVAR (TV_GIMPLE_LADDRESS       , "address lowering")
DEFTIMEVAR (TV_TREE_LOOP_IFCVT       , "tree loop if-conversion")

/* Everything else in rest_of_compilation not included above.  */
DEFTIMEVAR (TV_EARLY_LOCAL	     , "early local passes")
DEFTIMEVAR (TV_OPTIMIZE		     , "unaccounted optimizations")
DEFTIMEVAR (TV_REST_OF_COMPILATION   , "rest of compilation")
DEFTIMEVAR (TV_POSTRELOAD	     , "unaccounted post reload")
DEFTIMEVAR (TV_LATE_COMPILATION	     , "unaccounted late compilation")
DEFTIMEVAR (TV_REMOVE_UNUSED	     , "remove unused locals")
DEFTIMEVAR (TV_ADDRESS_TAKEN	     , "address taken")
DEFTIMEVAR (TV_TODO		     , "unaccounted todo")
DEFTIMEVAR (TV_VERIFY_LOOP_CLOSED    , "verify loop closed")
DEFTIMEVAR (TV_VERIFY_RTL_SHARING    , "verify RTL sharing")
DEFTIMEVAR (TV_REBUILD_FREQUENCIES   , "rebuild frequencies")
DEFTIMEVAR (TV_REPAIR_LOOPS	     , "repair loop structures")

/* Stuff used by libgccjit.so.  */
DEFTIMEVAR (TV_JIT_REPLAY	     , "replay of JIT client activity")
DEFTIMEVAR (TV_ASSEMBLE	     , "assemble JIT code")
DEFTIMEVAR (TV_LINK		     , "link JIT code")
DEFTIMEVAR (TV_LOAD		     , "load JIT result")
DEFTIMEVAR (TV_JIT_ACQUIRING_MUTEX   , "acquiring JIT mutex")
DEFTIMEVAR (TV_JIT_CLIENT_CODE   , "JIT client code")
