On Wed, 16 May 2018, Martin Liška wrote:
> > I recall Jakub recently applied a tree-wide change of A < B && B < C to read
> > B > A && B < C.
>
> Can you please point to a revision where it was done?
It is SVN r255831, mailing list thread here ("Replace Yoda conditions"):
https://gcc.gnu.org/ml/gcc-patches/2017-12/msg01257.html
In your revised patch:
> --- a/gcc/dbgcnt.c
> +++ b/gcc/dbgcnt.c
> @@ -41,53 +41,90 @@ static struct string2counter_map
> map[debug_counter_number_of_counters] =
> #undef DEBUG_COUNTER
>
> #define DEBUG_COUNTER(a) UINT_MAX,
> -static unsigned int limit[debug_counter_number_of_counters] =
> +static unsigned int limit_high[debug_counter_number_of_counters] =
> {
> #include "dbgcnt.def"
> };
> #undef DEBUG_COUNTER
>
> +#define DEBUG_COUNTER(a) 0,
> +static unsigned int limit_low[debug_counter_number_of_counters] =
> +{
> +#include "dbgcnt.def"
> +};
> +#undef DEBUG_COUNTER
No need to spell out the all-zeros initializer of a static object:
static unsigned int limit_low[debug_counter_number_of_counters];
> --- a/gcc/doc/invoke.texi
> +++ b/gcc/doc/invoke.texi
> @@ -14326,14 +14326,17 @@ Print the name and the counter upper bound for all
> debug counters.
>
> @item -fdbg-cnt=@var{counter-value-list}
> @opindex fdbg-cnt
> -Set the internal debug counter upper bound. @var{counter-value-list}
> -is a comma-separated list of @var{name}:@var{value} pairs
> -which sets the upper bound of each debug counter @var{name} to @var{value}.
> +Set the internal debug counter lower and upper bound.
> @var{counter-value-list}
> +is a comma-separated list of @var{name}:@var{lower_bound}:@var{upper_bound}
> +tuples which sets the lower and the upper bound of each debug
> +counter @var{name}. The @var{lower_bound} is optional and is zero
> +initialized if not set.
> All debug counters have the initial upper bound of @code{UINT_MAX};
> thus @code{dbg_cnt} returns true always unless the upper bound
> is set by this option.
> -For example, with @option{-fdbg-cnt=dce:10,tail_call:0},
> -@code{dbg_cnt(dce)} returns true only for first 10 invocations.
> +For example, with @option{-fdbg-cnt=dce:9:10,tail_call:10},
> +@code{dbg_cnt(dce)} returns true only for 10th and 11th invocation.
> +For @code{dbg_cnt(tail_call)} true is returned for first 11 invocations.
Hm, is the off-by-one in the new explanatory text really intended? I think
the previous text was accurate, and the new text should say "9th and 10th"
and then "first 10 invocations", unless I'm missing something?
Alexander