broken check: You should edit tm.texi.in rather than tm.texi

2020-11-20 Thread Martin Liška

Hello.

I hit the following issue:
/bin/sh /home/marxin/Programming/gcc/gcc/../move-if-change tmp-tm.texi tm.texi
You should edit /home/marxin/Programming/gcc/gcc/doc/tm.texi.in rather than 
/home/marxin/Programming/gcc/gcc/doc/tm.texi .

Steps to reproduce:
1) modify target.def
2) you will see:

Verify that you have permission to grant a GFDL license for all
new text in /dev/shm/objdir/gcc/tm.texi, then copy it to 
/home/marxin/Programming/gcc/gcc/doc/tm.texi.

I copy and commit the changes.

3) I made another modification to target.def

Now I face the issue as
elif test $(srcdir)/doc/tm.texi -nt $(srcdir)/doc/tm.texi.in \
  && ( test $(srcdir)/doc/tm.texi -nt $(srcdir)/target.def \

So tm.texi.in is older that tm.texi, but it's fine as both tm.texi.in
and tm.texi are not modified.

Ideas how to improve the error message? It took me some time to realize
that 'touch tm.texi.in' is what I need.

Martin


Re: broken check: You should edit tm.texi.in rather than tm.texi

2020-11-20 Thread H.J. Lu via Gcc
On Fri, Nov 20, 2020 at 5:24 AM Martin Liška  wrote:
>
> Hello.
>
> I hit the following issue:
> /bin/sh /home/marxin/Programming/gcc/gcc/../move-if-change tmp-tm.texi tm.texi
> You should edit /home/marxin/Programming/gcc/gcc/doc/tm.texi.in rather than 
> /home/marxin/Programming/gcc/gcc/doc/tm.texi .
>
> Steps to reproduce:
> 1) modify target.def
> 2) you will see:
>
> Verify that you have permission to grant a GFDL license for all
> new text in /dev/shm/objdir/gcc/tm.texi, then copy it to 
> /home/marxin/Programming/gcc/gcc/doc/tm.texi.
>
> I copy and commit the changes.
>
> 3) I made another modification to target.def
>
> Now I face the issue as
> elif test $(srcdir)/doc/tm.texi -nt $(srcdir)/doc/tm.texi.in \
>   && ( test $(srcdir)/doc/tm.texi -nt $(srcdir)/target.def \
>
> So tm.texi.in is older that tm.texi, but it's fine as both tm.texi.in
> and tm.texi are not modified.
>
> Ideas how to improve the error message? It took me some time to realize
> that 'touch tm.texi.in' is what I need.

Should contrib/gcc_update handle it?

-- 
H.J.


Re: broken check: You should edit tm.texi.in rather than tm.texi

2020-11-20 Thread Martin Liška

On 11/20/20 2:42 PM, H.J. Lu wrote:

Should contrib/gcc_update handle it?


I don't know how publicly known is the script?
I personally do not used it.

Martin


Re: broken check: You should edit tm.texi.in rather than tm.texi

2020-11-20 Thread Martin Liška

On 11/20/20 4:26 PM, Martin Liška wrote:

On 11/20/20 2:42 PM, H.J. Lu wrote:

Should contrib/gcc_update handle it?


I don't know how publicly known is the script?
I personally do not used it.

Martin


... or we can add a hint:

diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 778ec09c75d..f079930dade 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -2580,6 +2580,7 @@ s-tm-texi: build/genhooks$(build_exeext) 
$(srcdir)/doc/tm.texi.in
  ); then \
  echo >&2 ; \
  echo You should edit $(srcdir)/doc/tm.texi.in rather than 
$(srcdir)/doc/tm.texi . >&2 ; \
+ echo "(or you may need to touch $(srcdir)/doc/tm.texi.in if $(srcdir)/doc/tm.texi 
is not modified)" >&2 ; \
  false; \
else \
  echo >&2 ; \

Thoughs?
Martin


