From: Paul Thomas Date: Mon, 17 Apr 2017 18:22:03 +0000 (+0000) Subject: re PR fortran/80440 (Slow compile when USEing modules) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4e64ba0091fe74dc3835d7d13eab011113840ab6;p=gcc.git re PR fortran/80440 (Slow compile when USEing modules) 2017-04-17 Paul Thomas PR fortran/80440 * module.c (find_symtree_for_symbol): Delete. (read_module): Remove the call to the above. From-SVN: r246952 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 0fb826d6ee3..58268d1bd36 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2017-04-17 Paul Thomas + + PR fortran/80440 + * module.c (find_symtree_for_symbol): Delete. + (read_module): Remove the call to the above. + 2017-04-14 Janus Weil PR fortran/80361 @@ -5,9 +11,9 @@ the recursive attribute. 2017-04-10 Nicolas Koenig - Paul Thomas + Paul Thomas - 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 +2017-03-18 Nicolas Koenig PR fortran/69498 * symbol.c (gfc_delete_symtree): If there is a period in the name, ignore diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index 28b8ea1db57..4d6afa55d38 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -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 ();