From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Shewmaker To: gcc@gcc.gnu.org Subject: does gcc meet these guidelines? Date: Fri, 23 Aug 2002 16:26:00 -0000 Message-id: <20020823172636.7af33e23.shewa@inel.gov> X-SW-Source: 2002-08/msg01492.html Hello, I'm looking at NACSE's guidelines for HPC software and I am hoping someone can tell me if GCC supports 5.8, 5.9, 5.10, and 5.15 of their requirements. Also, if I am wrong about any of the others, please let me know. Here is what I have so far: 5. Compilers N 5.1 compiler for ISO/IEC 1539-1:1197 Fortran Y 5.2 compiler for ANSI/ISO 9899-1990 C Y 5.3 compiler for ANSI/ISO/IEC 14882-1998 C++ N 5.4 OpenMP Fortran binding, version 1.0. N 5.5 OpenMP C binding, version 1.0 N 5.6 OpenMP C++ binding, version 1.0 Y 5.7 ANSI/IEEE 1003.1c POSIX threads (pthreads) ? 5.8 all compilers list variable cross-ref ? 5.9 Fortran compiler with preprocessor directives ? 5.10 Fortran compiler generates COMMON block map N 5.11 auto-parallelization within procedures N 5.12 directives for overriding auto-parallelization Y 5.13 target-specific compiler switch N 5.14 Fortran compiler with Cray pointers ? 5.15 all compilers list pseudo-assembly-language N 5.16 auto-parallel compiler lists pseudo-assembly N 5.17 auto-parallelization across procedures Thanks for the help in advance, -Andrew P.S. Here are their detailed descriptions: http://www.nacse.org/distributions/HPCreqts/report/part4.html 5. Compilers The items in this section refer to support traditionally provided through compilers. Features marked with an asterisk (*) may optionally be provided as part of a cross-platform development environment, rather than on the target machine itself. 5.1 * Vendor-supported compiler for ISO/IEC 1539-1:1197 Fortran (Fortran95, which subsumes Fortran77) following POSIX Fortran Bindings 5.2 * Vendor-supported compiler for ANSI/ISO 9899-1990 C. 5.3 * Vendor-supported compiler for ANSI/ISO/IEC 14882-1998 C++. 5.4 * Vendor-supported implementation of OpenMP Fortran binding, version 1.0. The vendor will describe the architectural scope of the implementation (e.g., limited to a single node, spanning N nodes). 5.5 * Vendor-supported implementation of OpenMP C binding, version 1.0. The vendor will describe the architectural scope of the implementation (e.g., limited to a single node, spanning N nodes). 5.6 * Vendor-supported implementation of OpenMP C++ binding, version 1.0. The vendor will describe the architectural scope of the implementation (e.g., limited to a single node, spanning N nodes) 5.7 Vendor-supported implementation of ANSI/IEEE 1003.1c POSIX threads (pthreads). 5.8 * Ability of Fortran/C/C++ compilers to list basic intraprocedural information on symbol names (e.g., cross-reference listing, distinction between read and write occurrences). 5.9 * Ability of Fortran compiler to handle ANSI-C-like preprocessor directives for file inclusion, conditional compilation statements accepting Fortran expressions, and macro expansions. 5.10 * Ability of Fortran compiler to provide an interprocedural COMMON block map. This functionality may be provided through a separate tool. 5.11 * Vendor-supported compiler with the ability to parallelize automatically at the intraprocedural level, and report why particular portions weren't parallelizable. 5.12 * Vendor-supported auto-parallelizing compiler with directives for overriding both compiler conservatism and auto-parallelization. 5.13 * If the compiler supports more than one target machine, availability of a target-specific switch that exploits the characteristics of the target machine. Vendor will specify how this is done. 5.14 * Ability of Fortran compiler to handle Cray pointers, as described at http://www.scd.ucar.edu/tcg/consweb/Fortran90/scnpoint.html . 5.15 * Ability of Fortran/C/C++ compilers to generate transformed source code or pseudo-assembly-language listings. This functionality may be provided through a separate tool, but the listing must be clearly correlated with the original source code (e.g., comments indicating which instructions map to a source statement). 5.16 * Vendor-supported parallelizing compiler with ability to produce listing of transformed source or pseudo-assembly language code showing the results of parallelization. This functionality may be provided through a separate tool, but the listing must be clearly correlated with the original source code (e.g., comments indicating which instructions map to a source statement). 5.17 * Vendor-supported compiler with the ability to parallelize across procedural boundaries, safely and automatically. -- Andrew Shewmaker Associate Engineer Phone: 208.526.1415 Fax: 208.526.4017 Idaho National Engineering and Environmental Laboratory 2525 Fremont Ave. Idaho Falls, ID 83415-3605