Martin,

Thanks. I'll try to give it a try soon...

...though that might be a while. Our preliminary tests with GCC 11 seem to show 
some issues with our code (other than slowness). Our devs (including Tom Clune 
who might be known to some here) are looking to see why GCC 10.3 is happy, but 
GCC 11 isn't. The changelog didn't seem to exciting but you never know when 
things like polymorphism, strings, et al are all happening at once!

Matt

--
Matt Thompson, SSAI, Ld Scientific Programmer/Analyst
NASA GSFC,    Global Modeling and Assimilation Office
Code 610.1,  8800 Greenbelt Rd,  Greenbelt,  MD 20771
Phone: 301-614-6712                 Fax: 301-614-6246
http://science.gsfc.nasa.gov/sed/bio/matthew.thompson

From: Martin Stein <ms...@gmx.net>
Date: Monday, May 17, 2021 at 6:15 AM
To: "Thompson, Matt (GSFC-610.1)[SCIENCE SYSTEMS AND APPLICATIONS INC]" 
<matthew.thomp...@nasa.gov>
Cc: "fortran@gcc.gnu.org" <fortran@gcc.gnu.org>
Subject: [EXTERNAL] Aw: Help with long compile time of all-USE module

PS: I am currently using (with 11.1) the following simple patch to 
significantly speeding up my compilation. The patch is not correct, but I could 
not find any examples, where this makes a difference. Even by looking at the 
orignal commit introducing the find_symbol call I could not come up with an 
example where this matters. I would be interested to know whether this is the 
cause for the long compilation times in your case as well.

gcc/fortran/module.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index 089453caa03..a29865c7412 100644
--- a/gcc/fortran/module.c
+++ b/gcc/fortran/module.c
@@ -5501,11 +5501,12 @@ read_module (void)
            this symbol, which is not in an ONLY clause, must not be
            added to the namespace(11.3.2).  Note that find_symbol
            only returns the first occurrence that it finds.  */
-         if (!only_flag && !info->u.rsym.renamed
+/*       if (!only_flag && !info->u.rsym.renamed
               && strcmp (name, module_name) != 0
               && find_symbol (gfc_current_ns->sym_root, name,
                               module_name, 0))
           continue;
+*/

         st = gfc_find_symtree (gfc_current_ns->sym_root, p);


Best regards
Martin

  • ... Thompson, Matt (GSFC-610.1)[SCIENCE SYSTEMS AND APPLICATIONS INC] via Fortran
    • ... Martin Stein via Fortran
    • ... Thompson, Matt (GSFC-610.1)[SCIENCE SYSTEMS AND APPLICATIONS INC] via Fortran

Reply via email to