Re: broken check: You should edit tm.texi.in rather than tm.texi

2020-11-20 Thread H.J. Lu via Gcc
On Fri, Nov 20, 2020 at 7:26 AM Martin Liška  wrote:
>
> On 11/20/20 2:42 PM, H.J. Lu wrote:
> > Should contrib/gcc_update handle it?
>
> I don't know how publicly known is the script?
> I personally do not used it.
>

I always run

$ ./contrib/gcc_update --touch

after rebase.

-- 
H.J.


DWARF64 gcc/clang flag discussion

2020-11-20 Thread Alexander Yermolovich via Gcc
Hello

On llvm side of compiler world there has been work done by Igor Kudrin to 
enable DWARF64.
I am trying to add a flag to Clang to enable DWARF64 generation. 
https://reviews.llvm.org/D90507
In review David Blaikie pointed out that there has been a discussion on what to 
call this flag:
https://linuxplumbersconf.org/event/7/contributions/746/attachments/578/1018/DWARF5-64.pdf
https://linuxplumbersconf.org/event/7/sessions/90/attachments/583/1201/dwarf-bof-notes-aug24-lpc-2020.txt
https://www.mail-archive.com/gcc@gcc.gnu.org/msg92495.html

Reading through that it doesn't look like there is a consensus on what it 
should be.

>From discussion there is seems to be mixed opinion if it should be -f or 
>-g. Primarily centered around if -g prefix implies turning on generation 
>of debug information.

Now that LLVM can actually generate DWARF64 for ELF, can we come to consensus 
on the name?

Thank You
Alex


gcc-9-20201120 is now available

2020-11-20 Thread GCC Administrator via Gcc
Snapshot gcc-9-20201120 is now available on
  https://gcc.gnu.org/pub/gcc/snapshots/9-20201120/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 9 git branch
with the following options: git://gcc.gnu.org/git/gcc.git branch releases/gcc-9 
revision c368cd5d88521ecf63e793f50bf8e69792577894

You'll find:

 gcc-9-20201120.tar.xzComplete GCC

  SHA256=f609d6d36969f69f0d909fac3988d59fc2c7a1ba242e943c6479ab1ba4506518
  SHA1=14396a41376f660f4990cc156470c5d4695742e9

Diffs from 9-20201113 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-9
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.


Re: DWARF64 gcc/clang flag discussion

2020-11-20 Thread m...@klomp.org
On Fri, Nov 20, 2020 at 08:22:26PM +, Alexander Yermolovich wrote:
> On llvm side of compiler world there has been work done by Igor Kudrin to 
> enable DWARF64.
> I am trying to add a flag to Clang to enable DWARF64 generation. 
> https://reviews.llvm.org/D90507
> In review David Blaikie pointed out that there has been a discussion on what 
> to call this flag:
> https://linuxplumbersconf.org/event/7/contributions/746/attachments/578/1018/DWARF5-64.pdf
> https://linuxplumbersconf.org/event/7/sessions/90/attachments/583/1201/dwarf-bof-notes-aug24-lpc-2020.txt
> https://www.mail-archive.com/gcc@gcc.gnu.org/msg92495.html
> 
> Reading through that it doesn't look like there is a consensus on what it 
> should be.
>
> From discussion there is seems to be mixed opinion if it should be
> -f or -g. Primarily centered around if -g prefix implies
> turning on generation of debug information.
>
> Now that LLVM can actually generate DWARF64 for ELF, can we come to consensus 
> on the name?

I don't believe any firm consensus was reached on naming yet.  But I
would pick -fdwarf32/-fdwarf64.

Cheers,

Mark


Re: Incremental updating of SSA_NAMEs that are passed to b_c_p

2020-11-20 Thread Jeff Law via Gcc



