| 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 |
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.R | Title | User | Personal Name | Date | Lines |
|---|---|---|---|---|---|
| 1220.1 | Answers from "a usually well-informed source" | GEMEVN::GROVE | Wed Mar 12 1997 14:25 | 43 | |
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
| |||||