Message ID | 20211109111437.361501-1-aldyh@redhat.com |
---|---|
State | New |
Headers | show |
Series | [COMMITTED] Remove TDF_THREADING flag in favor of param. | expand |
> +-param=threader-debug=
Please document the param in gcc/doc/invoke.texi.
Missing:
@item threader-debug
threader-debug=[none|all] Enables verbose dumping of the threader solver.
Cheers,
Martin
On Tue, Nov 9, 2021 at 3:10 PM Martin Liška <mliska@suse.cz> wrote: > > > +-param=threader-debug= > > Please document the param in gcc/doc/invoke.texi. I purposely didn't document it. This is an internal debugging construct. What's our policy on this? I'm happy to do this; I just didn't want the CI bots trying weird combinations and reporting PRs on the size of debugging dumps, etc. ;-) Aldy
On 11/9/21 15:22, Aldy Hernandez wrote: > On Tue, Nov 9, 2021 at 3:10 PM Martin Liška <mliska@suse.cz> wrote: >> >>> +-param=threader-debug= >> >> Please document the param in gcc/doc/invoke.texi. > > I purposely didn't document it. This is an internal debugging > construct. What's our policy on this? Well, quite some params are actually intended for GCC developers only. > > I'm happy to do this; I just didn't want the CI bots trying weird > combinations and reporting PRs on the size of debugging dumps, etc. We have all the params documented in the texi file. I would document also this one. Cheers, Martin > ;-) > > Aldy >
On Tue, Nov 9, 2021 at 3:28 PM Martin Liška <mliska@suse.cz> wrote: > > On 11/9/21 15:22, Aldy Hernandez wrote: > > On Tue, Nov 9, 2021 at 3:10 PM Martin Liška <mliska@suse.cz> wrote: > >> > >>> +-param=threader-debug= > >> > >> Please document the param in gcc/doc/invoke.texi. > > > > I purposely didn't document it. This is an internal debugging > > construct. What's our policy on this? > > Well, quite some params are actually intended for GCC developers only. OK. I don't see any ordering in these items, so I've placed it next to another of the backward threader knobs. How does this look? Aldy
On 11/9/21 15:36, Aldy Hernandez wrote: > I don't see any ordering in these items, so I've placed it next to > another of the backward threader knobs. > > How does this look? That's fine, thanks. Note that similar --param 'ranger-debug' is also documented ;P Cheers, Martin
On 11/9/21 9:39 AM, Martin Liška wrote: > On 11/9/21 15:36, Aldy Hernandez wrote: >> I don't see any ordering in these items, so I've placed it next to >> another of the backward threader knobs. >> >> How does this look? > > That's fine, thanks. > > Note that similar --param 'ranger-debug' is also documented ;P > > Cheers, > Martin > yes, I finally Iearned my lesson so that Martin didn't have to clean up after me every time! Get with the program! :-) Andrew
On Tue, Nov 9, 2021 at 4:29 PM Andrew MacLeod <amacleod@redhat.com> wrote: > > On 11/9/21 9:39 AM, Martin Liška wrote: > > On 11/9/21 15:36, Aldy Hernandez wrote: > >> I don't see any ordering in these items, so I've placed it next to > >> another of the backward threader knobs. > >> > >> How does this look? > > > > That's fine, thanks. > > > > Note that similar --param 'ranger-debug' is also documented ;P > > > > Cheers, > > Martin > > > yes, I finally Iearned my lesson so that Martin didn't have to clean up > after me every time! Get with the program! :-) You of all people should know how incredibly lazy I am. :-P
diff --git a/gcc/dumpfile.c b/gcc/dumpfile.c index e6ead5debe5..8169daf7f59 100644 --- a/gcc/dumpfile.c +++ b/gcc/dumpfile.c @@ -145,7 +145,6 @@ static const kv_pair<dump_flags_t> dump_options[] = {"missed", MSG_MISSED_OPTIMIZATION}, {"note", MSG_NOTE}, {"optall", MSG_ALL_KINDS}, - {"threading", TDF_THREADING}, {"all", dump_flags_t (TDF_ALL_VALUES & ~(TDF_RAW | TDF_SLIM | TDF_LINENO | TDF_GRAPH | TDF_STMTADDR | TDF_RHS_ONLY | TDF_NOUID diff --git a/gcc/dumpfile.h b/gcc/dumpfile.h index 76226753845..2487ae243c6 100644 --- a/gcc/dumpfile.h +++ b/gcc/dumpfile.h @@ -146,20 +146,17 @@ enum dump_flag : uint32_t /* Dump folding details. */ TDF_FOLDING = (1 << 21), - /* Dumping for range path solver. */ - TDF_THREADING = (1 << 22), - /* MSG_* flags for expressing the kinds of message to be emitted by -fopt-info. */ /* -fopt-info optimized sources. */ - MSG_OPTIMIZED_LOCATIONS = (1 << 23), + MSG_OPTIMIZED_LOCATIONS = (1 << 22), /* Missed opportunities. */ - MSG_MISSED_OPTIMIZATION = (1 << 24), + MSG_MISSED_OPTIMIZATION = (1 << 23), /* General optimization info. */ - MSG_NOTE = (1 << 25), + MSG_NOTE = (1 << 24), /* Mask for selecting MSG_-kind flags. */ MSG_ALL_KINDS = (MSG_OPTIMIZED_LOCATIONS @@ -178,16 +175,16 @@ enum dump_flag : uint32_t sub-option of -fopt-info to show the internal messages. */ /* Implicitly supplied for messages at the top-level dump scope. */ - MSG_PRIORITY_USER_FACING = (1 << 26), + MSG_PRIORITY_USER_FACING = (1 << 25), /* Implicitly supplied for messages within nested dump scopes. */ - MSG_PRIORITY_INTERNALS = (1 << 27), + MSG_PRIORITY_INTERNALS = (1 << 26), /* Supplied when an opt_problem generated in a nested scope is re-emitted at the top-level. We want to default to showing these in -fopt-info output, but to *not* show them in dump files, as the message would be shown twice, messing up "scan-tree-dump-times" in DejaGnu tests. */ - MSG_PRIORITY_REEMITTED = (1 << 28), + MSG_PRIORITY_REEMITTED = (1 << 27), /* Mask for selecting MSG_PRIORITY_* flags. */ MSG_ALL_PRIORITIES = (MSG_PRIORITY_USER_FACING @@ -195,16 +192,16 @@ enum dump_flag : uint32_t | MSG_PRIORITY_REEMITTED), /* All -fdump- flags. */ - TDF_ALL_VALUES = (1 << 29) - 1, + TDF_ALL_VALUES = (1 << 28) - 1, /* Dumping for -fcompare-debug. */ - TDF_COMPARE_DEBUG = (1 << 29), + TDF_COMPARE_DEBUG = (1 << 28), /* Dump a GIMPLE value which means wrapping certain things with _Literal. */ - TDF_GIMPLE_VAL = (1 << 30), + TDF_GIMPLE_VAL = (1 << 29), /* For error. */ - TDF_ERROR = ((uint32_t)1 << 31), + TDF_ERROR = ((uint32_t)1 << 30), }; /* Dump flags type. */ diff --git a/gcc/flag-types.h b/gcc/flag-types.h index 459e3e07016..cfd2a5f6f50 100644 --- a/gcc/flag-types.h +++ b/gcc/flag-types.h @@ -462,6 +462,13 @@ enum ranger_debug | RANGER_DEBUG_TRACE) }; +/* Jump threader verbose dumps. */ +enum threader_debug +{ + THREADER_DEBUG_NONE = 0, + THREADER_DEBUG_ALL = 1 +}; + /* EVRP mode. */ enum evrp_mode { diff --git a/gcc/gimple-range-path.cc b/gcc/gimple-range-path.cc index 9d3fe89185e..52de10369f3 100644 --- a/gcc/gimple-range-path.cc +++ b/gcc/gimple-range-path.cc @@ -34,7 +34,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple-iterator.h" // Internal construct to help facilitate debugging of solver. -#define DEBUG_SOLVER (dump_file && dump_flags & TDF_THREADING) +#define DEBUG_SOLVER (dump_file && (param_threader_debug == THREADER_DEBUG_ALL)) path_range_query::path_range_query (gimple_ranger &ranger, bool resolve) : m_ranger (ranger) diff --git a/gcc/params.opt b/gcc/params.opt index 4b409d55a2d..e725c99e5e4 100644 --- a/gcc/params.opt +++ b/gcc/params.opt @@ -1047,6 +1047,19 @@ Maximum number of escape points tracked by modref per SSA-name. Common Joined UInteger Var(param_modref_max_adjustments) Init(8) IntegerRange(0, 254) Param Optimization Maximum number of times a given range is adjusted during the dataflow. +-param=threader-debug= +Common Joined Var(param_threader_debug) Enum(threader_debug) Init(THREADER_DEBUG_NONE) Param Optimization +--param=threader-debug=[none|all] Enables verbose dumping of the threader solver. + +Enum +Name(threader_debug) Type(enum threader_debug) UnknownError(unknown threader debug mode %qs) + +EnumValue +Enum(threader_debug) String(none) Value(THREADER_DEBUG_NONE) + +EnumValue +Enum(threader_debug) String(all) Value(THREADER_DEBUG_ALL) + -param=tm-max-aggregate-size= Common Joined UInteger Var(param_tm_max_aggregate_size) Init(9) Param Optimization Size in bytes after which thread-local aggregates should be instrumented with the logging functions instead of save/restore pairs.