[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference turris::fortran

Title:Digital Fortran
Notice:Read notes 1.* for important information
Moderator:QUARK::LIONEL
Created:Thu Jun 01 1995
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:1333
Total number of notes:6734

1220.0. "7 questions about NT Alpha f77" by PERFOM::HENNING () Wed Mar 12 1997 12:33

We may soon want to submit some Alpha SPEC numbers using DEC Fortran on
NT, so I need a little help understanding what options REALLY exist
(today) on NT, which ones are documented and which could be documented
in a SPEC submission even if not documented on line.

The command "f77 /?" appears to be incomplete - for example, it does not
admit to the existence of level 5 optimization and it does not define
what -fast does.  Presumably examining listing files is a more accurate
way of finding out what's going on, but even this seems to have one or
two  works of fiction.  

So here's some simple tests, with my (numbered) interpretations - please
can you correct the numbered items where I am in error?

Starting from the basics:

    S:\spec95>type tmp.f
            END
    S:\spec95>f77 -list tmp.f
    DEC (R) Fortran Optimizing Compiler Version: V1.2
    Copyright (c) 1996 Digital Equipment Corp. All rights reserved.
    
    Microsoft (R) 32-Bit Executable Linker Version 5.01.7044
    Copyright (C) Microsoft Corp 1992-1997. All rights reserved.
    
    
    S:\spec95>findstr "COMPILER pipe opt math trans" tmp.lis
    COMPILER OPTIONS BEING USED
    yes /warn:alignments        /math_library:accurate no   /transform_loops
    no  /warn:argument_checking /names:lowercase       no   /pipeline
    no  /warn:declarations      /optimize:4            /inline:speed  /unroll:0
    COMPILER: DEC Fortran V1.2-817-311D
    
So can I correctly conclude:

  1. This is GEM BL 31

  2. Defaults include O4, math accurate, no sw pipeline, no loop transformer, 
     inline speed

Next, how about that fast option?

    S:\spec95>copy tmp.f tmp2.f
    S:\spec95>f77 -list -fast tmp2.f
    S:\spec95>fc tmp.lis tmp2.lis

and the differences are:

    no  /align:commons              no   /automatic        no /recursive
    yes /assume:accuracy_sensitive  no   /extend_source    no /pad_source
    yes /warn:alignments            /math_library:accurate no /transform_loops
    ***** 
    yes /align:dcommons             no   /automatic        no /recursive
    no  /assume:accuracy_sensitive  no   /extend_source    no /pad_source
    yes /warn:alignments            /math_library:fast     no /transform_loops

So can I correctly conclude:

  3. fast means align dcommons, noaccuracy_sensitive, math_library fast

Next, how about O5?

    S:\spec95>f77 /?
     ...
     /optimize:keyword      Specifies the optimization level.
                             Keywords are 0, 1, 2, 3, 4.
    ...
    S:\spec95>f77 /? | findstr transf
    S:\spec95>f77 /? | findstr specu
    S:\spec95>f77 /? | findstr pipe
     /[no]pipeline          Enables software pipelining optimization.
    S:\spec95>f77 -fast -list tmp.f
    S:\spec95>f77 -fast -optimize:5 -list tmp2.f
    S:\spec95>fc tmp.lis tmp2.lis

    yes /warn:alignments         /math_library:fast  no   /transform_loops
    no  /warn:argument_checking  /names:lowercase    no   /pipeline
    no  /warn:declarations       /optimize:4         /inline:speed   /unroll:0
    ***** 
    yes /warn:alignments         /math_library:fast  yes  /transform_loops
    no  /warn:argument_checking  /names:lowercase    yes  /pipeline
    no  /warn:declarations       /optimize:5         /inline:speed   /unroll:0
    
So can I correctly conclude:

  4. Optimize level 5 *does* exist, it's just not documented.

  5. You wouldn't mind my using it for SPEC purposes, and disclosing it to 
     SPEC; the documentation error will be fixed in next release.

  6. The pipeliner exists and is turned on by O5.

  7. The loop transformer does not exist (this is BL31!) and it's just an 
     illusion that the listing file seems to know about such a concept.

Thanks....
   /john
T.RTitleUserPersonal
Name
DateLines
1220.1Answers from "a usually well-informed source"GEMEVN::GROVEWed Mar 12 1997 14:2543
    John,
    
    I think the answers to your questions are:
    
  1. This is GEM BL 31
     Yes.
    
  2. Defaults include O4, math accurate, no sw pipeline, no loop transformer, 
     inline speed
     Yes - just like Fortran on other platforms
    
  3. fast means align dcommons, noaccuracy_sensitive, math_library fast
     Yes
    
  4. Optimize level 5 *does* exist, it's just not documented.
     Yes - but in BL31 -O5 just means software pipelining (and byte
     vectorizaiton and nop insertion)
    
  5. You wouldn't mind my using it for SPEC purposes, and disclosing it to 
     SPEC; the documentation error will be fixed in next release.
     Yes
    
  6. The pipeliner exists and is turned on by O5.
     Yes
    
  7. The loop transformer does not exist (this is BL31!) and it's just an 
     illusion that the listing file seems to know about such a concept.
    
     Yes, we have loop transform "deniability" in BL31. A partial version
     was there but it was not officially supported. "You're on your own
     Mr. Phelps if anything goes wrong". The first release that had
     official loop transforms support was GEM BL32.
    
     John, you may want to talk to Stan about getting a BL33 NT compiler
     for your SPEC NT work. That has supported loop transforms, a better
     pipeliner and many other improvements. I believe that a BL33 compiler
     will be available as a shipping product on Alpha NT within the SPEC
     6-month rule. {30-March plus 6 months = 30-Sept}.
    
     Not speaking for Stan
     ;-)
    
     /Rich