/* This file contains the definitions for timing variables used to
   measure run-time performance of the compiler.
   Copyright (C) 2000-2015 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.
   Ideally, they would sum to near the total time.  */
DEFTIMEVAR (TV_PHASE_SETUP           , "phase setup")
DEFTIMEVAR (TV_PHASE_PARSING         , "phase parsing")
DEFTIMEVAR (TV_PHASE_DEFERRED        , "phase lang. deferred")
DEFTIMEVAR (TV_PHASE_OPT_GEN         , "phase opt and generate")
DEFTIMEVAR (TV_PHASE_DBGINFO         , "phase debug info")
DEFTIMEVAR (TV_PHASE_CHECK_DBGINFO   , "phase check & debug info")
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_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_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_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_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_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_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_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_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_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_VTABLE_VERIFICATION   , "vtable verification")
DEFTIMEVAR (TV_TREE_UBSAN            , "tree ubsan")

/* 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")