On 10/27/20 12:34 PM, Ilya Leoshkevich wrote:
> Hi,
>
> I'd like to revive the old discussion regarding the interaction of
> jump threading and b_c_p causing the latter to incorrectly return 1 in
> certain cases:
>
> https://gcc.gnu.org/pipermail/gcc-patches/2020-June/547236.html
> https://gcc.gnu.org/pipermail/gcc-patches/2020-July/549288.html
>
> The conclusion was that this happening during threading is just a
> symptom of a deeper problem: SSA_NAMEs that are passed to b_c_p should
> not be registered for incremental updating.
That's perhaps not as precise as we'd like to be.

Simply registering the SSA_NAME isn't the problem.  It's the need to
generate a PHI to resolve the incremental update that causes the
problems.    And as much as anything it's a sanity check that we're not
filtering out jump threading cases that we should (ignore the case for
now where the PHI we generate is a degenerate).

Now it may be painful to actually detect those cases.  I haven't looked
at the into-ssa bits in years.



>
> I performed a little experiment and added an assertion to
> create_new_def_for:
>
> --- a/gcc/tree-into-ssa.c
> +++ b/gcc/tree-into-ssa.c
> @@ -2996,6 +3014,8 @@ create_new_def_for (tree old_name, gimple *stmt,
> def_operand_p def)
>  {
>tree new_name;
>  
> +  gcc_checking_assert (!used_by_bcp_p (old_name));
> +
>timevar_push (TV_TREE_SSA_INCREMENTAL);
>  
>if (!update_ssa_initialized_fn)
>
> This has of course fired when performing basic block duplication during
> threading, which can be fixed by avoiding duplication of basic blocks
> wi
> th b_c_p calls:
>
> --- a/gcc/tree-cfg.c
> +++ b/gcc/tree-cfg.c
> @@ -6224,7 +6224,8 @@ gimple_can_duplicate_bb_p (const_basic_block bb)
>   || gimple_call_internal_p (g, IFN_GOMP_SIMT_EXIT)
>   || gimple_call_internal_p (g, IFN_GOMP_SIMT_VOTE_ANY)
>   || gimple_call_internal_p (g, IFN_GOMP_SIMT_XCHG_BFLY)
> - || gimple_call_internal_p (g, IFN_GOMP_SIMT_XCHG_IDX)))
> + || gimple_call_internal_p (g, IFN_GOMP_SIMT_XCHG_IDX)
> + || gimple_call_builtin_p (g, BUILT_IN_CONSTANT_P)))
> return false;
>  }
Yea, that's a reasonable place to start with the checking assert to see
how pervasive these problems are.  I probably wouldn't just blindly
disable threading through blocks with b_c_p call, but again, it seems
like a reasonable thing to do to help get a sense of other problem areas.

>
> The second occurrence is a bit more interesting:
>
> gimple *
> vrp_insert::build_assert_expr_for (tree cond, tree v)
> {
>   ...
>   a = build2 (ASSERT_EXPR, TREE_TYPE (v), v, cond);
>   assertion = gimple_build_assign (NULL_TREE, a);
>   ...
>   tree new_def = create_new_def_for (v, assertion, NULL);
>
> The fix is also simple though:
>
> --- a/gcc/tree-vrp.c
> +++ b/gcc/tree-vrp.c
> @@ -3101,6 +3101,9 @@ vrp_insert::process_assert_insertions_for (tree
> name, assert_locus *loc)
>if (loc->expr == loc->val)
>  return false;
>  
> +  if (used_by_bcp_p (name))
> +return false;
> +
>cond = build2 (loc->comp_code, boolean_type_node, loc->expr, loc-
>> val);
>assert_stmt = build_assert_expr_for (cond, name);
>if (loc->e)
>
> My original testcase did not trigger anything else.  I'm planning to
> check how this affects the testsuite, but before going further I would
> like to ask: is this the right direction now?  To me it looks a
> little-bit more heavy-handed than the original approach, but maybe it's
> worth it.
It seems  a bit heavy-handed.  But that's not based on any hard data,
just a sense that we may not want to disable threading this aggressively.

jeff