re PR fortran/80440 (Slow compile when USEing modules)

2017-04-17  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/80440
	* module.c (find_symtree_for_symbol): Delete.
	(read_module): Remove the call to the above.

From-SVN: r246952
This commit is contained in:
Paul Thomas 2017-04-17 18:22:03 +00:00
parent fb5e562100
commit 4e64ba0091
2 changed files with 9 additions and 38 deletions

View File

@ -1,3 +1,9 @@
2017-04-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/80440
* module.c (find_symtree_for_symbol): Delete.
(read_module): Remove the call to the above.
2017-04-14 Janus Weil <janus@gcc.gnu.org>
PR fortran/80361
@ -5,9 +11,9 @@
the recursive attribute.
2017-04-10 Nicolas Koenig <koenigni@student.ethz.ch>
Paul Thomas <pault@gcc.gnu.org>
Paul Thomas <pault@gcc.gnu.org>
PR fortran/69498
PR fortran/69498
* module.c (gfc_match_submodule): Add error
if function is called in the wrong state.
@ -17,7 +23,7 @@
* expr.c (gfc_check_pointer_assign): Check if procedure pointer
components in a pointer assignment need an explicit interface.
2017-03-18 Nicolas Koenig <koenigni@student.ethz.ch>
2017-03-18 Nicolas Koenig <koenigni@student.ethz.ch>
PR fortran/69498
* symbol.c (gfc_delete_symtree): If there is a period in the name, ignore

View File

@ -4292,31 +4292,6 @@ mio_symbol (gfc_symbol *sym)
/************************* Top level subroutines *************************/
/* Given a root symtree node and a symbol, try to find a symtree that
references the symbol that is not a unique name. */
static gfc_symtree *
find_symtree_for_symbol (gfc_symtree *st, gfc_symbol *sym)
{
gfc_symtree *s = NULL;
if (st == NULL)
return s;
s = find_symtree_for_symbol (st->right, sym);
if (s != NULL)
return s;
s = find_symtree_for_symbol (st->left, sym);
if (s != NULL)
return s;
if (st->n.sym == sym && !check_unique_name (st->name))
return st;
return s;
}
/* A recursive function to look for a specific symbol by name and by
module. Whilst several symtrees might point to one symbol, its
is sufficient for the purposes here than one exist. Note that
@ -5119,16 +5094,6 @@ read_module (void)
info->u.rsym.referenced = 1;
continue;
}
/* If possible recycle the symtree that references the symbol.
If a symtree is not found and the module does not import one,
a unique-name symtree is found by read_cleanup. */
st = find_symtree_for_symbol (gfc_current_ns->sym_root, sym);
if (st != NULL)
{
info->u.rsym.symtree = st;
info->u.rsym.referenced = 1;
}
}
mio_rparen ();