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 |